Linux Audio Update: The Fall Fashions
This week's entry looks at a unique new audio editor, some important updates, and a very cool programming environment for graphics (and much more). As always, some tasty treats are cooking in the Linux audio kitchen.
By default most soundfile editors display audio in the amplitude domain. For example, when you open a WAV or MP3 in Audacity you see a display of the sound's waveform, a representation of the sound as a series of amplitude values plotted over time (Figure 1). For most of your work you'll apply edits and effects processing to all or parts of the sound in that display. However, there is another type of audio representation in which the sound's frequencies are plotted over time in what is known as a spectral display (Figure 2). Most soundfile editors provide such a display, but few offer direct editing of its contents. Spectral editors are a rare but useful kind of audio editor, and Linux users are fortunate to have Kjetil Matheussen's version of the great Ceres, a spectral editor originally designed by Professor Oyvind Hammer for use in his work at NoTAM.
Ceres was first designed for SGI machines, with dependencies that included the Motif graphics library, libaudiofile, and other components favored by SGI hardware and software. Fortunately the program has proven amenable to porting. As a matter of fact, Ceres was one of the first programs I tried to port back in the late 1990s. Since then various other (i.e. real) programmers have expanded its feature set and improved its overall usability.
Alas, the program's dependencies have aged considerably. Modern distributions have moved on to modern GUI and audio toolkits, to the point where it has become increasingly difficult to compile Ceres. For example, it wants the Gtk1 development packages, but those packages have been deprecated in my Ubuntu 10.04 software repositories. Fortunately Kjetil is an obliging maintainer, so he simply gathered together the needed component sources and prepared a make process that compiles "internal" versions of every dependency before going on to build the program. Thanks to his efforts Ceres 0.56 can be neatly compiled and installed on systems such as Ubuntu 10.04 and other modern Linux distributions.
While reading through a recent digest of the LilyPond mail list I stumbled upon a reference to an audio editor named Myna (Figure 3). Feature-wise Myna is similar to most other soundfile editors, with a significant exception: Myna is a Web-based application. That's right, it's a network-based audio editor available for use by anyone with a compliant browser and Adobe's Flash player.
I gave it a quick trial run, with mixed results. Myna's UI is uncomplicated and easily navigated, and I could run the application without trouble as long as I used the Quantum library of sound clips. Alas, Myna crashed Firefox when I tried to import my own samples. However, the Quantum clips sound good and are great fun to string together for fast and easy song composition. Myna includes a small set of digital effects, each with its own set of parameter controls applicable in realtime (Figure 4). Realtime performance wasn't exactly snappy, but it wasn't exactly sluggish either. Given Myna's intended usage its performance was acceptable on my aging AMD64 3800+ CPU.
It seems that Aviary.com is on a mission "to make creation accessible to artists of all genres, from graphic design to audio editing". I'm not sure yet what that entails, but it doesn't appear to include free/libre and open-source software. Still, as far as I can tell there are no hidden costs, and the software is well-designed for its purposes, i.e. "to remix music tracks and audio clips. Apply sound effects and record your own voice or instruments!". I'm curious to know what my readers think about Myna, so please leave a civil note in the Comments below if you'd like to share your experience and opinions.
Ecasound And Nama
The October issue of the Linux Journal is dedicated to the Linux command-line interface and its powerful tools. It's another great issue, highly recommended, but somehow it forgot to mention the awesome ecasound, a complete DAW that runs from a normal terminal prompt. Ecasound is no mere toy, it's a powerful audio tool with serious capabilities.
In August 2010 version 2.7.2 of ecasound was released to the public. Here's a partial list of its outstanding features :
- Multitrack/multichanel hard-disk recording and mixing
- Effects/dynamics processing
- Realtime signal routing
- Audio file playback and format conversion
- Automating audio processing tasks
Along with this goodness you get LADSPA plugin support, full compliance with JACK, an OSC interface, easy scripting, and very fast performance. Visit the Ecasound Features page for the full view of the program's impressive capabilities.
Ecasound's user-level documentation includes a tutorial series, a very useful set of example commands, and a User's Guide to the concepts and design of the program. Developers may be more interested in the Ecasound Programmer's Guide and the Control Interface Guide. An active mail-list rounds out the primary sources of information about ecasound.
Kai Vehmanen, the program's chief designer, has consistently maintained ecasound for the past twelve years. Given this track record there's a fair chance I'll still be using the program for the next twelve years. It's fast, efficient, powerful, and completely free open-source software. What more could I want ? Well, every now and then maybe I'd like a GUI for ecasound. Thanks to Joel Roth I have one.
Nama is Joel's contribution to the ecasound ecology (ecalogy ?!). Its web page refers to Nama as "Easy multitrack recording with ecasound", so I feel somewhat justified calling it a front-end for ecasound. The program includes its own command-line interface, and the total package includes a serviceable GUI based on the Perl/Tk module (Figure 5). Unlike its command-line counterpart the Nama GUI doesn't encapsulate all of ecasound's features, but if you want a handy graphic interface for ecasound's basic recording capabilities, Nama's your ticket.
I've been looking into Processing (Figure 6), a marvelous computer programming language "for people who want to create images, animations, and interactions", as its Web page describes it. Processing has some unique characteristics that make it a must-see for anyone interested in computer graphics and the new multimedia arts. The language basics are easy to learn, yet it is capable of very sophisticated designs and displays. Its documentation includes one of the best-written tutorials I've read for just about anything, it enjoys the attentions of a large community of users and developers, and its extensibility includes capabilities of interest to musicians and other sound-artists.
Csounder Jacob Joaquin (see below) has developed his csoundo as a means for connecting the awesome audio powers of Csound with the graphics mojo of Processing. Other extensions are available to add audio capabilities to Processing, but I must admit that the potential of Jake's library finally pushed me into learning more about the language and its possibilities. I'm just getting started with my explorations - I'm in Chapter 9 of the superb Getting Started With Processing tutorial - and I'm already hooked. I'm also waiting for Jake to modify csoundo for Csound built with doubles numerics, a task he'll soon complete. I'll post more about Processing and csoundo in a later article, but you can check out the Processing Web site now to learn more about what this amazing system can do.
Linux audio user Jeremy Jongepiere is a regular contributor to the forums at Linux Musicians where he's better known by the handle of AutoStatic. Recently he announced his intention to provide a monthly editorial/summary of activity in the ever-advancing world of Linux audio development. His Monthly Round-up #1 is on-line now, and hopefully it will have been joined by subsequent editions by the time this article reaches the bitstream.
Jacob Joaquin is an unabashed lover of Csound. He's also creative, talented, and industrious, as you can discover for yourself in his Csound Blog. The site is subtitled "Old School Computer Music" but don't let the rubric fool you. His latest entries include hands-on demonstrations of his work with the Arduino board, a quick overview of the latest release of Andres Cabrera's QuteCsound, and examples of his recent work with Processing. Check it out, the Csound Blog is an engaging read, and fellow Csounders should consider it a necessary one.
Graham Percival's LilyPond Report #20 is now on-line. The latest edition covers news of a unique on-line music notation editor, a brief report on the latest LilyPond release, an update on recent development activity, and a neat "snippets" trick. The Report is always an enjoyable read, and if you're a LilyPond user you definitely want to keep up with it.
I continue to explore the possibilities of Linux video tools. I've set up a YouTube channel at newnairobi1 where I've posted clips from performances by my students and experimental videos created with AVSynthesis. Yes, Flash is required (or a suitable equivalent ?), sorry about that, but I'm working on making everything downloadable as MP4 files. If you visit the site feel free to leave a comment or two.
Similis sum folio de quo ludunt venti.
|September 2015 Issue of Linux Journal: HOW-TOs||Sep 01, 2015|
|September 2015 Video Preview||Sep 01, 2015|
|Using tshark to Watch and Inspect Network Traffic||Aug 31, 2015|
|Where's That Pesky Hidden Word?||Aug 28, 2015|
|A Project to Guarantee Better Security for Open-Source Projects||Aug 27, 2015|
|Concerning Containers' Connections: on Docker Networking||Aug 26, 2015|
- Optimization in GCC
- Using tshark to Watch and Inspect Network Traffic
- September 2015 Issue of Linux Journal: HOW-TOs
- Problems with Ubuntu's Software Center and How Canonical Plans to Fix Them
- Concerning Containers' Connections: on Docker Networking
- A Project to Guarantee Better Security for Open-Source Projects
- Firefox Security Exploit Targets Linux Users and Web Developers
- Where's That Pesky Hidden Word?
- My Network Go-Bag
- Doing Astronomy with Python