State of the Art: Linux Audio 2008, Part II
Traditional software sound synthesis (SWSS) languages have flourished in Linux, and the platform continues to attract developers of such systems.
Csound enjoys the attentions of a wide community of users and a core development group of very talented programmers. The latest release, Csound 5.08, is a true powerhouse, with an amazing number of synthesis and processing opcodes, integrated GUI widgets, more complete JACK support and many other compelling features. The development of the Csound API has provided a mighty engine for programmers who want to leverage Csound's capabilities into their own software without having to rewrite its routines. Jean-Pierre Lemoine's AVSynthesis, Steven Yi's blue and Rory Walsh's Cabbage Project all depend on the Csound API for their audio processing functions.
Paul Lansky's venerable Cmix enjoyed continued development in the form of Dave Topper's superb RTCmix, but it seems that development has stalled since 2006. RTCmix definitely is worth getting into, and I hope that its development track will pick up again in the near future.
Bill Schottstaedt's Common Lisp Music (CLM) is another SWSS system derived ultimately from Max Mathew's legendary Music V. In fact, Bill recently incorporated Music V into CLM, but that's a trivial task for such a formidable developer. CLM has been in constant evolution for probably as long as Csound, and it enjoys the special attention of its own talented development crew. New releases are frequent and significant, typically adding new synthesis and processing functions along with such amenities as an amazing collection of bird-call synthesis routines and the aforementioned Music V. I also must mention Bill Schottstaedt's Common Music Notation (a Lisp-based music notation language) and his great Snd soundfile editor. All of his software is high quality and consistently maintained, and we are fortunate to have him and his work in the Linux audio camp.
Notable recent SWSS systems include ChucK, SuperCollider3 and the awesome Pure Data (Pd). Their modern characteristics include a more contemporary syntax and support for modern programming techniques, and in some cases, the language includes an integral (but not mandatory) GUI. ChucK and SuperCollider3 do not include integrated graphics primitives, but GUIs have been created for the language or for certain aspects of the language (for example, TAPESTREA, a fascinating tool for composition that requires ChucK's signal analysis and synthesis capabilities).
Pure Data deserves some further remarks. The systems I've mentioned here enjoy wide community support from users and developers, but Pd comes close to being a religion. It is mightily persuasive, with a variety of functions and routines that rival Csound, including a fantastic interface for working with OpenGL via the GEM library. Thanks to its vast resources (and excellent documentation), Pd can be pressed into virtually any audio, MIDI or video service.
In Ye Olden Times, the software found under this rubric would have included only language-based tools, but the scene has changed profoundly. The GUI is now the sound analyst's favored tool, and we can enjoy some wonderful software as a result of this focus on the user interface.
The award-winning CLAM Project continues along its innovative path, thanks to Pau Arumi and the development team at UPF in Barcelona. CLAM is the “C/C++ Library for Audio and Music”, designed for rapid development of sound and music applications. The system includes unique tools and utilities for audio analysis, synthesis and signal processing, complete with graphic controls and displays.
GRAME's FAUST is both a language for real-time audio signal processing and a development environment for DSP programmers writing plugins or complete applications. FAUST is indeed fascinating software, with a strong development team and an excellent collection of tools and utilities. I plan to review FAUST in a future article for the Linux Journal Web site.
Chris Cannam's Sonic Visualiser (Figure 5) is a program for “viewing and analyzing the contents of music audio files”, but that description reveals little about the program itself. The project intends to provide the best audio visualisation software for viewing waveform and spectrographic data representations in forms that can be utilized and comprehended by anyone, not only audio processing professionals. However, Sonic Visualiser is no mere eye-candy maker; it is, indeed, a serious tool for studying music and sound.
Albert Graef's Pure (formerly Q) is not a DSP environment per se, but it is obvious from its examples that audio and MIDI applications are certainly among its major focus points. Additionally, Pure/Q includes some very cool methods for interfacing with the FAUST and Pd audio synthesis and processing environments.
Similis sum folio de quo ludunt venti.
Practical books for the most technical people on the planet. Newly available books include:
- Agile Product Development by Ted Schmidt
- Improve Business Processes with an Enterprise Job Scheduler by Mike Diehl
- Finding Your Way: Mapping Your Network to Improve Manageability by Bill Childers
- DIY Commerce Site by Reven Lerner
Plus many more.