1 -*-text-*---------------------------------------------------------------
2 supercollider 3 for linux
3 ------------------------------------------------------------------------
5 ------------------------------------------------------------------------
7 ------------------------------------------------------------------------
9 SuperCollider is a synthesis engine (scsynth) and programming language
10 (sclang), originally Mac-based but now very widely used on Linux
11 (since Stefan Kersten ported the code in 2003). SuperCollider is free
12 software under the GPL - its main homepage is at
14 http://supercollider.sourceforge.net
16 to get further information on supercollider usage or development, you
17 might consider subscribing to the mailing lists
19 http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
21 ------------------------------------------------------------------------
23 (most of these will be available in your linux distribution as packages )
24 ------------------------------------------------------------------------
27 http://www.gnu.org/software/gcc/
28 gcc versions < 3.0 are missing some required c++ features
31 http://jackit.sourceforge.net/
32 jack audio connection kit
35 http://www.mega-nerd.com/libsndfile/
36 _the_ soundfile i/o library
38 * pkg-config >= 0.14.0
39 http://www.freedesktop.org/software/pkgconfig/
40 facilitates checking for installed packages when compiling from
45 cross-platform build system
49 fast FFT transform library (for frequency-domain analysis,
50 phase-vocoder effects)
57 http://www.icu-project.org/
60 ------------------------------------------------------------------------
61 build requirements (optional features)
62 (most of these will be available in your linux distribution as packages )
63 ------------------------------------------------------------------------
65 * qt >= 4.5 (+ qtwebkit)
67 cross-platform graphical user interface library, for sclang's GUI
71 http://www.alsa-project.org/
72 advanced linux sound architecture drivers and library, for sclang's
76 http://savannah.gnu.org/projects/readline
77 provides convenient CLI interface for sclang
80 http://www.porchdogsoft.com/products/howl/
81 zeroconf service dicovery implementation
85 a more powerful zeroconf service discovery implementation
88 http://www.kernel.org/
89 for sclang's linux input device (LID) interface
91 * for scel: the Emacs interface see the README in the directory
94 * for sced: the gedit interface see the README in the directory
97 * for scvim: the vim interface see the README in the directory
101 ------------------------------------------------------------------------
102 build requirements (debian users)
103 ------------------------------------------------------------------------
105 on debian (unstable) you can install the following packages and be set
106 for building supercollider:
123 ------------------------------------------------------------------------
125 ------------------------------------------------------------------------
127 to build supercollider with cmake, it is suggested to do out-of-tree
128 builds in a specific build directory:
134 to run the build process run:
137 the build process can be configured using the cmake program, cmake
138 frontends like ccmake or cmake-gui, or by simply editing the
139 build/CMakeCache.txt file.
141 for example to enable a release build run the following in your build
143 cmake -DCMAKE_BUILD_TYPE=Release ..
145 to install the whole program, run:
154 By default the experimental Qt GUI support will be built into sclang.
155 If you want to build without it configure cmake like this:
159 ------------------------------------------------------------------------
160 Building a Debian package
161 ------------------------------------------------------------------------
163 In our SVN we have debian packaging rules. These were designed on Ubuntu
164 but we believe they should work on most common debian systems - please
165 let us know if you have any issues with this way of building:
167 cd SuperCollider3 # (or wherever your SC source is)
168 svn co https://supercollider.svn.sourceforge.net/svnroot/supercollider/packages/ubuntu/ debian
171 Eventually, some .deb packages will be put in the parent folder, and can
172 then be installed just like any other Debian package. For example:
174 dpkg -i ../supercollider*.deb
176 (Note: the packages supercollider-scel*.deb, supercollider-scvim*.deb,
177 supercollider-sced*.deb, represent the different editor integrations:
178 emacs, vim, gedit. You might not want to install all of those, but
179 choose your preferred editor.)
182 ------------------------------------------------------------------------
183 running scsynth (standalone)
184 ------------------------------------------------------------------------
186 run scsynth without options to get an option summary. don't forget to
187 start jackd before trying to use scsynth. if you want to add
188 directories to supercollider's search path or assign default jack
189 ports, set up your environment as described below.
191 you can specify the number of jack input/output channels created with
192 the options -i and -o, respectively.
194 the -H option can be used to specify a jack server to connect to and
195 to set the jack client identifier. the format is either
197 <SERVER-NAME>:<CLIENT-NAME>
203 when connecting to the default server.
205 ------------------------------------------------------------------------
207 ------------------------------------------------------------------------
209 it is recommended to use sclang in combination with your preferred text
210 editor out of emacs/vim/gedit. see the README files in `linux/*' for
211 installation and usage. as an alternative you can simply run the
212 `sclang' executable which will provide a readline-based interface.
214 sclang executes the startup file `~/.config/SuperCollider/startup.scd' after class library
215 initialization. this file can contain statements to set up your
216 supercollider environment, like setting default variables. an example can
217 be found in `linux/examples/sclang.sc'.
219 you _have_ to have a directory `~/.local/share/SuperCollider/'. This is where
220 automatically a synthdefs directory is created. It is also the place
221 to put Extensions to the class library, in a folder called Extensions.
223 the runtime directory is either the current working directory or the
224 path specified with the `-d' option.
226 for advanced setups, sclang's compilation search path can be
227 customized with a library configuration file. an example is provided
228 in `linux/examples/sclang.cfg'; install it as `/etc/sclang.cfg' or
229 `~/.config/SuperCollider/sclang.cfg'. This config file is only needed when you want to
230 _exclude_ directories from the class library. Otherwise (so in most cases)
233 ------------------------------------------------------------------------
235 ------------------------------------------------------------------------
237 the jack audio driver interface is configured based on various
238 environment variables:
240 * SC_JACK_DEFAULT_INPUTS comma separated list of jack ports that
241 scsynth's inputs should connect to by default
243 $ export SC_JACK_DEFAULT_INPUTS="system:capture_1,system:capture_2"
245 in order to connect the first ports of one jack client, it is possible
246 to specify only the client name
248 $ export SC_JACK_DEFAULT_INPUTS="system"
250 * SC_JACK_DEFAULT_OUTPUTS comma separated list of jack ports that
251 scsynth's outputs should be connected to by default.
253 $ export SC_JACK_DEFAULT_OUTPUTS="system:playback_1,system:playback_2"
255 in order to connect the first ports of one jack client, it is possible
256 to specify only the client name
258 $ export SC_JACK_DEFAULT_OUTPUTS="system"
260 two additional environment variables substitute directories for the default
261 search path for plugins and synth definitions, respectively. directory
262 names are separated by ':' as in the unix PATH variable:
264 * SC_PLUGIN_PATH, SC_SYNTHDEF_PATH
266 $ export SC_SYNTHDEF_PATH="./synthdefs:/home/sk/SuperCollider/synthdefs"
268 ------------------------------------------------------------------------
270 ------------------------------------------------------------------------
272 apart from the sites listed above, some more documentation links ...
274 a wiki for supercollider, set up by julian rohrhuber, is at
276 http://swiki.hfbk-hamburg.de/MusicTechnology/6
278 linux specific information can be found at
280 http://swiki.hfbk-hamburg.de/MusicTechnology/478
282 ------------------------------------------------------------------------
284 ------------------------------------------------------------------------
286 please report bugs either to the sc-users or sc-dev mailing lists.
288 ------------------------------------------------------------------------
289 contributors to this document
290 ------------------------------------------------------------------------
292 stefan kersten <sk AT k-hornz DOT de>
294 maurizio umberto puxeddu
298 nescivi (marije baalman)
302 ------------------------------------------------------------------------
304 ------------------------------------------------------------------------
306 thanks to james mccartney, for making this great piece of audio
307 software publically and freely available.
309 ------------------------------------------------------------------------
311 ------------------------------------------------------------------------