Work in progress for an installation at Automata, with John Eagle, Cassia Streb, and Janie Geiser.
This project sends audio using OSC packets to eight individual Raspberry Pis using the real-time audio programming language, ChucK. The following steps outline the process for setting up this system.
While this isn't necessarily required for the ChucK implementation, it is definitely required for the JackTrip implementation. Go to the Raspberry Pi and get the latest NOOBS image.
Format your microSD card using SDFormatter.
Then simply load the contents of the NOOBS .zip
onto your card.
Then load the microSD onto your Pi and install Raspbian using the prompts.
After the install, you might have to change your keyboard settings to US and use the system preferences to disable boot to desktop and enable boot to CLI (command-line interface).
Use the following command to open the wpa_supplicant.conf
with the built-in editor (Nano). A more detailed instruction of this process is found here.
sudo nano /etc/network/wpa_supplicant/wpa_supplicant.conf
Then add the following to the bottom of the file.
network={
ssid="your_network"
psk="your_passkey"
}
To save, press ctrl-x
, when it asks to save, press y
. Then press enter
to finish.
On the Raspberry Pi 3, it's nice to turn off power management. This ensures that the WiFi still operates after 1 minute of inactivity. You'll have to the following line to your your /etc/network/interfaces
config file.
post-up iw dev $IFACE set power_save off
To access the file, type in sudo nano /etc/network/interfaces
, and add the line right underneath the iface wlan0 inet manual
line. It should look like the following.
allow-hotplug wlan0
iface wlan0 inet manual
post-up iw dev $IFACE set power_save off
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Now to set a static IP, we'll have to edit the /etc/dhcpcd.conf
file, but first we'll need to know the router's IP address. To find it, type in netstat -nr
, the router's IP will be listed under Gateway
, it should look something like the following.
Destination Gateway Genmask Flag MSS Window irtt Iface
0.0.0.0 192.168.X.X 0.0.0.0 UG 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
Then type on sudo nano /etc/dhcpcd.conf
to edit the dhcpdc.conf
file, at the bottom, add the following.
interface wlan0
static ip_address=192.168.1.11/24 #put your desired IP address here, with the /24 after it
static routers=192.168.X.X #put your router's IP address here, in place of the 192.168.X.X
static domain_name_servers=192.168.X.X #same IP address as the above line
Reboot and make sure that your IP is to what you set it, and you're still on the network, then you should be good to go.
For the installation, pione
will be 192.168.1.11
, pitwo
will be 192.168.1.12
, and so on.
First we'll have to install some depnedencies.
sudo apt-get install bison flex
sudo apt-get install alsa-base libasound2-dev libsndfile1-dev
Clone the ChucK repository to a suitable directory.
git clone https://github.com/ccrma/chuck
Now we can change to the chuck/src
directory and build the makefile.
cd chuck/src
make linux-alsa
After it is built, install it.
sudo make install linux-alsa
On the Raspberry Pi, run the program that receives the OSX.
chuck receiver.ck
And then on the master computer, run the program that sends the audio. You'll probably have to edit the file so you're sending to the proper IP addresses.
chuck sender.ck
That's about it! It's not the best quality at the moment, will need to test with a dedicated router and tweak a few other things.
This was an attempt at not using OSC, and has since been disregarded. It might work well with a wired connection, but as it says in its documentation, JackTrip is not meant for wireless communication.
Install JACK for OSX using this .zip
.
Then to install JackTrip, go here and download it's .zip
.
After unzipping the .zip
file, go to terminal, change to the directory where jacktrip
is, go to /bin
, and run the following commands.
sudo cp jacktrip /usr/bin/
sudo chmod 755 /usr/bin/jacktrip
If you're on El Capitan, Apple's System Integrity Protection will prevent you from moving anything around in root. To get around this you'll have to reboot, hold cmd-r
, open up Terminal through utilities, and type in the following.
csrutil disable
reboot
The Jack audio server comes preinstalled on this version of Raspbian (maybe on others too), now we just have to install JackTrip.
sudo apt-get install jacktrip
Open up the jackPilot
application, and open up it's preferences.
Make sure that Jack's settings matching the settings that we'll use on the Pi.
The only only you should have to change is the buffer size, which we'll set to 2048
.
Some of these directions for the initial setup come from here.
First we have to run the JACK audio server, which we'll run in the in the background with the following.
jackd -S -P70 -t2000 -dalsa -dhw:ALSA -r44100 -p2048 -n3 -s &
And then we start JackTrip talking to the OSX machine using the computer's IP.
jacktrip -c 192.168.1.XXX
And we're off! The quality is decent enough for now, we'll keep tweaking options to improve it.~~