Ingen is a realtime modular synthesizer and/or effects processor for Jack/Alsa/LADSPA/DSSI/LV2/etc (ie GNU/Linux audio systems). More information may be found at http://drobilla.net/software/ingen To build, first check "./configure --help" for options, you can build this code in many different ways (standalone engine with seperate clients, build engine server only, build clients only, build monolithic clients, etc. etc). Then do the typical "./configure; make; make install" routine. *** Optimization *** Ingen's configure script, by default, does not clobber your CFLAGS or CXXFLAGS environment variables (which is the proper behaviour), though it does add a few flags that should be turned on in any case (as described in this file). If you want to submit usable bug reports (for segfaults and the like), build with --enable-debug. This will also enable assertions, which also makes bug hunting easier (see below). SIMD (SSE/Altivec): If you have GCC4, it is hightly recommended that you enable your SIMD instruction set, especially if you have a Pentium 4 (ie "-march=pentium4 -mfpmath=sse"). The performance gain is good for any chip with a SIMD instruction set (Altivec, SSE, and friends), but in the case of a P4 the denormal avoidance is crucial for audio software. Note that -march=athlon64 implies -msse, -msse2, -mfpmath=sse, etc. *** Debugging *** Ingen makes very heavy use of assertions to catch bugs. Assertions have a (minor) performance hit unless the preprocessor symbol NDEBUG is defined. By default the configure script will add this to the end of your flags, but it's worth noting. Assertions have a minor overhead everywhere, but will likely make bug reports much more useful. Debug symbols add quite a bit of bloat to all the code, and is not useful unless you plan on debugging the code yourself. A good compromise between performance and bug reporting ability (eg for using the code from SVN) is --enable-assertions without --enable-debug-symbols. *** Bugs *** If Ingen crashes, PLEASE REPORT THE BUG. People too often assume "someone" "must" know about the bug and it will magically get fixed without telling anyone about it. It probably doesn't happen for me, and if I don't know about it, I'm probably not going to fix it :) Have Fun.