Change PG_03 discussion of rests to use Rest()
[supercollider.git] / README_LINUX.txt
blobdf5b90b30d0958867b8551cc063e281d06c1094c
1 -*-text-*---------------------------------------------------------------
2 supercollider 3 for linux
3 ------------------------------------------------------------------------
5 ------------------------------------------------------------------------
6 intro
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 ------------------------------------------------------------------------
22 build requirements
23 (most of these will be available in your linux distribution as packages )
24 ------------------------------------------------------------------------
26  * gcc >= 3.0
27    http://www.gnu.org/software/gcc/
28    gcc versions < 3.0 are missing some required c++ features
30  * jack and libjack
31    http://jackit.sourceforge.net/
32    jack audio connection kit
34  * libsndfile >= 1.0
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
41    source
43  * cmake >= 2.8
44    http://www.cmake.org/
45    cross-platform build system
47  * fftw >= 3.0
48    http://www.fftw.org/
49    fast FFT transform library (for frequency-domain analysis,
50                                         phase-vocoder effects)
52  * libxt
53    http://www.X.org/
54    X toolkit intrinsics
56  * libicu
57    http://www.icu-project.org/
58    unicode libraries
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)
66    http://qt.nokia.com/
67    cross-platform graphical user interface library, for sclang's GUI
68    classes
70  * alsa
71    http://www.alsa-project.org/
72    advanced linux sound architecture drivers and library, for sclang's
73    MIDI interface
75  * libreadline >= 5
76    http://savannah.gnu.org/projects/readline
77    provides convenient CLI interface for sclang
79  * libavahi-client
80    http://www.avahi.org/
81    a more powerful zeroconf service discovery implementation
83  * libcwiid
84    http://abstrakraft.org/cwiid/
85    library for wiimote support
87  * linux kernel >= 2.6
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
92    `editors/scel'
94  * for sced: the gedit interface see the README in the directory
95    `editors/sced'
97  * for scvim: the vim interface see the README in the directory
98    `editors/scvim'
101 ------------------------------------------------------------------------
102 build requirements (debian users)
103 ------------------------------------------------------------------------
105 on debian (unstable) you can install the following packages and be set
106 for building supercollider:
108    build-essential
109    libqt4-dev
110    libqtwebkit-dev
111    libjack-dev or libjack-jackd2-dev
112    libsndfile1-dev
113    libasound2-dev
114    libavahi-client-dev
115    libicu-dev
116    libreadline6-dev
117    libfftw3-dev
118    libxt-dev
119    libcwiid-dev (for wiimote support)
120    pkg-config
121    cmake
122    subversion (required by the Quarks class at run-time)
124 ------------------------------------------------------------------------
125 building
126 ------------------------------------------------------------------------
128 to build supercollider with cmake, it is suggested to do out-of-tree
129 builds in a specific build directory:
131 mkdir build
132 cd build
133 cmake ..
135 to run the build process run:
136 make
138 the build process can be configured using the cmake program, cmake
139 frontends like ccmake or cmake-gui, or by simply editing the
140 build/CMakeCache.txt file.
142 for example to enable a release build run the following in your build
143 directory:
144 cmake -DCMAKE_BUILD_TYPE=Release ..
146 to install the whole program, run:
147 make install
149 for the above step you will probably need super-user privileges,
150 e.g. using "sudo".
152 also, please run "sudo ldconfig" after installing for the first time.
154 to uninstall:
155 make uninstall
157 Qt GUI:
158 -------
160 By default the experimental Qt GUI support will be built into sclang.
161 If you want to build without it configure cmake like this:
163         cmake -DSC_QT=OFF ..
165 ------------------------------------------------------------------------
166 Building a Debian package
167 ------------------------------------------------------------------------
169 In our SVN we have debian packaging rules. These were designed on Ubuntu
170 but we believe they should work on most common debian systems - please
171 let us know if you have any issues with this way of building:
173   cd SuperCollider3    # (or wherever your SC source is)
174   svn co https://supercollider.svn.sourceforge.net/svnroot/supercollider/packages/ubuntu/ debian
175   debuild
177 Eventually, some .deb packages will be put in the parent folder, and can
178 then be installed just like any other Debian package. For example:
180   dpkg -i ../supercollider*.deb
182 (Note: the packages supercollider-scel*.deb, supercollider-scvim*.deb,
183 supercollider-sced*.deb, represent the different editor integrations:
184 emacs, vim, gedit. You might not want to install all of those, but
185 choose your preferred editor.)
188 ------------------------------------------------------------------------
189 running scsynth (standalone)
190 ------------------------------------------------------------------------
192 run scsynth without options to get an option summary. don't forget to
193 start jackd before trying to use scsynth. if you want to add
194 directories to supercollider's search path or assign default jack
195 ports, set up your environment as described below.
197 you can specify the number of jack input/output channels created with
198 the options -i and -o, respectively.
200 the -H option can be used to specify a jack server to connect to and
201 to set the jack client identifier. the format is either
203     <SERVER-NAME>:<CLIENT-NAME>
205 or just
207     <CLIENT-NAME>
209 when connecting to the default server.
211 ------------------------------------------------------------------------
212 running sclang
213 ------------------------------------------------------------------------
215 it is recommended to use sclang in combination with your preferred text
216 editor out of emacs/vim/gedit. see the README files in `linux/*' for
217 installation and usage. as an alternative you can simply run the
218 `sclang' executable which will provide a readline-based interface.
220 sclang executes the startup file `~/.config/SuperCollider/startup.scd' after class library
221 initialization. this file can contain statements to set up your
222 supercollider environment, like setting default variables. an example can
223 be found in `linux/examples/sclang.sc'.
225 you _have_ to have a directory `~/.local/share/SuperCollider/'. This is where
226 automatically a synthdefs directory is created. It is also the place
227 to put Extensions to the class library, in a folder called Extensions.
229 the runtime directory is either the current working directory or the
230 path specified with the `-d' option.
232 for advanced setups, sclang's compilation search path can be
233 customized with a library configuration file. an example is provided
234 in `linux/examples/sclang.cfg'; install it as `/etc/sclang.cfg' or
235 `~/.config/SuperCollider/sclang.cfg'. This config file is only needed when you want to
236 _exclude_ directories from the class library. Otherwise (so in most cases)
237 it is not needed.
239 ------------------------------------------------------------------------
240 environment
241 ------------------------------------------------------------------------
243 the jack audio driver interface is configured based on various
244 environment variables:
246  * SC_JACK_DEFAULT_INPUTS comma separated list of jack ports that
247    scsynth's inputs should connect to by default
249    $ export SC_JACK_DEFAULT_INPUTS="system:capture_1,system:capture_2"
251    in order to connect the first ports of one jack client, it is possible
252    to specify only the client name
254    $ export SC_JACK_DEFAULT_INPUTS="system"
256  * SC_JACK_DEFAULT_OUTPUTS comma separated list of jack ports that
257    scsynth's outputs should be connected to by default.
259    $ export SC_JACK_DEFAULT_OUTPUTS="system:playback_1,system:playback_2"
261    in order to connect the first ports of one jack client, it is possible
262    to specify only the client name
264    $ export SC_JACK_DEFAULT_OUTPUTS="system"
266 two additional environment variables substitute directories for the default
267 search path for plugins and synth definitions, respectively. directory
268 names are separated by ':' as in the unix PATH variable:
270  * SC_PLUGIN_PATH, SC_SYNTHDEF_PATH
272    $ export SC_SYNTHDEF_PATH="./synthdefs:/home/sk/SuperCollider/synthdefs"
274 ------------------------------------------------------------------------
275 documentation
276 ------------------------------------------------------------------------
278 apart from the sites listed above, some more documentation links ...
280 a wiki for supercollider, set up by julian rohrhuber, is at
282     http://swiki.hfbk-hamburg.de/MusicTechnology/6
284 linux specific information can be found at
286     http://swiki.hfbk-hamburg.de/MusicTechnology/478
288 ------------------------------------------------------------------------
289 reporting bugs
290 ------------------------------------------------------------------------
292 please report bugs either to the sc-users or sc-dev mailing lists.
294 ------------------------------------------------------------------------
295 contributors to this document
296 ------------------------------------------------------------------------
298 stefan kersten <sk AT k-hornz DOT de>
299 andi pieper
300 maurizio umberto puxeddu
301 rohan drape
302 mario lang
303 john yates
304 nescivi (marije baalman)
305 dan stowell
306 tim blechmann
308 ------------------------------------------------------------------------
309 outro
310 ------------------------------------------------------------------------
312 thanks to james mccartney, for making this great piece of audio
313 software publically and freely available.
315 ------------------------------------------------------------------------
317 ------------------------------------------------------------------------