Chapter 3. Building required audio software

Table of Contents
3.1. Jack Audio Connection Kit
3.2. Qjackctl
3.3. LADSPA
3.4. DSSI
3.5. Hydrogen
3.6. QSynth
3.7. SpiralSynthModular
3.8. ZynAddSubFX
3.9. Rosegarden
3.10. LMMS - Linux Multimedia Studio
3.11. Ardour
3.12. JAMin
3.13. Jack Timemachine
3.14. Rezound
3.15. Lame

For convenience[1] I build most of the audio software I am used to work with. You can use any version of gcc >= 3.4[2]. But at this time you will have troubles while compiling the DSSI Hexter plugin with a version >= 4. I mainly use the software described in this chapter, but many others exist. See Appendix A to find useful links.

Note

Please pay attention to applications' dependencies. First check README or INSTALL files which are commonly found in tarballs archives. Then carefully check the ouput of the configuration process.

3.1. Jack Audio Connection Kit

JACK is a low-latency audio server, written for POSIX conformant operating systems such as GNU/Linux and Apple's OS X. It can connect a number of different applications to an audio device, as well as allowing them to share audio between themselves. Its clients can run in their own processes (ie. as normal applications), or can they can run within the JACK server (ie. as a plugin).

I recommand you to always use the SVN version of Jack. Checkout the SVN module as explained here.

Go to the main Jack directory and do:


$ ./autogen.sh --prefix=/usr --enable-mmx --enable-sse --enable-dynsimd --enable-optimize --enable-resize --enable-timestamps --enable-posix-shm --with-gnu-ld
$ make
$ su -c "make install"
      

The configuring process should detect automatically a lot of things. The output of this step on my machine is:


jack-audio-connection-kit 0.109.0 :

| Build with ALSA support............................... : true
| Build with old FireWire (FreeBob) support............. : false
| Build with new FireWire (FFADO) support............... : false
| Build with OSS support................................ : true
| Build with CoreAudio support.......................... : false
| Build with PortAudio support.......................... : false
| Compiler optimization flags........................... : -DREENTRANT -O3 -fomit-frame-pointer -ffast-math -funroll-loops -march=k8 -mmmx -msse -mfpmath=sse
| Compiler full flags................................... : -I$(top_srcdir)/config -I$(top_srcdir) -I$(top_srcdir) -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall -g -DREENTRANT -O3 -fomit-frame-pointer -ffast-math -funroll-loops -march=k8 -mmmx -msse -mfpmath=sse
| Install dir for libjack + backends.................... : ${exec_prefix}/lib64/jack
|
| Default driver backend................................ : "alsa"
| Shared memory interface............................... : "POSIX"
| Install prefix........................................ : /usr
      

Notes

[1]

Most of the time, GNU/Linux distros are not up-to-date, and audio software teams are often very active. Building those software by yourself enables you firstly to have a better understanding of their use and their interactions and secondly to experiment most advanced features and to fix bugs quickly.

[2]

To use another compiler than your system default, just update the following symbolic links: /usr/bin/gcc and /usr/bin/g++ to point on, respectively (to use gcc 4.x): /usr/bin/gcc-4.x and /usr/bin/g++-4.x.