View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide

Running scsynth

Home   How To   Code Pool   Public Library   Theory   Events
This section explains how to start scsynth from the command line. This can be useful if you are planning to run sclang on a separate machine than scsynth. Note that scsynth can be run from within sclang, for information see Running sclang.

Command Line Options


you can get a list of command line options by starting scsynth with the -h option:

$ scsynth -h


the options listed are the same on all platforms, but there are some peculiarities pertaining to the linux port.

the options -i and -o take an integer argument and specifiy the number of audio input and output channels, respectively. on linux, if you built with jack support, that many jack i/o ports are created by scsynth.

you cannot yet pass a jack client identifier on the command line, but you can change the name through the environment (see below). the default identifier is 'SuperCollider'; if that name is used already, e.g. when you're running multiple instances of scsynth, scsynth tries to connect as 'SuperCollider-PID' where PID is the process id of the scsynth process. if that fails, scsynth bails out.

NOTE: recent versions of jack (as of 0.95.6) automatically start an instance of jackd or jackstart if none is running yet, so you don't have to start jack by hand anymore. the configuration file is $HOME/.jackdrc, e.g.:

/usr/local/bin/jackstart -R -d alsa -d hw:0 -r 44100


Environment Variables


SC_JACK_NAME

use a jack identifier other than 'SuperCollider':

export SC_JACK_NAME="My Personal Synth"


SC_JACK_DEFAULT_INPUTS
SC_JACK_DEFAULT_OUTPUTS

a comma separated list of jack port names that scsynth should connect to on startup.

NOTE: these are likely to vanish, because there are more intelligent ways of connecting jack ports on application startup, like jack.plumbing or qjackctl.

export SC_JACK_DEFAULT_INPUTS="alsa_pcm:capture_1,alsa_pcm:capture_2"
export SC_JACK_DEFAULT_OUTPUTS="alsa_pcm:playback_1,alsa_pcm:playback_2"


SC_SYNTHDEF_PATH

a colon separated list of directories that contain synthdefs scsynth should load on startup.

export SC_SYNTHDEF_PATH="$HOME/SuperCollider/synthdefs:/usr/local/share/synthdefs"


SC_PLUGIN_PATH

a colon separated list of directories scsynth should search for additional ugen plugins.

export SC_PLUGIN_PATH="$HOME/lib/SuperCollider/plugins:/opt/SuperCollider/plugins"


ETC


some helper scripts to make starting a standalone scsynth more convenient. NOTE: these scripts are unnecessary when starting the server from sclang!

this is a minimal shell script to start scynth. copy it to a file (sc3start.sh) and make this file executable (chmod 755 sc3start.sh)

#/bin/sh

cd YOUR-SUPERCOLLIDER-DIR/SuperCollider3/build/

export SC_JACK_DEFAULT_INPUTS="alsa_pcm:capture_1,alsa_pcm:capture_2"
export SC_JACK_DEFAULT_OUTPUTS="alsa_pcm:playback_1,alsa_pcm:playback_2"

scsynth -u 57110 $@


(alternatively you can just change to the SuperCollder3/build directory, start scsynth with "scsynth -u 57110" and connect the jack outputs and inputs manually).

here is a alternative shell script to start the synth with all necessary environment variables and options.
edit to suit your taste and your environment:

#/bin/sh

cd $HOME/cvs/SuperCollider3/build/

SCSYNTH=/usr/local/bin/scsynth
PORT=57110

export SC_JACK_INPUTS=2
export SC_JACK_OUTPUTS=2
export SC_JACK_DEFAULT_INPUTS="alsa_pcm:capture_1,alsa_pcm:capture_2"
export SC_JACK_DEFAULT_OUTPUTS="alsa_pcm:playback_1,alsa_pcm:playback_2"
# export SC_SYNTHDEF_PATH="./synthdefs:/home/steve/lib/SuperCollider/synthdefs"

# like this it's not necessary to run this script as root
# and it shows you how the server is actually started
SCCMD="$SCSYNTH -i ${SC_JACK_INPUTS} -o ${SC_JACK_OUTPUTS} -u $PORT $@"
echo $SCCMD

nice -n -10 $SCCMD || $SCCMD


andi at mego.at
guaka at 303.nu
smoerk

Links to this Page