Ardour 2.0 : A Brief Practical Introduction
The eagerly-awaited Ubuntu Studio has been released, adding another entry into the expanding list of multimedia-optimized Linux distributions. I haven't had a chance to try it yet, but interested readers can peruse some installation screenshots or check out the latest news and information on the Ubuntu Studio Wiki. I plan to review the distro in a future column, along with an update on the latest version of the venerable PlanetCCRMA, but in this entry I'm focused on another very exciting new release.
Ardour 2.0 is now available for download. This version is a significant improvement over the 0.99 series (1.0 was never released), with many new features and enhancements to performance and stability. The following article profiles the new Ardour as I employed it for three projects, all involving the program in the processes of composition and arranging as well as the more typical tasks of recording and editing. I've described each project in some detail, and each description includes a link to the final audio output.
Ardour continues its evolution into a full-featured open-source digital audio workstation. Among its more outstanding attractions we find :
- Multitrack/multichannel recording
- Non-destructive editing with unlimited undo/redo
- Full automation support
- Powerful mixing capabilities
- Unlimited tracks/busses/plugins
- Synchronization via MTC, MMC, and JACK
- Support for hardware control surfaces
- Support for VST (limited) and LADSPA audio processing plugins
Two desirable features are missing from that list: the ability to edit MIDI sequence data, and a mechanism for controlling and editing output intended for multi-speaker arrays (e.g. 5.1, 7.1, 10.2, and other arrangements). These features are perhaps the most requested additions, and both items are slated for love and attention during the upcoming summer months, thanks to financing from Google's Summer Of Code project.
Details regarding Ardour's availability, installation, and configuration can be found on the project's Web site, along with the program's manual (currently unfinished). The remainder of this article is focused on using Ardour, so if you're not familiar with the jargon and terminology of the digital audio workstation you are well-advised to examine the manual and to study some of the results of a Google search for "digital audio basics".
With those caveats out of the way we're ready to look into some projects made possible with Ardour 2.0.
Recently I've been recording some of my students during their lessons. Some are preparing for auditions, some want to make CDs for family and friends, and a few want to acquire some experience with contemporary music technology. They all have a lot of fun with applications like Audacity and Hydrogen, and of course Ardour always fascinates them. None of them have ever seen anything like Ardour.
Brothers A.J. and Cody Shank started studying guitar with me a little more than two years ago. They are talented fellows, with backgrounds that include studies on piano, saxophone, and trumpet. I used them as test subjects for a new approach to teaching guitar, they responded well to the method, and they have developed into advanced students in a relatively short time. In addition to guitar-centric studies they've also picked up some arranging skills in their lessons, and I've introduced them to the basics of computer-based digital audio production techniques.
The brothers enjoy a variety of musics, including gospel, jazz, and some pop styles. In March of this year they brought in the sheet-music for a well-known Christian hymn titled Peace Like A River. The sheet was arranged for vocal with simple piano accompaniment, but instead of arranging it for the boys I suggested that they do it themselves. I showed them the melody and the basic harmonies, then sent them home to create their own take on the song. They returned the following week with the arrangement recorded for this project. Readers should note that the original sheet-music was simple and direct, with no colorful harmonization. The melodic interpretation and extended harmonies come from the boys' own invention.
After we ironed out some difficulties in the arrangement I asked the brothers if they'd like to record it. They were enthusiastic, but due to limited time they were able to record only two takes. The first take was their first time recording anything, and it suffered predictably from too many nervous errors. The second take contained enough goodness to produce a finished rendition, given a little polish and correction. The recorded tracks contained minor errors in timing, balance, and note selection, but I knew Ardour could take what was given and yield a much-improved version.
Since the melody is repeated it was easy to replace bad notes with simple copy/paste routines. I used the same method to repair some bad chords, replacing the errors with sections copied from elsewhere in the piece. Ardour's Split Region function made it easy to define regions for copy and replacement. Rhythmic errors were also easily fixed by simply sliding the ill-timed events forward or backward as necessary. I used the Split Region tool again here to define only what needed moved. Incidentally, using that tool is as easy as pointing the mouse cursor at the desired split point and then pressing the s key on your computer keyboard. The method is fast, and it's merely one example of Ardour's many neat keyboard/mouse interactions.
The guitars were recorded direct through an Audio Buddy preamp and into an M-Audio Delta 66 audio interface. Unfortunately there were a number of moments when the players volumes were mismatched, but Ardour's gain automation saved the day there. For example, towards the end of the piece the chording was considerably louder than the melody. No problem, I raised the melody's gain levels at those points and brought the chords down to a more satisfactory level.
Further audio modification came from the CAPS Plate Reverb and the SC4 dynamics compressor LADSPA plugins. We experimented with a few other plugins, but the boys preferred minimal processing. You can hear the finished work at Peace Like A River (OGG). It's not perfect, but it is a good demonstration of Ardour's editing capabilities. The resulting performance is what I call an "assembly", i.e. it has been created from a live performance by shuffling parts around, replacing bad spots with better, until a more presentable version has been built from the original material. Considering the extent to which so much popular music is an assembled product, I think the boys did a good job of keeping it real, and we hope you enjoy the results of their first efforts. By the way, at the time they recorded the original tracks the brothers were 12 and 14 years old.
I'm a lazy player these days. I hardly ever practice, I depend on working with students and playing on gigs to keep up whatever chops I have left. Nevertheless, I occasionally get the urge to record myself playing the guitar. Now and then I do something worth more of my attention, which is how I happened to create this next project.
A friend asked me to show him a wee bit of Ardour in action, so I recorded an arpeggiated common chord progression and improvised a solo over it on looped playback. It was all quick and dirty, a basic two-track demo done in a few minutes, and my friend was satisfied that Ardour could at least be used in such a trivial manner. After he left I started "fixing the mix", redoing many of the same procedures I used when I edited the Shank Mania tracks, with some differences.
The chord progression was played and recorded well enough to leave alone. After recording the improvised solo I duplicated the chords region a few times (enough to contain the solo) and added fades to the first and last regions. I also added the CAPS Stanford Reverb LADSPA plugin to the chord and solo tracks.
The original solo was awful, but it had some form and a few nice ideas that I thought I could bring out further with Ardour's editing toolkit. I made extensive use of the region faders (a cool feature), I lengthened the ending by repeating some material, I liberally applied gain automation curves, I deleted a lot of stuff and moved a lot of other stuff around, until I had something that wasn't too terribly shabby.
At that point I was happy enough with the performance but I felt that something was still missing.
I ran the guitar tracks through the JAMin mastering suite, routing them from and back into Ardour, using JAMin as a kind of super-plugin. I don't do much with JAMin, but I like its compression and amplitude balancing, and I think most of my work's recorded sound quality is improved by it. Next, since the guitars established and exploited a certain mood/mode, I decided to add some sound effects to accompany the guitar fades. I downloaded some files from the FindSounds site and mixed them in a separate Ardour session. I exported the mix as a WAV file, re-opened my original session, and imported the effects WAV. I balanced the tracks, exported the session to WAV, and now the current version of this project can be heard at Meditation-Improv. I may change a few more notes, and I will add ID tags as soon as possible, but I won't change the piece in any drastic way. [NB: Tags added May 20.] Feel free to download the OGG file, you might like to try listening to it while sipping some fine green tea as the day begins, a method recommended by my friend Jörn Nettingsmeier. Sweet...
After the last session I accused myself of "going Windham Hill". Fortunately I've also been preparing a very different kind of music, a quartet for flute, bassoon, horn, and vibes, based on a 12-note chord in 4ths. The piece is a study in dissonant counterpoint, and although I think it's quite melodic it should also act as a corrective to the Windham Hill assessment. The instruments themselves are all included in the well-known 8mbgmsfx.sf2 General MIDI (GM) soundfont, but the music of the quartet is purely imaginary, with no attention to specific ranges or other aspects of playability. I like composing this kind of music, and I have tried to make the instruments sound credible, but experienced players and arrangers will easily note the implausibilities and outright distortions of possibility.
Until I can use Ardour to record and edit MIDI data I'll continue working with Voyetra's Sequencer Plus Gold in DOSemu. The quartet was composed with the sequencer and freely recorded (i.e. no timecode) to two tracks in Ardour. You can hear the outcome from this session in the Four4Fons OGG file.
As a further test I decided to slave an external sequencer (Sequencer Plus Gold running on my PII 366 laptop) to MTC generated by Ardour. The sequencer also controlled QSynth configured for four rendering engines, each routed to its own track in Ardour. No special consideration was needed for the sequencer, I simply set it receive MTC at 24 frames per second (non-drop). I then configured Ardour to transmit MTC (in the Options menu) and set its frame rate to 24 fps (also in the Options menu). I employed midirgui to route the sequencer's MIDI data to the separate QSynth engines. Thus, the sequencer on the laptop controlled QSynth running on the desktop machine while Ardour (on the desktop box) controlled the transport of the sequencer and recorded the output from four QSynth engines to four tracks.
The MIDI routing was somewhat elaborate. The laptop has no on-board MIDI hardware, so I used a MIDIMan 2x2 USB interface to reach the outside world. The MIDIMan's I/O was connected to a Yamaha MJC8, an 8-in/8-out MIDI Thru box. My desktop machine has a MIDI interface attached to a Creative Labs PCI128 soundcard, also connected to the MJC8. Ardour's MIDI output port was attached to the soundcard MIDI interface via the MIDI Connections panel in QJackCtl, and the MJC8 sent it to the USB interface and on to the laptop. When I pressed the space bar to start the sequencer it flashed its warning that it was waiting for the time code. When I started Ardour the sequencer locked to the MTC stream and Ardour recorded QSynth's output to four tracks cleanly and in perfect sync. Nice and neat.
Of course Ardour can also use JACK to synchronize its actions with other JACK-aware applications, including xjadeo, a viewer for using Ardour to edit soundtracks to video files. I did test the Ardour/xjadeo combination, it seemed to work perfectly, but my tests were incidental and superficial. I promise to investigate that aspect of Ardour in a later column, since I've already run out of space in this one.
What's Up With VST ?
Figure 6 illustrates the answer to another frequently asked question about Ardour. Yes, within certain limitations Ardour can load and use VST audio processing plugins. The screenshot shows off two that have no problems working with Ardour, but some plugins crashed the program or froze the entire system. Users report a wide range of experiences with Ardour as a VST host, and it is perhaps wise to consider the current implementation as a proof of concept. Your mileage will certainly vary. The developers are aware of the demand for transparent VST support; unfortunately, the license for Steinberg's VST API is incompatible with the GPL, prohibiting the free distribution of ArdourVST binaries. Comparatively few users are intrepid enough to build Ardour, but that's the only legal way to get integral VST support, which in turn makes it harder to debug (fewer eyes).
For the record, these projects were done on a machine with an AMD64 CPU, 2GB RAM, and a large fast hard disk, running the 64Studio media-optimized distribution. The ArdourVST tests were run on a box with an 800 MHz AMD Duron CPU, 768 MB RAM, and a fast disk, running the excellent JAD.
Ardour is a very popular Linux audio application. Ardour empowers a new generation of digital audio recordists. It rivals expensive and proprietary programs available only for specific hardware platforms, and it remains open-source and freely available software. Its expanding community of users and developers is lively and helpful, and many of the program's features have evolved from discussions and debates held on Ardour's mail-lists and IRC chat channels. Maintaining a project of Ardour's scope is no mean feat, and chief architect Paul Davis is justly respected as much for his team management prowess as for his coding skills. The project is an especially successful example of "distributed development with benevolent dictatorship", much like Linux itself.
By the way, if you use Ardour you should consider becoming a paying subscriber. Details can be read on the project Web site, but it basically comes down to signing up to make a small payment per month, usually via PayPal. Donations are also accepted, but the subscription model holds the most promise for a guarantee that Ardour's development will continue. Designing a full-featured digital audio workstation is a great effort. Coding one from scratch, with no existing source code for a model, is even more of an effort. Managing a disparate team of programmers requires yet more skills, and actually completing such a project seems a downright Herculean task. On top of all that, not only the software but its source code too is then freely given away. I'm sure some people wonder if the developers aren't a wee bit off the rails, but I think they know exactly what they are doing.
What's next for the program ? Well, it already runs on OSX, perhaps we'll someday see a version for Windows. Support for extended MIDI functions and surround sound is in the works, and I'm sure users will come up with even more good ideas for Ardour's development.
One of my dictionaries defines ardor (how we spell it in the USA) with words such as passion, desire, zeal, enthusiasm, intensity, and heat. Now that's how I like to feel about the things I like best in life. That's Ardour.
Similis sum folio de quo ludunt venti.
Special Reports: DevOps
- The Ubuntu Conspiracy
- Science on Android
- A First Look at IBM's New Linux Servers
- Vigilante Malware
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- Vagrant Simplified
- Bluetooth Hacks
- System Status as SMS Text Messages
- Libreboot on an X60, Part I: the Setup
- October 2015 Issue of Linux Journal: Raspberry Pi