Movement and Sound Technologies
We offer a workshop for dance artists and musicians on the use of accelerometers as a way to create and control the soundscore of a performance.
In the workshop we will deal with the integration of sound and movement, using the open-source programming language SuperCollider and movement sensors to generate sound.
Necessary materials
You will need a laptop, a smartphone and headphones. Please make sure these are NOT bluetooth headphones, as this is likely to cause all kinds of issues with the software. Better use wired headphones instead. Before the workshop starts you should install some software: SuperCollider, and Audacity on your computer, and TouchOSC on your phone. We will set up everything together on the first day of the workshop, so no need to worry if you have problems during the installation procedure.
⚠️*IMPORTANT NOTICE* ⚠️ Currently you will not be able to do the workshop with a Chromebook! There are ways to run Linux on a Chromebook, which would make it possible to build SuperCollider from source and install Audacity, but this is far beyond the scope of the workshop, and should only be attempted if you know what you are doing!
Installing SuperCollider
You will find the download links on the SuperCollider homepage.
Mac users go to this link and download the most recent version. When you are asked to open it, click yes. This will create a folder called SuperCollider in your Downloads folder. Move this folder with all its content into your Applications folder. Open the SuperCollider folder and click on the SuperCollider icon. If you get a message saying that the program can't be opened because of a problem, you need to move the SuperCollider folder to the trash, and try with an older version of SuperCollider instead (from the same downloads page, under the Previous Releases heading). In this case you may not be able to open SuperCollider immediately when you left-click on it the first time after moving it to your Applications folder. Instead, you should either right-click or hold down the Ctrl key on your keyboard while left-clicking on it. The computer will then ask you if you want to open the application. Confirm this. Next time you open SuperCollider you will not be asked about this.
Windows users should click on this link and download the latest version. If your computer is less than 10 years old you will want to download the 64-bit version. You will be asked if you want to save the file. Click yes. Once the file has been downloaded, click on it. You will be asked if you want to run it. Click Run. This will launch a program that takes care of the installation for you. Agree to everything the program asks you to.
Linux users can install SuperCollider from the respective distro repositories. Check the SuperCollider download page to find instructions for you version of Linux.
⚠️ IMPORTANT NOTICE FOR LINUX USERS ⚠️ SuperCollider
requires you to have Jack installed on your
computer. Linux audio is a bit of a rat's nest, with a lot of different
systems potentially competing for your hardware. A good guide to using
jack can be found
here, or in the
ArchWiki.
The easiest and quickest way to get jack up and running for the
workshop is to install the jackd2 and qjackctl packages.
Arch:
sudo pacman -S jackd2 qjackctl
Debian and Ubuntu:
sudo apt install jackd2 qjackctl
To prevent conflicts between jack and pulseaudio (the default sound
server or on most distros) you will need to stop pulseaudio and
prevent it from restarting by issuing the command
touch ~/.config/pulse/client.conf echo 'autospawn = no' >> ~/.config/pulse/client.conf
and then run the command
pulseaudio -k
before launching qjackctl. Click on the green play button to start
jack.
When you're done with jack you can stop the server by clicking on the
red button in qjackctl, then restart pulseaudio by running
pulseaudio
in the terminal.
A more modern and simple way to go about this is to run pipewire as a
replacement for pulseaudio and use pipewire's jack emulation.
Please make sure you take the time to ensure you have jack properly
set up before the workshop! We will not have time to do troubleshooting
of a complex audio setup during the workshop.
Installing Audacity
Audacity is a free and open source editor for sound files. You will use this in the workshop to record your own sounds, clean them up and cut them into manageable pieces.
Mac and Windows users should follow the instructions on the Audacity downloads page
Installing TouchOSC
To get data from your mobile phone to the computer we will use an app called TouchOSC Mk1. Visit this link if you have an iPhone, or this link if you have an Android phone (basically any smartphone that is not an iPhone…). This will take you to App Store (iPhone) or Play Store (Android), where you will have to purchase the software for 5-6 euro. The price varies depending on platform and country.
Special Symbols
Before the workshop, please find on your keyboard the symbols:
~ / \ [] {} (). This will vary wildly between different keyboard
layouts in different countries and different operating systems.
Resources
Troubleshooting
SuperCollider's server won't boot
If you get the message "ERROR: Input sample rate is 44100, but output is 48000…", you need to make sure that the input and output is running at the same sample rate.
Mac: Go to Audio Midi Setup -> Built-in Microphone and set Format
to 44100,0 hz. Do the same thing with Built-in Output.
Phone "Class not defined"
If you get this error after installing the Phone quark and type in
p = Phone.new(\iPhone) :
ERROR: Class not defined.
in interpreted text
line 1 char 6:
Phone.new;
-----------------------------------
-> nil
Recompile SuperCollider by going to
Language -> Recompile Class Library and try again.
I'm not getting any data from my Android phone
- When you are connected to a wireless router that is not connected to the internet, your phone will panic and try desperately to connect to the webz in any way possible. When you connect to the network you will be asked to stay connected, even if there is no internet. Click "Yes" to this. Another approach is to activate airplane mode, activate wifi manually, and then try to connect.
- Make sure that the phone is visible on the local network. The settings for this may differ between phone brands, but are probably hidden somewhere in the advanced wifi settings.
I'm not getting any data into my Windows PC
Try to disable the firewall temporarily. There may be more than one layer of protection, so you may have to disable more options. Please remember to turn it back on afterwards, never leave your computer unprotected in the wild webs!
I'm not getting any data from my iPhone
Make sure TouchOSC is allowed to access the local network. Go to
Settings->TouchOSC and enable access by switching the button.
Stuff is mysteriously not working
- Have you typed everything in your code exactly the way it should be
written?
PhonepHone, andphoneare three completely different words, as far as SuperCollider is concerned. Also: go through the checklist at the bottom of this page and make sure everything is set up correctly. - Try to reboot your computer and phone to reset bad network settings.
- Try to uninstall TouchOSC and reinstall it
Buffers won't load
- If you use Windows, try to drag and drop the audio folder into the SuperCollider window from a File Explorer window.
- If you are on Mac, try to use the Windows version of the buffer loading code.
- Dragging and dropping may cause incorrect path names if you use a
different language than English for your operating system. Try typing
in the path instead, making sure everything is written exactly the
way it's written in Finder (Mac) or File Explorer (Windows). On
Windows, one more stage is necessary: the file path separators need to
be typed as
/, not as\.
Syntax error
- Did you close all opening braces and parentheses?
- Did you finish each statement with a semi-colon?
SuperCollider complains about port taken
Restart SuperCollider to free up the port, or set a different port (f.x. 55556) in both SuperCollider and TouchOSC.
Checklist
- Is the phone connected to the same network as the computer?
- Have you set up the correct IP address in TouchOSC? Remember that your IP address today may not be the same as yesterday.
- Is your Android phone visible on the local network?
- Is TouchOSC set up to transmit accelerometer data?
- Does TouchOSC's outgoing port match an open port in SuperCollider?
- Can you evaluate the accompanying code without error?
- Do you get data from TouchOSC in SuperCollider?