CCRMA Documentation links:   index   contents   overview   rooms   account   staff   about


(contents of this file: links to each section)

JackStreamer

JackStreamer is the name for a Raspberry Pi computer running special software that makes it an appliance dedicated to being a JackTrip client.

A JackStreamer “kit” also contains a mic, cabling, and a digital audio interface; older kits use PreSonus AudioBox USB 96 and newer kits use Zoom U-22.

This document contains links to video tutorials, a recommended daily routine, a FAQ, troubleshooting tips, additional documentation, and some screenshots of the user interface.

Video Tutorials

Adriana Ramirez Mirabal and Matt Wright made some video tutorials about JackStreamer:

  1. Equipment: the contents of the JackStreamer kit
  2. Plugging in: connecting everything and what the knobs do
  3. Connecting to a Server and Playing Together Online: how to start a jacktrip session and make music with someone over the Internet

These videos show the PreSonus audio interface but are largely also applicable to the Zoom.

Kit Contents

The Equipment video tutorial and manufacturer’s hardware setup instructions (for PreSonus or Zoom based kits) show the contents of the JackStreamer kit:

You supply:

Hardware Issues

For any hardware issue with JackStreamer please contact NetworkSound via email support@networksound.com or phone 978 384 0780.

Controlling JackStreamer

JackStreamer is meant to be controlled via a web browser from a phone or computer that connects to the Pi computer over wifi. By default every JackStreamer is a Wi-Fi access point with JackStreamer as the wireless network name (The JackStreamers in Braun instead have customized network names such as JackStreamer-106; if other people are using JackStreamers in your vicinity then you might need to change your JackStreamer’s wifi name).

After getting your phone or computer on your JackStreamer’s wifi, then open http://192.168.4.1/index.php in a web browser and you should see the JackStreamer GUI, something like this (depending on your specific web browser and the JackStreamer GUI version):

Main screen of the JackStreamer GUI (version 1.2)

The next subsections explain the main controls that the interface provides.

Update

This downloads the latest software for the JackStreamer and the most current server list; recommended to do this weekly or more.

Input queue length

Sets the number of audio packets in JackStreamer’s receive queue. Higher numbers can reduce audio dropouts at the expense of increased latency; see FAQ.

Server menu

This pull-down menu shows the list of jacktrip servers accessible from your JackStreamer. Each server is a separate computer on the Internet; you can think of them as being like “rooms” where you meet with other people to play music together.

(Each server has a fixed sample rate and buffer size so as a JackStreamer user you don’t have to think about these settings.)

Start Session

This button makes your JackStreamer attempt to connect to the chosen server. (This includes starting JACK and then running jacktrip as a client of the chosen server.)

If the connection is successful it will keep running until you “stop session”, “shutdown” your JackStreamer, or the server quits or disconnects you.

Mono and Stereo buttons

These change the way your JackStreamer lets you hear the two audio channels that are coming to you from the network:

Mono
Mix the two incoming channels together into a mono signal. Send the mono signal out both JackStreamer outputs (same in both speakers / same in both ears of the headphones)
Stereo
Keep the two incoming channels separate

These do not affect what you send from JackStreamer. If you have two mics plugged in they will always be sent separately. If your one mic is plugged into input 2 then everybody will receive your signal only in channel 2 even if you press the Mono button.

Stop Session

This button stops whatever jacktrip session your JackStreamer might be running (both disconnecting from the jacktrip server and also stopping JACK). After pressing this button you can start another session.

Help

Prints some basic usage information.

WiFi Off

Turns off the JackStreamer’s WiFi. After pressing this button the GUI will stop working because your phone or computer will no longer be connected to the Pi over WiFi, so all you can do is continue the current session (which you configured and started while WiFi was still on) until you cut power to the Pi.

Check Internet

Verifies that your JackStreamer’s ethernet connection really does go to the Internet. Also it displays your JackStreamer’s MAC Address.

It will either print You are connected!! (meaning your connection is good) or Not connected. Check ethernet cable and restart (meaning you need to troubleshoot your Internet connection

(This check simply uses standard ping, not the specific UDP and TCP ports 4464 needed by jacktrip, so it might report success even if, for example, your home router’s firewall settings are blocking ports that jacktrip needs. We are working on a better solution to this.)

Shutdown

60 seconds after pressing this button the Raspberry Pi shuts down (but the lights stay on so it’s impossible to see that anything changed).

Recipes

Powering Off a JackStreamer

There is no power switch so you need to do something like unplugging the USB-C power adapter from the Pi. One thing to keep in mind is that the Pi is powering the audio interface, so if the Pi suddenly loses power then the audio interface will also suddenly lose power, resulting in an unpleasant loud popping sound that’s not good for your speakers or ears. So it’s recommended to power off your speakers and take off or unplug your headphones before powering off your Pi.

Using a JackStreamer-enabled Braun Practice Room

Access and scheduling: Contact Bryan Hardester if you would like to use a JackStreamer in one of the practice rooms of Braun Music Center. As of October 2020 all practice room use is restricted to keyboard and certain percussion instruments.

Rooms 105 and 106 are for piano; 211 is for drum set.

Audio in each room includes the usual microphone plus a pair of large loudspeakers. Make sure the speakers are powered on when you do your local audio check. Or if you prefer to use your own headphones you can plug them into the Presonus (possibly requiring a adapter).

Wifi network name is specific to each room, for example JackStreamer-105 or JackStreamer-211. Make sure to choose the proper wifi network as part of your recommended daily routine and any other JackRouter configuration.

Hygiene is essential for all shared spaces on campus; any alcohol-based cleaner for piano keyboards is also suitable for all contents of the JackStreamer kit (but definitely not suitable for any other part of the piano!) so don’t be shy about wiping down high-touch surfaces such as the knobs and switches you may need to operate.

Server to use is something that needs to be agreed on beforehand. Some servers can be reserved in advance.

Local Audio Check

The general procedure is the same, but the details differ according to which audio interface your kit contains.

  1. Listen only to yourself
  2. Turn up the mic
  3. Turn up the headphones / speakers
  4. Minimize noise
  5. Go back to being able to listen to the network

Local Audio Check with Zoom U-22

If you don’t hear the sound from your mic then you must diagnose and correct the problem(s) before proceeding.

Local Audio Check with Presonus

If you don’t hear the sound from your mic then you must diagnose and correct the problem(s) before proceeding.

Find the Best Buffer Size

You will test by passing the sound from your mic through the “loop” (not “room”) servers.

  1. Start by connecting to jackloop64.
  2. You should hear your own sound looping back (plus the clapping). (Otherwise stop and troubleshoot.)
  3. If “64” is clean, try lower to “32”, if dirty go higher to “128”.
  4. Keep going until you find the lowest number (lowest latency) that gives acceptable audio quality.
  1. Do a local audio check; afterwards don’t forget to turn the Presonus “mixer” knob all the way right.
  2. Connect to JackStreamer GUI.
  3. Do an update.
  4. Find the best buffer size according to your current “Internet weather” and other conditions.
  5. (Re)adjust headphone and / or main volumes to comfortable level
  6. (Re)adjust mic 1 level to be clean, clear, and not clipping

If you are also using Zoom (or Skype, FaceTime, or any other video chat software), you probably don’t want to use Zoom audio while also using jacktrip audio. Once jacktrip is working it’s usually best for everybody to mute themselves on Zoom.

Connecting JackStreamer to Stanford Residential Internet

There are two easy steps:

  1. Register the device (depending on whether you live in a regular residence or a GSB residence).

  2. Plug it into a working Ethernet port. Every residence is supposed to have at least one working Ethernet port, “however in some rooms there may be two connected, or none, depending on prior history of events.” You can tell whether a given Ethernet port is “hot” by plugging your JackStreamer into it and seeing whether the green light in the corner of the JackStreamer’s Ethernet port turns on (and possibly flashes). If your room has multiple Ethernet ports then keep trying until you find a good one.

If your room doesn’t contain any working Ethernet ports, or if you believe you successfully completed both these steps (including waiting 24 hours after registration) but your JackStreamer still can’t connect to the Internet, then ask for help from the Peer Technology Specialist team via phone, email, or making an appointment.

Registering JackStreamer on Stanford Residential Internet

These instructions are for students and faculty living on the Stanford campus but not in the GSB residences.

  1. Go to https://iprequest.stanford.edu
  2. Click “Student”
  3. Check Eligibility (Do you have a SUNet ID? Do you live on campus? Do you live at a GSB residence?)
  4. Start Registration
  5. Confirm Identity (Is {your name} you?)
  6. “New Registration” button
  7. agree to terms & conditions
  8. Is this the computer (the one you are currently using) the computer that you wish to register? Select “No”
  9. Device Type: select “Other”
  10. Operating System: select “Linux”
  11. Hardware Address: enter your JackStreamer’s MAC address.
  12. (Leave “Wireless Address” blank.)
  13. Submit

Registering JackStreamer on Stanford GSB Residential Internet

Schwab, Jack McDonald Hall, and Highland Hall all provide Internet connectivity via the GSB-specific IT support services. You can register a device with their Device Network Registration form and it should become active within 24 hours. For support you can contact GSB IT for help.

Attesting that JackStreamer is Exempt from Encryption Requirements

Stanford’s encryption requirements generally currently do not apply to Linux computers (including JackStreamer).

For now it appears that you don’t have to worry about this.

(If you did have to address this it would probably be via https://mydevices.stanford.edu)

Registering JackStreamer in Braun

Contact Bryan Hardester if you would like to install a JackStreamer in a particular room of Braun Music Center, for example, a faculty office or a lesson space. He will need to know your JackStreamer’s MAC address.

Troubleshooting Internet Connection

If the Check Internet button tells you something like Not connected. Check ethernet cable and restart then the JackStreamer is unable to reach the Internet via Ethernet. Here are some possible causes:

One great debugging tool is to plug that same ethernet cable into a computer instead of the JackStreamer, then see whether the computer gets Internet via the cable (e.g., by turning off wifi and attempting to surf the web), and if not whether the computer can offer any diagnostics.

FAQ

Frequently asked questions:

Can JackStreamer connect to people using jacktrip on their computer?
Yes! As long as everybody is connecting to the same server you will all hear each other even if some people are connecting via JackStreamer and others from laptop or desktop computers.
What’s that URL for configuring JackStreamer?
http://192.168.4.1/index.php It’s written on a sticker on the bottom of every JackStreamer. You might want to load that URL (or this FAQ page) into your browser while you’re still on the Internet (even though it won’t connect to your Pi), then after you get the device on the JackStreamer network you won’t have to type the URL.
There are two types of servers (“loop” and “room”), but what are the different numbers (32, 64, 128,… 1024)?
Those numbers change the audio packet size. The smallest size gives the lowest latency but increases the number of packets flowing on the network. Some network paths have difficulty supporting really dense, low-latency flows and the resulting streams have noticeable “hiccups” rather than smooth, clear sound. Increasing the size can iron out the hiccups. The audio packet size also goes by other names in JackTrip documentation: it’s the same thing as “buffer size” or “frames per packet” (FPP).
Those different queue lengths, how do I select the right one?
Like with audio packet size, choose the best queue length by experimentation and listening. Hiccups in the audio stream can often be remedied by lengthening the queue length.
Which should I try first, audio packet size or queue length?
They both have a role in smoothing out hiccups (packet jitter), but we recommend you tune the settings for your home connection by starting with the default queue length which is 4. Experiment to find the lowest audio packet size that sounds ok (maybe a few hiccups now and then). Clean it up further by lengthening the queue. If you want to drop the audio packet size down a notch for better latency, you may need to lengthen the queue a bit further.
Can’t this tuning be automated?
Yes, but the algorithm is still in testing. An update will be announced when it’s ready.
Is my JackStreamer running the latest software version?
On the original software push “Update GUI”; if that button has changed to just “Update”, push that one. After updating the GUI you will probably also need to re-update the server list (since GUI updates currently clobber the server list).
How often should I check for updates?
At present there are approximately weekly updates available. It can’t hurt to regularly update, say starting each day your going online.
Could you summarize the recommended daily routine?
First check your audio, second check your network streaming. (See above)
Does everyone need to be on the same server?
Yes.
What if some are clean at “32” and others not?
Agree what the highest common number is with your session partners and use that server. (In other words, everyone needs to accommodate the partner(s) with the worst Internet connections.)
I hear a regular clapping sound, who keeps doing that?
The clapping track is playing from the Stanford jackloop server you’re connected to. It’s there for reference. The clapping is on channel 1 (left).
No more clapping, please!
Use a “jackroom” server or any server that is not jackloop.
But why would you want that clapping?
Two reasons: 1. So you can verify your connection to the server without needing anybody else (or even a microphone). 2. If you clap along perfectly to the recording (so that it sounds right to you), then other people on the same server will be able to hear your latency to the server as the time delay between the recorded and live claps.
When I connect my phone to the JackStreamer wifi, my phone complains it can’t connect to the Internet.
Your phone is now connected only to the Raspberry Pi. JackStreamer will work fine (over Ethernet, as long as Check Internet is happy)
I only have one wifi device to use. For the JackStreamer, sure, but I also need to use it to get to regular wifi for other applications like Zoom and messaging.
Use your laptop for one function and phone for the others. This is a good reason to keep old phones around. No plan is needed when connecting to the JackStreamer, just local wifi connectivity.
No, really, I literally have only one wifi device.
You can switch it to JackStreamer wifi only to start your jacktrip session, then as soon as you see “Live” you can switch your wifi device back to regular. At the end of the session either get back on JackStreamer to “Stop Session” or just unplug power from the Raspberry Pi.
Isn’t there another way to deal with this wifi business?
Yes. Newer versions of the JackStreamer GUI have a button “WIFi off” that turns off the JackStreamer’s WiFi. After successfully starting a session you could turn off the Pi’s WiFi (at which point your phone or computer will almost certainly go back to “normal” WiFi); your JackStreamer would remain connected to the server with whatever settings you’re using, but you would lose the ability to change anything else (and would only be able to leave the session by powering down the Pi).

Troubleshooting

Try following the recommended daily routine.

If “it doesn’t work”, here are some questions to ask:

If the answers to these questions still don’t tell you how to solve your problem, then please include the (relevant) answers as part of any request for help. Please copy+paste or take screenshots from the web browser GUI (especially error messages and unexpected behavior).

Troubleshooting: jackd Won’t Start

There are a few possible reasons JackStreamer might fail to Start Session with the error message Jackd not started! Please check if the audio device is connected to the Jackstreamer and powered on! (like in this screenshot):

  1. Like the message says, please confirm your audio interface is connected to one of the Pi’s blue USB ports (the other ones won’t work for audio), and that and it lights up (showing that it’s receiving power).
  2. Try “Start Session” once or twice more.
  3. Try your JackStreamer’s other blue USB port (there are two).
  4. You may be the victim of a faulty USB cable. (A significant minority of the ones that came with the Presonus AudioBox USB 96 have this problem with some JackStreamers.) You should swap it with Adriana for a better one, or else buy the recommended USB cable from Amazon.
  5. Otherwise you have a yet-unseen hardware problem and should contact the manufacturer.

Documentation

JackStreamer manufacturer’s product page and hardware setup instructions for PreSonus or Zoom kits.

Once you get your phone or laptop on the “JackStreamer” wifi network that the Raspberry Pi hosts, point your browser to http://192.168.4.1/index.php. (Pro-tip: first load this documentation page while you’re on the Internet, then after you switch to the JackStreamer wifi network you can just click the link instead of having to type the 28 characters of this URL.)

Server list

GUI update: http://networksound.com/images/GUIupdate.zip

You can always go to http://192.168.4.1/index_factory.php to get back to the default GUI that was shipped with your JackStreamer; you might want to do this, for example, if your update is interrupted or if there’s a bug or if you don’t like the new behavior. From this “factory” GUI you could then update to the current.

MAC Address

Every device in the world that has an ethernet jack has a unique MAC address, including JackStreamer Raspberry Pi computers. It always looks like six pairs of hexadecimal numbers (meaning each digit is 0-9 or A-F).

It should be printed on a sticker attached to the bottom of your JackStreamer, something like this:

Connect Jackstreamer WiFi
http://192.168.4.1/index.php
Mac: dc:a6:32:5d:80:96
support@networksound.com

Also if you Check Internet from the GUI then it will display the MAC address, e.g.,

Your MAC address is: dc:a6:32:5d:80:96
You are connected!!

GUI screenshots

JackStreamer has a graphical user interface for configuring JACK and jacktrip. Once you get a phone or laptop on the JackStreamer wifi network and open the URL http://192.168.4.1/index.php in a web browser, you should see something resembling the following screenshots. (The details of exactly what you’ll see depend both on the JackStreamer GUI version and on your specific web browser.)

Main Screen

Main screen of the JackStreamer GUI (version 1.2)
Main screen of the JackStreamer GUI

Success

After successfully making a jacktrip connection the interface will display “Live” in red

Failure

If JackStreamer fails to start jackd, most likely because the audio interface is not plugged in, you will see something like this

Here are some tips on troubleshooting this situation where jackd doesn’t start


This page of CCRMA documentation last committed on Mon Oct 16 18:26:42 2023 -0700 by Matthew James Wright. Stanford has a page for Digital Accessibility.