The purpose of this page is to indicate what Linux sound and music tools I personally use on a regular basis. My selections are not meant to be considered as definitive: my system resources and capabilities certainly vary from yours, and my intent here is simply to demonstrate how Linux audio and music software is used by a normal user. I've selected only those applications I use frequently enough to warrant inclusion, i.e., many other apps are as important and/or evolved, but I use them far less frequently. Think of this page as a proof that Linux sound and music software is certainly mature enough to use for a power-user's desktop studio.
The selected applications all share the following characteristics:
- development longevity
I hope you enjoy seeing what I actually use here in my home studio. Please don't be disappointed if you don't see your favorite Linux audio software here: the times do change, and I may change my mind regarding what software I typically choose to work with. But do try out these applications if you haven't already done so; in my humble opinion, this selection represents some of the best we have.
Jörg Schilling's Cdrecord is the indispensable tool for recording audio and data CDs under Linux. Various graphic user interfaces exist for it, my favorite being Gcombust, an excellent GTK GUI for cdrecord's many features.
Mike Oliphant's GRip is a GTK front-end for CD-rippers and encoders such as cdparanoia and BladeEnc. I use it for all my ripping and encoding needs: its simple interface is easy to navigate, the source package includes the cdparanoia sources, and both MP3 and OGG formats are supported. Truly a first-rate Linux audio utility.
I don't usually create elaborate packaging for my discs, but when I wrote an article about burning CDs under Linux I discovered the very cool Kover, a simple utility for creating nice inserts for CD jewel boxes. Combine it with the GIMP and you're all set for making cool inserts and covers.
Of course I have a favorite CD player too: Ti Kan's XMCD, simple Motif-based GUI for controlling my player. The author has thoughtfully provided a version (CDA) for the command-line as well, available from the same site as XMCD.
As anyone who has worked with Csound long enough can tell you, writing complex instruments and elaborate scores quickly becomes tedious and even discouraging. Thankfully a number of front-ends exist for Csound, ranging from simple launchers (such as Maurizio Umberto Puxeddu's CSFE) to larger-scale programming environments such as Michael Gogins's Silence, Atelier Planck's HPKComposer, and Steven Yi's blue (incidentally, all three require Java). I use all of those apps with some frequency, but without question my preferred Csound environment is the wonderful Cecilia, written originally by Jean Piche and Alexandre Burton.
Linux helper applications for Csound abound. Some of my favorites include Ruediger Bormann's MIDI2CS (a MIDIfile to Csound score conversion utility), SoundSpace (a Java GUI for Richard Karpen's space opcode), Toby Shepard's Drumachine (a score generator for percussion tracks), and Matti Koskinen's TkScore (a graphic utility for combining soundfiles and/or Csound scores into a single mega-score).
You say you really want to impress someone with a show of Linux multimedia strength ? Show them the State Of Mind demo, that should do the trick. Just make sure you have a fast machine, a very good video card, and amplitude headroom to spare. Run the demo, pump up the jams, and stand back... And if SoM is just a bit too intense, try CSR's Loop instead. Ya gotta love floating penguins...
GDAM is certainly the most full-featured mixing suite for the Linux digital DJ, with many cool tools built into it (including a LADSPA plugin builder). I'm also fascinated by Robert Dean's DBMix: it includes the very cool feature of accepting clients such as XMMS, mpg123, and even SoX. Not surprisingly, a DBMix plugin exists for XMMS, making it simple to set up the connection between the two apps. DBMix also accomodates the incredible terminatorX, a unique Linux music that enables hip-hop style "scratching" of WAV and MP3 files.
Depending on what day it is I'll use any one of these software drum boxes: Daniel Venkitachalam's Green Box, Robert Muth's Trommler, or the excellent TK-707 (an emulation of the Roland TR-707 drum machine). They all work well, and I like having the choices.
Ordinarily I don't work with many of the applications listed in this category, but I do use one of them extensively: Stanko Juzbasic's incredible Ceres3, a superb incarnation of Dr. Øyvind Hammer's original Ceres graphic spectral editor. Ceres3 is my ultimate sound design tool, and I consider it a mainstay in my Linux audio arsenal.
Other standouts from this category include Aglaophone ("...a system of interconnectable modules for the recording, processing, and playback of real-time audio"), Mammut (spectral mutation treating entire sound as a single analysis window), and Tommi Ilmonen's very powerful Mustajuuri.
I love effects processors, whether rack-mount units, the guitarist's stompboxes, or their software equivalents. Fortunately Linux has a fine selection of impressive effects processors. Morris Slutsky's ELE is an outstanding example, capable of producing typical "fx" (reverb, distortion, flange, chorus, octave doubling, compression) alongside a powerful loop sampler. Guitarists will especially want to check out Hector Urtubia's StompBoxes, and everyone should try out Maarten de Boer's wonderful Tapiir (multitap delay) and Tom Olexa's neat ExEf "extreme effects" processor.
I've lost track of the number of times someone has written to ask me whether their favorite Windows or Mac software will run under Linux. Usually the answer is a big negative: applications such as Cubase or Finale are simply too deeply (though understandably) locked into details of the underlying OS, details which may or may not be available to the programmers of OS emulators. Nevertheless, some sound and music applications can run under an emulator. I've had the most luck with MS-DOS MIDI and sound programs running under DOSemu (MS-DOS emulator); I've also had some success running non-realtime music and sound applications under Ardi's Executor (a Macintosh emulator) and the WINE project's Windows emulator/library. Your mileage will certainly vary.
File Format Conversion
Use SoX, be happy. Or use Xsox if the command prompt terrifies you...
Right, like I have time to play games... Well, actually I do have some time to play some games. My Blackbox menu includes a games section where you'll find Chromium BSU (space shoot 'em up), Quake3: Arena (Quake on steroids), Railroad Tycoon 2 (economic empire simulation), PySol (outstanding collection of solitaire card games), Rollemup, and Xscrabble. All but the last have sound (sometimes awesome sound!), and they're all just great fun to play. At least on my machine "Linux got game!".
I've already mentioned some guitar effects processors. I've also written an article on software for Linux guitarists. While writing that article I discovered a few indispensable items for my six-string sessions: the Dr. Fermi Tabulator (converts ASCII tablature to a standard MIDI file), eTkTab (excellent program for writing guitar tablature in the typical ASCII tab found on the Internet), the KGuitar suite (too many features to list!), and gTune (a GTK interface to the Gtune guitar tuner). Rock on...
Multitrack Hard-disk Recording/Mixing
For complex multitrack recording needs I use either Paul Davis's professional-grade Ardour (although still in development) or Kai Vehmanen's amazing ecasound. I also like using Mix for creating complex mixes, though its utility as a recorder is limited (and I'm likely to replace it entirely with Ardour). Boris Nagels's abandoned Multitrack is still a useful hard-disk recorder for SVGA and X, well-suited for smaller projects. The same can be said about Nick Copeland's SLab, though its features and capabilities far outstrip Multitrack.
Well, I must have my MusE and Jazz++ for typical audio/MIDI sequencing. Nor can I survive without Tim Thompson's incredible KeyKit and the GRAME team's Elody for my experimental MIDI composition environments. TiMidity++, playmidi, and pmidi are my MIDI players of choice, along with the UMP plug-in MIDI player for Netscape.
I also have the occasional need for a MIDI uility or two, such as Paul Davis's xphat (a user-configurable software MIDI slider-box) and Bob Ham's very useful ALSA MIDI Patch Bay. And at long last I can use JSynthLib for editing my Yamaha TX802 !
Since I use the ALSA soundcard drivers for my SBLive I invoke either the package's included alsamixer at the command prompt or Maarten de Boer's nice alsamixergui while in X. They do a simple job andthey do it well.
Michael Krause's SoundTracker is my current tracker-of-choice, though I must say that Juan Linietsky's CheeseTracker is also starting to appeal to me. MikMod in any of its various incarnations is the module player/library for Linux. The XmToMIDand GMid2Mod file conversion utilities have also come in handy.
Encoders vary with regard to their speed of execution, performance throughout the range of available bitrates, and their licensing schemes. I switch between using BladeEnc, Gogo, and LAME.
Normally I use XMMS to play MP3s, but if I'm working at the command prompt or just want to listen to a few scattered files I'll invoke the ubiquitous mpg123. For a fancier console player I recommend MP3Blaster.
Let me clarify something right away: None of the available Linux music notation programs are in the same class as Finale, so if that's what you need you won't find anything quite like it here (yet). Some are not really notation programs in the sense that most Windows/Mac users expect. For example, LilyPond, Mup, and MusiXTeX all provide full-featured music typesetting services for preparing high-quality scores for hard-copy publication, and as such should probably not be considered primarily as tools for direct music composition (though I must note that LilyPond can also create a MIDI file as an output option).
More typical composition tools include the impressive NoteEdit and the notation editor in the Rosegarden MIDI sequencer. For those users who are unafraid to learn a simple notation code there are the extremely flexible Common Music Notation and abc notation language packages.
You need an ear-training program ? Look no further : GNU Solfege is 1st-rate software, one of the best Linux audio packages to date. You say you need a metronome too ? Okay, try gTick, a very nice metronome with a GTK interface. And now you're complaining because you need a tuner for your krumhorn ? Ach, check out Pitchtune, then go practice !
Audio server software is a natural for network-savvy systems such as Linux, whether it's serving soundfiles over a local-area network or broadcasting MP3s for a campus-based Internet radio station. If your needs run towards the Internet radio side be sure to check out Icecast: it handles audio in MP3 and OGG formats and can be streamed to an off-site "reflector" that will pass your broadcast on to a larger audience of Icecasters. If you're looking for more modest sound serving capabilities you'll want to look at the venerable NAS network audio system. If all you need is a way to multiplex audio output on a single machine then EsounD may be just the ticket for you. Finally, if you want to know a lot more about about network broadcasting you should read my article on Streaming Media With Linux.
Special mention must be made for Paul Davis's very cool JACK low-latency audio server. Although a relatively recent contender it's a true heavy-weight that will likely have a strong effect on developers, particularly if they'd rather write interesting code for users instead of low-level audio services. The aRts project is similar in intent but is somewhat less robust and is more KDE-centric (which might be just what you're looking for if you're programming in that environment).
Players & Recorders
To segue smoothly from the previous category, here are my choices for Internet media players. For receiving RealAudio or RealMovie streams you need the RealPlayer G2. If you want to enjoy Flash sound and animation you can download Macromedia's own Flash Player 5. For just about any other sort of Internet media (including Quicktime 5 productions) you can use CodeWeaver's remarkable Crossover Plugin.
Pretty straightforward recommendations for desktop players too. XMMS is my hands-down favorite media player for Linux, handling MP3, MOD, WAV, and many other formats (including a variety of video file types); XMMS can also be configured as your browser's network audio player for MP3 and OGG streams. The only other player I use is Andy Lo A Foe's excellent AlsaPlayer.
Scopes & Visualizers
More easy choices. Cthugha has been described as "an oscilloscope on acid", an apt description. baudline and eXtace are more serious-minded applications, but their displays are often as colorful and interesting as Cthugha's.
Sound Synthesis/Composition Software
- Csound comes from Barry Vercoe at the MIT Media Lab
- Freebirth excellent software bass synthesizer/step sequencer/sample player
- PD a new MAX-like language from Miller Puckette, Linux version by Guenter Geiger
- RTCmix a version of Paul Lansky's Cmix maintained by Dave Topper, Luke DuBois, Brad Garton, and John Gibson
- RTSynth an excellent realtime synthesizer for X
- Spiral Synth very cool realtime software synthesizer
- Ultramaster Synths superb software emulations of classic analog synths
- jMax MAX for Linux and Java, from François Déchelle's team at IRCAM
- Broadcast 2000 the only free non-linear realtime audio/video editing system for Linux
- DAP excellent digital audio editor/processor with XForms GUI
- KWave very good soundfile editor for KDE by Martin Wilz
- MiXViews soundfile editor + analysis/synthesis engine
- Snd extremely powerful editor, interfaces with Common LISP Music
- TAON very nice soundfile editor
- Festival speech synthesis system
- MBROLA easy-to-use CLI speech synthesis project
- OGI Speech Tools toolkit for speech data manipulation, includes X interface, file conversion utilities, and LPC tools
- Praat "...a comprehensive speech analysis, synthesis, and manipulation package" for phoneticians and other sound researchers
- SFS Speech Filing System, excellent set of X-based and command-line tools
- Transcriber "...a free tool for segmenting, labeling and transcribing speech", requires the Snack package
- rsynth the venerable speech synthesizer for UNIX
Tools To Make Tools
- Audio File Library an implementation of the SGI libaudiofile from Michael Pruett
- Audio Format FAQ a great resource from Guido van Rossum, now maintained by Chris Bagwell
- Audio Latency and Linux analyzes scheduling latencies of programs running in realtime under high system loads
- Linux Sound Programming a tutorial page from Eelke Klein
- MidiShare now has an open-source initiative with CVS resources
- MuCoS an ambitious API for Linux audio, from David Olofson
- Music-DSP Source Code Archive code for synthesis, filters, analysis, effects, and other DSP functions
- Open Source Audio Library Bruce Forsberg's project for C++ classes to handle audio functions
- Open Source Portable Realtime Audio I/O Library "...an initiative of the music-dsp mailing list. The proposal is being coordinated by Ross Bencina."
- Programmer's Guide To OSS excellent resource for Linux sound & MIDI device programming, from 4Front
- SDL the Simple DirectMedia Layer, an outstanding game audio/visual library project
- SNACK a module to add sound I/O and visualization commands to Tcl/Tk
- Tritonus an implementation of the JavaSound API, from Matthias Pfisterer, Florian Bomers, and others
- libsndfile library for reading and writing many different soundfile formats, from Erik de Castro Lopo
- sndlib Bill Schottstaedt's library derived from the Snd soundfile editor project
- tichstuff a collection of headers and libraries needed to port SGI sound apps to Linux