Raspberry Pi Wheezy ships with SuperCollider, but it ships with an old version that does not have support for Qt graphics. This post is only slightly modified from this (formerly) handy guide for building an unstable snapshot of 3.7 without graphic support. There are a few differences, however to add graphic support and maintain wii support.
This requires the Raspbian operating system, and should work if you get it via NOOBs. I could not get this to fit on a 4 gig SD card.
Note: This whole process takes many hours, but has long stretches where it’s chugging away and you can go work on something else.
Preparation
- log in and type sudo raspi-config, select expand file system, set timezone, finish and reboot
- sudo apt-get update
- sudo apt-get upgrade # this might take a while
- sudo apt-get remove supercollider # remove old supercollider
- sudo apt-get autoremove
- sudo apt-get install cmake libasound2-dev libsamplerate0-dev libsndfile1-dev libavahi-client-dev libicu-dev libreadline-dev libfftw3-dev libxt-dev libcwiid1 libcwiid-dev subversion libqt4-dev libqtwebkit-dev libjack-jackd2-dev
- sudo ldconfig
Build SuperCollider
- wget http://downloads.sourceforge.net/project/supercollider/Source/3.6/SuperCollider-3.6.6-Source.tar.bz2
- tar -xvf SuperCollider-3.6.6-Source.tar.bz2
- rm SuperCollider-3.6.6-Source.tar.bz2
- cd SuperCollider-Source
- mkdir build && cd build
- sudo dd if=/dev/zero of=/swapfile bs=1MB count=512 # create a temporary swap file
- sudo mkswap /swapfile
- sudo swapon /swapfile
- CC=”gcc” CXX=”g++” cmake -L -DCMAKE_BUILD_TYPE=”Release” -DBUILD_TESTING=OFF -DSSE=OFF -DSSE2=OFF -DSUPERNOVA=OFF -DNOVA_SIMD=ON -DNATIVE=OFF -DSC_ED=OFF -DSC_EL=OFF -DCMAKE_C_FLAGS=”-march=armv6 -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp” -DCMAKE_CXX_FLAGS=”-march=armv6 -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp” ..
# should add ‘-ffast-math -O3’ here but then gcc4.6.3 fails - make # this takes hours
- sudo make install
- cd ../..
- sudo rm -r SuperCollider-Source
- sudo swapoff /swapfile
- sudo rm /swapfile
- sudo ldconfig
- echo "export SC_JACK_DEFAULT_INPUTS="system"" >> ~/.bashrc
- echo "export SC_JACK_DEFAULT_OUTPUTS="system"" >> ~/.bashrc
- sudo reboot
Test SuperCollider
- jackd -p32 -dalsa -dhw:0,0 -p1024 -n3 -s & # built-in sound. change to -dhw:1,0 for usb sound card (see more below)
- scsynth -u 57110 &
- scide
- s.boot;
- {SinOsc.ar(440)}.play
- Control-.
Optional: Low latency, RealTime, USB Soundcard etc
- sudo pico /etc/security/limits.conf
- and add the following lines somewhere before it says end of file.
- @audio – memlock 256000
- @audio – rtprio 99
- @audio – nice -19
- save and exit with ctrl+o, ctrl+x
- sudo halt
- power off the rpi and insert the sd card in your laptop.
- dwc_otg.speed=1 # add the following to beginning of /boot/cmdline.txt (see http://wiki.linuxaudio.org/wiki/raspberrypi under force usb1.1 mode)
- eject the sd card and put it back in the rpi, make sure usb soundcard is connected and power on again.
- log in with ssh and now you can start jack with a lower blocksize
- jackd -p32 -dalsa -dhw:1,0 -p256 -n3 -s & # uses an usb sound card and lower blocksize
- continue like in step5.2 above
links:
- http://wiki.linuxaudio.org/wiki/raspberrypi
- https://supercollider.github.io/development/building-raspberrypi.html
This post is licensed under the GNU General Public License.