Network Music Performance Workshop GAFFTA 2010
This workshop is intended as a practical introduction to network music performance. Both technical and musical topics will be discussed, including: history of the field, Internet technologies for low-latency audio streaming, transcontinental high-quality network performance, performance issues like delay and presence, installations and synthesis in the network, future and potential as a compositional medium, programming techniques and software survey. We will discuss how to fine-tune the network and software specifically for musical purposes. The correlation of physical and acoustical distance in this medium and what it implies for musical performance/composition will be analyzed. We expect participants to leave with an embodied sense of network performance and ready to apply it in their art. This workshop was designed for Mac and Linux users (unfortunately some applications are not available on Windows).
This workshop is intended for musicians, composers, programmers and technologists interested in performing with distant musicians, designing systems for the medium or composing with the network in mind. No music theory or technical skills background necessary, the workshop will put emphasis on the participants’ particular interests and goals.
|Why standard teleconferencing doesn’t cut it for music.|
|QoS = QoResults.|
|7-8:30: Quick start lab|
|Example streaming apps / hardware (jackTrip, jack).|
|Takes two to tango, or just play together… (bi-directional streaming).|
|Software installation (cross-platform).|
|Wired network setup (IP addresses and ports).|
|Path qualification (minimum bandwidth, jitter).|
|Tuning the connection (sampling rate, frames per packet, audio channels, redundancy).|
|Audio pickup and monitoring (proximity, talkback).|
|Connecting multi-site (connect with external node).|
|Standard network tools (ping, iperf, traceroute).|
|Specialized tools, yet to come (QoScope, SoundWIRE).|
|Using your ears.|
|Host computer problems vs. network problems.|
|6-7:00: Technical issues and discussion|
|Wired vs. wireless.|
|Institutional firewall policies.|
|Video (Skype, iChat, DVTS, AccessGrid).|
|Recording, real-time plugins (efx) via jack.|
|7-8:30: Musical issues: discussion, demos (live remote connections)|
|Every millisecond counts.|
|Sound before video.|
|Options for conducting.|
|Self-delay pros and cons (demo).|
|Effect of delay on ensemble tempo and choice of music.|
|Only as good as the mics and loudspeakers.|
|Audio for monitoring vs. audio for recording.|
|The sound of conjoined stages.|
|Ambisonic ambient space display (demo)|
|Experiences with different styles (classical, jazz, electronic).|
|Common use cases (jamming, ensemble rehearsal, concerts).|
|Examples of composing for this new “stage.”|
|Other applications (new media installations, distance music teaching).|
|Alternative streaming apps / hardware.|
|Current research topics and speculations on future functionality.|
|Improvjam with CCRMA|
The JACK Audio Connection Kit is system for handling real-time, low latency audio (and MIDI). Originally developed for Linux, JACK ensures the lowest latency possible through your audio interface, provides an easy way of routing audio streams between applications and network nodes using a JACK plugin called Jacktrip.
OS X Install
Download and install the version for your flavor of OS X here: http://www.jackosx.com. If you already have an older version of JACK OS X installed, better to run the uninstall script that comes with it and trash/archive the old version of JackPilot, etc. before installing.
With Jack OS X you get three main components:
jackdmp - the audio server daemon, which is JACK. It is multi-threaded and multi-processor. The second: JackPilot, a user interface for JACK (or
jackdmp). Rather than talk to JACK through the command line, JackPilot allow you to set sampling rates, buffer sizes, and make connections between JACK clients graphically, a big plus. And finally, the JackRouter application which enables any OSX Core Audio application to become a Jack client (convenient). Plus you get AU and VST jack-aware audio plugins. PDF documentation comes with the install.
Packages for any relatively mainstream distribution are available for JACK with the package name:
jack-audio-connection-kit. You get the same
jackdmp described above. If you happen to be running a recent version of Fedora, you can get JACK and a host of other packages we use frequently at CCRMA (including Jacktrip) here: PlanetCCRMA.
jack-audio-connection-kit is also available on Ubuntu and comes with Ubuntu Studio.
note: nice,rt setting?
Qjackctl is another convenient Jack GUI front end (like JackPilot). It has a more intuitive interface for making graphic connections, especially for complex signal routing. OS X: There are binaries in the Ardour web site but not of the latest version (go to http://www.ardour.org). note: get nando's version. Linux:
qjackctl is available for any distro that offers the
JackTrip is a Linux and Mac OS X-based JACK client used for multi-machine network performance over the Internet. It supports any number of audio channels (as many as the computer/network can handle) of bidirectional, high quality, uncompressed audio signal steaming. You can use it between any combination of Linux and Mac OS X hosts.
OS X - Linux Install
Download the latest version for your OS, and unpack it. Move the
jacktrip-<ver> directory somewhere useful, you'll want to be able to get back to some of the stuff in there. For OS X the Applications folder would work. Follow the simple command line installation instructions in
INSTALL.txt (moving the jacktrip binary to your path, and setting the appropriate permissions). And that's it!
Jmess can save an XML file with all the currently active jack connections. This same file can be loaded to connect everything again. The XML file can also be edited. Jmess is a way of saving a connection layouts from a session; essential for complex setups. Download from the Jmess page. Installation is identical to JackTip.
There are a range of tools available for all sorts of network tasks and analysis, but we'll focus on a few standards:
traceroute. Ping and Traceroute come with both OS X and Linux, Iperf may not. For OS X MacPorts is the way to go for installing utilities like these. And for Linux Iperf comes with the
Quick Start Lab
Standard Networking Tools:
ping: find out if a host is up and see latency in milleseconds.
iperf: test maximum bandwidth and jitter.
traceroute: find the path by which packets are being forwarded for your connections and see the latency contributed by each.
nmap: scan a remote host for available open ports.