Difference between revisions of "Network Music Performance Workshop GAFFTA 2010"

From CCRMA Wiki
Jump to: navigation, search
(JACK)
(Network Utilities)
 
(32 intermediate revisions by the same user not shown)
Line 8: Line 8:
  
 
===Tuesday===
 
===Tuesday===
{|
+
 
|'''6-7:00 Introduction'''
+
'''6-7:00 [https://ccrma.stanford.edu/wiki/Network_Music_Performance_Workshop_GAFFTA_2010#Introduction Introduction]'''
|-
+
 
|Why standard teleconferencing doesn’t cut it for music.
+
* Why standard teleconferencing doesn’t cut it for music.
|-
+
* QoS = QoResults.
|QoS = QoResults.
+
* Assumed knowledge.
|-
+
* Additional terminology.
|Assumed knowledge.
+
* Connection: performance.
|-
+
 
|Additional terminology.
+
'''7-8:30: [https://ccrma.stanford.edu/wiki/Network_Music_Performance_Workshop_GAFFTA_2010#Quick_Start_Lab Quick start lab]'''
|-
+
* Example streaming apps / hardware (jackTrip, jack).
|Connection: performance.
+
* Takes two to tango, or just play together… (bi-directional streaming).
|-
+
* Software installation (cross-platform).
|'''7-8:30: Quick start lab'''
+
* Wired network setup (IP addresses and ports).
|-
+
* Soundcard setup.
|Example streaming apps / hardware (jackTrip, jack).
+
* Path qualification (minimum bandwidth, jitter).
|-
+
* Running sessions.
|Takes two to tango, or just play together… (bi-directional streaming).
+
* Tuning the connection (sampling rate, frames per packet, audio channels, redundancy).
|-
+
* Audio pickup and monitoring (proximity, talkback).
|Software installation (cross-platform).
+
* Avoiding feedback.
|-
+
* Connecting multi-site (connect with external node).
|Wired network setup (IP addresses and ports).
+
 
|-
+
'''8:30-9:00: [https://ccrma.stanford.edu/wiki/Network_Music_Performance_Workshop_GAFFTA_2010#Troubleshooting Troubleshooting]'''
|Soundcard setup.
+
* Standard network tools (ping, iperf, traceroute).
|-
+
* Specialized tools, yet to come (QoScope, SoundWIRE).
|Path qualification (minimum bandwidth, jitter).
+
* Using your ears.
|-
+
* Host computer problems vs. network problems.
|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===
 
===Thursday===
{|
+
'''6-7:00: [https://ccrma.stanford.edu/wiki/Network_Music_Performance_Workshop_GAFFTA_2010#Technical_Issues Technical issues] and discussion'''
|'''6-7:00: Technical issues and discussion'''
+
* Wired vs. wireless.
|-
+
* Bridging firewalls.
|Wired vs. wireless.
+
* Institutional firewall policies.
|-
+
 
|Bridging firewalls.
+
'''[https://ccrma.stanford.edu/wiki/Network_Music_Performance_Workshop_GAFFTA_2010#Auxiliary_Applications Auxiliary applications]'''
|-
+
* Video (Skype, iChat, DVTS, AccessGrid).
|Institutional firewall policies.
+
* Recording, real-time plugins (efx) via jack.
|-
+
 
|'''Auxiliary applications.'''
+
'''7-8:30: [https://ccrma.stanford.edu/wiki/Network_Music_Performance_Workshop_GAFFTA_2010#Musical_Issues Musical issues]: discussion, demos (live remote connections)'''
|-
+
* Every millisecond counts.
|Video (Skype, iChat, DVTS, AccessGrid).
+
* Sound before video.
|-
+
* Options for conducting.
|Recording, real-time plugins (efx) via jack.
+
* Self-delay pros and cons (demo).
|-
+
* Effect of delay on ensemble tempo and choice of music.
|'''7-8:30: Musical issues: discussion, demos (live remote connections)'''
+
* Only as good as the mics and loudspeakers.
|-
+
* Audio for monitoring vs. audio for recording.
|Every millisecond counts.
+
* The sound of conjoined stages.
|-
+
* Ambisonic ambient space display (demo)
|Sound before video.
+
* Experiences with different styles (classical, jazz, electronic).
|-
+
* Common use cases (jamming, ensemble rehearsal, concerts).
|Options for conducting.
+
* Examples of composing for this new “stage.”
|-
+
* Other applications (new media installations, distance music teaching).
|Self-delay pros and cons (demo).
+
 
|-
+
'''8:30-9:00: Conclusion'''
|Effect of delay on ensemble tempo and choice of music.
+
* Alternative streaming apps / hardware.
|-
+
* Current research topics and speculations on future functionality.
|Only as good as the mics and loudspeakers.
+
* '''Improvjam with CCRMA'''
|-
+
 
|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==
 
==Software==
Line 117: Line 75:
 
Download and install the version for your flavor of OS X here: [http://www.jackosx.com 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.   
 
Download and install the version for your flavor of OS X here: [http://www.jackosx.com 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 two main components: '''<code>jackdmp</code>''' - the audio server daemon, which is JACK.  It is multi-threaded and multi-processor. JackPilot is a user interface for JACK (or '''<code>jackdmp</code>''').  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.
+
With Jack OS X you get three main components: '''<code>jackdmp</code>''' - the audio server daemon, which is JACK.  It is multi-threaded and multi-processor. The second: JackPilot, a user interface for JACK (otherwise know as '''<code>jackdmp</code>''').  Rather than talk to JACK through the command line, JackPilot allows 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'''
 
'''Linux Install'''
  
Packages for any relatively mainstream distribution are available for JACK with the package name: <code>jack-audio-connection-kit</code>.  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 you can check out: [http://ccrma.stanford.edu/planetccrma/software PlanetCCRMA].   Conveniently, Jacktrip is also available there.  <code>jack-audio-connection-kit</code> is also available with Ubuntu.
+
Packages for any relatively mainstream distribution are available for JACK with the package name: <code>jack-audio-connection-kit</code>.  You get the same <code>jackdmp</code> 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: [http://ccrma.stanford.edu/planetccrma/software PlanetCCRMA].   <code>jack-audio-connection-kit</code> 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''': <code>qjackctl</code> is available for any distro that offers the <code>jack-audio-connection-kit</code>.
 +
 
 +
===JackTrip===
 +
 
 +
[https://ccrma.stanford.edu/groups/soundwire/software/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'''
 +
 
 +
[http://code.google.com/p/jacktrip Download] the latest version for your OS, and unpack it.  Move the <code>jacktrip-<ver></code> 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 <code>INSTALL.txt</code> (moving the jacktrip binary to your path, and setting the appropriate permissions).  And that's it!
  
===Jacktrip===
 
 
===Jmess===
 
===Jmess===
  
==Topics==
+
[https://ccrma.stanford.edu/groups/soundwire/software/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 [https://ccrma.stanford.edu/groups/soundwire/software/jmess 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: <code>ping</code>, <code>iperf</code>, <code>traceroute</code>, and <code>nmap</code>.  Ping and Traceroute come with both OS X and Linux, Iperf and Nmap may not.    For OS X [http://www.macports.org MacPorts] is the way to go for installing command line utilities like these.  OS X also offers the ''Network Utility'' which give you great features like Ping, Traceroute, and a Port Scanner among other useful tools.  Find it in your ''Utilities'' folder. For Linux Iperf and Nmap come with the <code>iperf</code> and <code>nmap</code> packages.
 +
 
 +
==Introduction==
 +
 
 +
==Quick Start Lab==
 +
 
 +
==Troubleshooting==
 +
 
 +
===Standard Networking Tools===
 +
 
 +
<code>[http://en.wikipedia.org/wiki/Ping ping]</code>:  find out if a host is up/accessible and see latency in milleseconds.
 +
 
 +
<code>[http://en.wikipedia.org/wiki/Iperf iperf]</code>:  test for maximum bandwidth and jitter between two hosts.
 +
 
 +
<code>[http://en.wikipedia.org/wiki/Traceroute traceroute]</code>:  find the path by which packets are being forwarded for your connections and see the latency contributed by each hop.
 +
 
 +
<code>[http://en.wikipedia.org/wiki/Nmap nmap]</code>:  scan a remote host for available open ports.
 +
 
 +
===Specialized Tools===
 +
 
 +
Specialized tools, yet to come (QoScope, [https://ccrma.stanford.edu/groups/soundwire 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==

Latest revision as of 02:30, 29 October 2010

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 (otherwise know as jackdmp). Rather than talk to JACK through the command line, JackPilot allows 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 command line utilities like these. OS X also offers the Network Utility which give you great features like Ping, Traceroute, and a Port Scanner among other useful tools. Find it in your Utilities folder. 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/accessible and see latency in milleseconds.

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

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