Network Music Performance Workshop GAFFTA 2010

From CCRMA Wiki
Revision as of 01:54, 29 October 2010 by Carrlane (Talk | contribs) (Standard Networking Tools)

Jump to: navigation, search

Description

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.

Schedule

Tuesday

6-7:00 Introduction

  • Why standard teleconferencing doesn’t cut it for music.
  • QoS = QoResults.
  • Assumed knowledge.
  • Additional terminology.
  • Connection: performance.

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).
  • Soundcard setup.
  • Path qualification (minimum bandwidth, jitter).
  • Running sessions.
  • Tuning the connection (sampling rate, frames per packet, audio channels, redundancy).
  • Audio pickup and monitoring (proximity, talkback).
  • Avoiding feedback.
  • Connecting multi-site (connect with external node).

8:30-9:00: Troubleshooting

  • Standard network tools (ping, iperf, traceroute).
  • Specialized tools, yet to come (QoScope, SoundWIRE).
  • Using your ears.
  • Host computer problems vs. network problems.

Thursday

6-7:00: Technical issues and discussion

  • Wired vs. wireless.
  • Bridging firewalls.
  • Institutional firewall policies.

Auxiliary applications

  • 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).

8:30-9:00: Conclusion

  • Alternative streaming apps / hardware.
  • Current research topics and speculations on future functionality.
  • Improvjam with CCRMA


Software

JACK

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.

Linux 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

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 jack-audio-connection-kit.

JackTrip

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

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.

Network Utilities

There are a range of tools available for all sorts of network tasks and analysis, but we'll focus on a few standards: ping, iperf, traceroute, and nmap. Ping and Traceroute come with both OS X and Linux, Iperf and Nmap may not. For OS X MacPorts is the way to go for installing utilities like these. And for Linux Iperf and Nmap come with the iperf and nmap packages.

Introduction

Quick Start Lab

Troubleshooting

Standard Networking Tools

ping: find out if a host is up and see latency in milleseconds.

iperf: test for maximum bandwidth and jitter between two nodes.

traceroute: find the path by which packets are being forwarded for your connections and see the latency contributed by each hop.

nmap: scan a remote host for available open ports.

Specialized Tools

Specialized tools, yet to come (QoScope, SoundWIRE)

Using your ears

The Crackle and Pop (dropouts/jitter), buffer repetition, feedback, echo reflections.

Host computer problems vs. network problems

Static IP Configuration

IP must be known and stable

Firewalls

Specialized ports are almost always closed. Make sure you ask at the very first mention of getting a network performance together, it can take days or longer to fix, and is a show stopper.

Subnets

IP must be viewable from Internet, Gateway

Packet Shapers

add latency


Technical Issues

Auxiliary Applications

Musical Issues