Re: 32-bits, CLAM, and TAPESTREA
During the construction of my 64-bit box I collected enough spare parts to build another machine, one destined for a 32-bit Linux system. Last week I finally got that machine built and running with a sparkling new version of the Jacklab Audio Distribution (JAD). I've been using JAD in its alpha releases, but the new box is running the first beta version.
Various improvements have been made in JAD since my earlier review, including the adoption of a 2.6.19 kernel optimized for superb realtime performance. Since I've profiled the system in an earlier blog entry I decided to briefly review some of the more unusual software included with the distribution or built with the help of its development packages. JAD contains more than 70 applications for audio and video composition and production, most of which are at their most recent release versions, so come join me in a look at some less typical sound & music software running on one of the best of the new breed of multimedia-optimized Linux distributions.
My latest 32-bit Linux music machine was assembled from these parts:
- AMD64 3800+ CPU and Zalman fan
- 1 GB dual-channel RAM
- nVidia 7300 graphics card (with proprietary driver)
- Maxtor 200 GB SATA hard disk
- SBLive Value sound card with external MIDI adadpter
Those parts now occupy a nice Antec case I bought direct from the manufacturer's B-stock for US $25.00, a great deal. This case is not as quiet as the Antec Sonata II I bought for my 64Studio machine, but it's certainly no noisy box. The machine was assembled by the excellent technicians at New Adventure Electronics here in sweltering Findlay OH USA. Their work was flawless, and the only further improvement I could wish for is a fanless video board.
Some years ago I visited the audio/video development laboratory at Universidat Pompeu Fabra (UPF) in Barcelona. While there I met a talented and productive crew of programming wizards working on a variety of interesting projects, including an impressive saxophone synthesizer and a unique voice-to-MIDI converter. I never found time to write a full description of the activities at UPF, and alas, I don't have that kind of time now. However, it suffices to say that the crew has moved forward with its various efforts, resulting in the award-winning CLAM, a.k.a. the C++ Library For Audio and Music.
Space forbids a full review of the CLAM software suite, and I'm only now proceeding into its depths. But since JAD includes the entire set of CLAM apps I decided to take a close look at one of them, the CLAM Annotator.
The Annotator graphically represents the results from a variety of data extraction/analysis routines. Other applications, such as Ceres and Sonic Visualizer do something similar, but the Annotator includes some truly unique features.
The program first analyzes an input file and then displays it according to the schema (i.e. the parameters) of the extraction process. In Figure X we see the output from the ChordExtractor after analyzing an audio file of a piece by Hildegard of Bingen. Alas, the screenshot doesn't do justice to this example: When the file is played (after analysis) the Tonnetz and Keyspace displays react in realtime to show the harmonic content during playback. The effect is very cool, but it's also far more than pleasant eye-candy. The analysis algorithms are excellent, and I was able to determine certain chord identities that had eluded me in some songs, thanks to Annotator's displays.
Other interesting CLAM software includes the SMSTools (spectral modelling synthesis toolkit with GUI), the Voice2MIDI program, and the amazing Network Editor, an iconic patching system designed for creating your own audio processoring networks. The system is rich in features, too rich to fully explore here, but fortunately the designers have included in-depth documentation and numerous helpful examples to assist newcomers. For more colorful screenshots and information regarding the project see the CLAM Home and the CLAM Wiki.
Developer Ge Wang assures us that TAPESTREA is a new way to design sound, a claim often heard by anyone with a few years in the field of audio processing and synthesis. However, after using the program for only a little while I must agree with Ge, and I'll add that I've never seen anything quite like it.
TAPESTREA's name is an acrostic for "Techniques And Paradigms for Expressive Synthesis, Transformation, and Rendering of Environmental Audio". The keywords of synthesis, transformation, and rendering are common enough, but "environmental audio" may need a little more definition. I can't improve upon this description given on the TAPESTREA home page :
TAPESTREA... is a unified framework for interactively analyzing, transforming and synthesizing complex sounds. Given one or more recordings it provides well-defined means to:
- Identify points of interest in the sound and extract them into reusable templates
- Transform sound components independently of the background and/or other events
- Continually resynthesize the background texture in a perceptually convincing manner
- Controllably place event templates over backgrounds, using a novel graphical user interface and/or scripts written in the ChucK audio programming language
- Leverage similarity-based retrieval to locate other interesting sound components
TAPESTREA provides a new way to completely transform a sound scene, dynamically generate soundscapes of unlimited length, and compose and design sound by combining elements from different recordings. Tailored for sound designers, audio researchers, composers, and anyone interested in experimenting with sound.
At first glance TAPESTREA may seem to be a kind of super mixer, but its design includes analysis/resysnthesis routines and other tools not normally found in conventional mixing software. Figures 2 and 3 show off the displays for signal analysis and timeline construction, with the analysis results utilized as elements placed along the timeline. TAPESTREA is serious about that timeline too, supporting units ranging from milliseconds to weeks, making it an ideal tool for planning sound events for installations and other large-scale works.
TAPESTREA's GUI includes screens for similarity searches and control over gain and reverberation, but again I must limit myself to this brief introduction. Incidentally, TAPESTREA is not included with JAD, so I compiled it myself, adding the necessary build tools with the excellent smart package manager. The program requires the ChucK language for audio synthesis and processing. ChucK is included with JAD, but the TAPESTREA source code package includes the current ChucK sources, just in case.
If TAPESTREA seems strange at first, have no fear, ample documentation is available from the TAPESTREA Web site, along with example project files, audio output examples, and a helpful video introduction to the program. Very cool software from the ever-advancing CS department at Princeton.
Linux Music Makers
Two pieces this week. First up, Bumingbai, a lovely song from a person or persons known only as cubicbottle. I believe the lyrics are in Mandarin Chinese, perhaps a fluent reader can supply a translation ? The composer/performer notes further only that the song was recorded with Ardour and edited in ReZound.
Next selection, Grassy Knoll, another groove from funkmeister Ken Restivo. Ken really works synths and organ emulators such as AMS and the AZR3 plugin for the emerging LV2 specification, be sure to check out his other recordings listed on the LAM site.
Special thanks go out to my friends and advisors on the #jacklab IRC channel on freenode, especially Appleonkel, metasymbol, edogawa, danboid, and kunitoki. They've been giving me the quick course in the mastery of openSuSE 10.2, bless 'em all for their efforts and patience.
Next up, a look at the newest Csound and some of its latest interesting tools. Until then, stay justly intoned.
Similis sum folio de quo ludunt venti.
- Linux Journal December 2016
- Stepping into Science
- CORSAIR's Carbide Air 740
- A Better Raspberry Pi Streaming Solution
- Tyson Foods Honored as SUSE Customer of the Year
- Tech Tip: Really Simple HTTP Server with Python
- Radio Free Linux
- Returning Values from Bash Functions
- The Tiny Internet Project, Part II
- Message for You, Sir!