A Good Beginning (And Some Holiday DSP)

by Dave Phillips

A t'ai-chi instructor once told me that he considered ten years practice in the art a "good beginning". By year's end I'll have maintained the pages at http://linux-sound.org for more than ten years, so I feel justified claiming that the site is off to a decent start. However, I have a somewhat suprising 10-year celebration announcement: The next edition of the Linux Sound & Music Applications pages (a.k.a. the Linux soundapps site) will be the last under my control. I'll leave it online in a final condition with all addresses checked and repaired, but my tenure as the site's sole maintainer is over.

If you're not familiar with the site I'll recite its little history. In 1996 I placed online a list of the all the Linux audio-related links I could gather on the net. At that time I scoured the Web, the USEnet newsgroups, ftp repositories, and anywhere else I thought might yield a useful program or utility. I think the first edition of the site (then at http://www.bright.net/~dlphilp/linux_soundapps.html) listed a few more than thirty applications. In the fullness of time the list has grown, and my final edition contains hundreds of valid URLs linking to the great variety of music and sound software for Linux.

In my opinion the site has served its original purpose quite well. I also feel that it's time for some important and overdue changes. While the plain static HTML of the site aspires to "archaic chic" it's just not very attractive, and it's too limited in function. Users today are accustomed to amenities such as embedded search engines, rankings & reviews, and other interactive enhancements. The site is also difficult to maintain, though I'm sure I could relieve some of the burden by employing a few handy bash or Perl scripts. Alas, due to various factors I can't do the work required for any of these additions, so I announced my decision on the Linux audio mail lists, hoping that the community will renew the site's structure and provide a more modern and more useful resource.

There appears to be a consensus among list members that the site needs to stay alive in some form. Many participants have recommended a wiki-based replacement, others have enumerated the known problems with wikis, and some have gone straight into designing prototypes. At this point in the discussion it looks as though some form of wiki will evolve from the current site. Despite its familiar drawbacks the wiki does provide the required service amenities, for users and administrators.

While performing this final round of maintenance I've noticed some applications previously overlooked, and I've been surprised by the activity in some Linux audio domains outside my immediate interests. I've also noted significant trends, some beneficial and some potentially otherwise. I'll comment on those notable trends later in this blog, but not today.

So, after ten years I think the Linux Sound & Music Applications site has made a good beginning. The time is right to retire its current condition, and I leave its next stage in the care of the users and developers in the Linux audio community. I look forward to its evolution.

Some Notable DSP

Figure 1: A surface plot in Dataplore

The DSP page has been updated at http://linux-sound.org/dsp.html. While culling its links I discovered (and rediscovered) some excellent projects. I was pleased to see that the commercial Dataplore signal analysis software is still available for Linux (RPM-only, alas), as are the more general purpose packages from the Ptolemy and Scilab projects. More audio-centric (and Linux-centric) packages are coming from the outstanding CLAM project, a recent recipient of the ACM Multimedia 2006 award for best open-source multimedia project. Other new and notable entries include Chris Cannam's Sonic Visualiser and Stefano D'Angelo's fledgling FreeADSP.

Figure 2: Voice2MIDI, a CLAM-based application

According to its home page, "CLAM (C++ Library for Audio and Music) is a full-fledged software framework for research and application development in the audio and music domain [that] offers a conceptual model as well as tools for the analysis, synthesis and processing of audio signals." The page modestly fails to mention that CLAM is also a very cool project.

I built and installed the CLAM software on my AMD64 machine, then I downloaded and built a variety of example applications. I must note here that CLAM is intended for application development, working with the Qt UI designer to provide a complete environment for developing high-quality sound and music programs. The first tutorial takes the novice quickly through CLAM basics and then develops those basics into a standalone application (via the Network Editor, itself a standalone CLAM application). The process is easily learned, and the user interface so well-conceived you'll be a DSP maestro in a jiffy. Well, not really, and of course the more you know about the subject the sooner you'll get predictable results. But anyone can use the Network Editor, and who could have guessed that designing DSP software would be so much fun ?

Figure 2 shows off Voice2MIDI, a standalone application based on the CLAM development software. The complex process of converting PCM audio into MIDI data depends on specialized audio analysis tools, just like the tools found in CLAM. Voice2MIDI analyzes a monaural soundfile and renders its pitch contour into MIDI note events, a valuable utility for composers. The program works as advertised: I loaded a spoken-word soundfile, analyzed it, then rendered and saved the analysis to a MIDI file. From this point I can edit the MIDI events in the multitudinous ways provided by modern Linux sequencers such as MusE and Rosegarden, creating accompaniments perfectly syncronized (or not) to the original audio. Very cool stuff.

Sonic Visualiser also deserves special mention. Figure 3 displays the Visualiser's inventive GUI, but the program's greatest powers come from its support for Vamp plugins. According to the Sonic Visualiser home page the Vamp system specializes in extracting descriptive information from audio data, and it is the primary analysis plugin format used by Sonic Visualiser.

The program truly emphasizes visualization, with data view formats such as various spectrograms, amplitude waveform, piano roll (for MIDI plot), chronogram, pitch envelope, and power curve. The user scrolls through the views with the Navigate cursor (the pointing hand) and uses the Select tool (the arrow) to make selections within the view. Edits are limited to cut/copy/paste, but the program isn't intended for audio processing. It is primarily a tool for audio analysis and visualization, and an excellent tool at that. Highly recommended for serious research and viewing enjoyment.

Figure 3: Sonic Visualiser running an Aubio plugin

The DSP software list includes some peculiar subdivisions. If you're looking for binaural beat generators (a.k.a. brain-wave modification) you'll want to check out AutoZen, Gnaural, and SBaGen. Image to sound conversion is available via Paul Nasca's HyperMammut, and if you want to know how Kraftwerk got that robotic vocal quality check out Achim Settelmeier's cool Vocoder.

Figure 4: Gnaural

I can't leave the DSP links without mentioning two favorite applications listed in the FFT/Phase Vocoder section. Jesse Chappell's FreqTweak is a realtime FFT-based audio processor with an engaging GUI and the capability of consuming hours of my time. I like to run my guitar into it, perhaps in a chain with the ecamegapedal effects processor or the Tapiir multitap delay, and sometimes I like to use it to apply unique filtering effects to an audio stream. As Jesse notes, FreqTweak is an addictive audio toy that invites experimentation and play, but it is also designed for serious audio work. No matter how you use it, FreqTweak is excellent Linux audio software. An update might be nice (hint), but otherwise the program is just about perfect.

Figure 5: FreqTweak

Professor Øyvind Hammer's Ceres is another favorite, a non-realtime tool for performing a variety of rather bizarre spectral transformations on a soundfile. For example, the screenshot in Figure 6 displays the results of treating a soundfile with such exotic processes as shear, blur, warp, null phase, average peak, and exponentiation. And yes, it sounds as weird as it looks. Ceres was written originally for SGI hardware, but it has a long history with Linux. The first Linux port appeared in the late 1990s, and various developers have worked on it more or less continuously since then. Most recently Kjetil Mattheussen has donned the maintainer's mantle, expanding Ceres with Python support and numerous GUI enhancements.

Figure 6: Ceres


I hope you've enjoyed this random blend of news and reviews. My next entry will profile the Aldrin music composition software and will include an interview with its author, Leonard 'paniq' Ritter. Until then, stay tuned, keep swinging, and I hope you all enjoy a fine and mellow holiday season.