SuperCollider & jack the easy way

back
Starting up the jackd sound server first, then starting up supercollider, and then connecting everything later can be a major hassle.

jackd's relatively new temporary server mode makes this much, much easier. You just put your jack command line in ~/.jackdrc and boot the server from your SuperCollider IDE (I use scvim). Jack comes up automatically.

.jackdrc
/usr/local/bin/jackd -R -P 95 -d alsa -d hw:PCH -n 2 -r 48000 -p 256 This is really great. To make things even more customizable, I put a little bash script in /usr/local/bin/jackd. It launches jackd with pasuspender and allows for a sound card called AUTODETECT; that just checks if my big sound card is available and falls back to my normal one. #!/bin/bash if [ "" = "`grep IOx /proc/asound/cards`" ]; then AUTODETECT=PCH else AUTODETECT=IOx fi ARGS=$@ ARGS=${ARGS/AUTODETECT/$AUTODETECT} /usr/bin/pasuspender -- /usr/bin/jackd $ARGS Things like these are the reason working with linux audio is worth it, in spite of having less ready made software available. If something's a hassle, you write a script and never think about it again. Gosh, I wish the real world had scripts. Speaking of the real world, in the real world processors have more than one core, which is why it is really great SuperNova exists. SuperNova is a drop-in replacement for sclang that supports multicore processors. Thank you very much, Tim! SuperNova currently requires you to start up jack manually, but with another startup wrapper script it behaves just like sclang: #!/bin/bash . ~/.jackdrc & JACKPID=$! /usr/bin/supernova $@ & SUPERNOVAPID=$! trap 'kill $SUPERNOVAPID ; kill $JACKPID ' INT wait $JACKPID 2> /dev/null wait $SUPERNOVAPID 2> /dev/null

Imagine the possibilities if the real world had scripts. Remember everyone's name. Automatically listen emphatically and show agreement when people speak, while you're off in tinkerspace changing the world. Oh, the joy!