LMMS: The Linux MultiMedia Studio
LMMS is music creation software similar to programs such as GarageBand for OSX and FL Studio for Windows. Those programs are designed to streamline the process of making music with a computer in order to get new users into music composition as quickly and painlessly as possible. Their feature sets include preset audio loops, MIDI tracks, and other ready-made musical materials available for immediate use in a piece. Their GUIs invite involvement in the process of making music and it's clear that the designers want the user to have fun with the program and the process. In this mini-review we'll see if LMMS lives up to the precedents set by those programs.
LMMS combines a lightweight DAW (digital audio workstation) with editors for the composition of musical material, including a beat/bassline editor, a piano-roll window for writing MIDI parts, and a song editor for organizing your materials into larger forms. The DAW includes track-based automation for gain and plugin parameters, and a 64-channel effects mixer with support for LADSPA and VST plugins. I'll have more to say about those features and others, but first let's find out where you can get LMMS and how you can install it.
Most Linux distributions include LMMS in their normal repositories. If you're using a mainstream distro just open your package manager, search for LMMS, and let the manager do its job. Alas, most distributions are likely to have only an older package for LMMS. If you want the latest and greatest you'll need to download the source code and compile it yourself. Building LMMS isn't difficult, but the process is beyond the scope of this article. See the LMMS documentation wiki for more information on installing LMMS from its sources.
After LMMS has been installed you'll need to configure it for best performance on your hardware. The Edit menu's Settings dialog provides controls for LMMS's internal buffer size and selection panels for your audio and MIDI devices. For the record, I built the latest version of LMMS (0.4.4) on an Ubuntu 9.04 system empowered with a Linux kernel patched for realtime operation. The system is fully equipped to test LMMS in a variety of configurations for different audio devices, including a consumer-grade soundcard, a pro-audio interface board, and a virtual MIDI ports system.
Start LMMS either by invoking it at a terminal prompt or by clicking on its menu icon. Figure 1 shows off LMMS in its default appearance with a loaded project, though you can change the program skin and its background image via the Settings dialog in the Edit menu.
LMMS lets the user enter the composition process at various levels. You can import whole recordings into LMMS, whether they're sample loops or entire pieces. Drag a file from your samples collection into a track in the Song Editor (Figure 2) and that sample is now available for playing via the Piano Roll (Figure 3) window. Left-click the track name to open the designated instrument - it should be the Audiofile Processor for soundfiles - then double-click in the track itself to open the piano roll editor. When the cursor is in Draw mode you can add note events to the piano roll. You can alter the pitch location and note length, and switching the cursor mode will let you select events for editing by group. The remaining modes provide an eraser tool and a detuner for fine adjustments to the pitches of your samples.
You can also drag sampled sounds into the Beat/Bassline editor (Figure 4). A new track will appear in the window, and again you can open the Audiofile Processor by clicking on the track name. This window is similar to some Old School drum machine interfaces. The display shows a series of tabs representing beat markers which are activated by left-clicking on the tabs/beats. Double-click in the beat tab display to open the piano roll editor (again) to assign pitch levels to your instrument. Individual tracks can be composed for drums and bass to create patterns as simple or complex as you like. Editing in LMMS can be done in realtime, so you can hear your work at the same time you create it. Note though that caveats apply with regards to audio glitching (see below).
LMMS will accept soundfonts in SF2 format and GUS patches (sounds originally formatted for the Gravis Ultrasound audio card), but I didn't test that support.
A track in LMMS can be assigned as a MIDI track, as a container for an audio clip, or as an automation control track. Automation curves dynamically control values for panning, track gain, or plugin parameters to give your sounds greater liveliness and character during playback. Automation is a standard feature on high-end DAWs, it's nice to see it employed in LMMS too (Figure 5).
At the left side of the main display you can see buttons that call up the program's collection of instrument plugins and sampled sounds. LMMS comes supplied with a large set of samples for use in the program, including basslines, drum loops, synth patterns, and more. The program really does try to provide the user with everything needed to compose music. Of course, a Hit Song button would be nice too, but I suspect we'll have to wait for the developers to figure out how to design one. Until then you'll have to supply the creative juices yourself.
You can work with existing material by importing MIDI files or FL Studio project files (in the FLP format). You can also record your own audio or MIDI tracks directly into LMMS. When you've composed your tracks you can play them back all together or you can mute/solo tracks for closer inspection. In accord with its design philosophy the LMMS track editor doesn't offer a broad range of tools. It does provide the tools most used in the basic operation of a DAW. If you need more controls over your material you can export mixes or individual tracks as WAV or OGG files for use in a dedicated soundfile editing environment such as Audacity or Snd. Your work can also be saved as a native LMMS project file.
Personally I found that the best way into LMMS was through playing around with the demonstration files and the completed pieces. You'll learn a lot by seeing and hearing how other users compose their music with LMMS. Of course the quality of those files varies considerably, but they are all very helpful for absolute (and not-so-absolute) beginners.
LMMS supports the native Linux LADSPA plugin specification and the VST/VSTi standard for Windows plugins. Thanks to the Vestige software the Linux version of LMMS can employ VST/VSTi plugs too, though certain caveats apply. The VST load process can be a bit alarming. When I first loaded a VST effect (DFX's Transverb) my mouse and keyboard response became very sluggish. I thought the system was going to freeze, then suddenly the plugin was loaded and ready for use. It worked fine, but a second attempt at loading the same plugin in another session did freeze the system. Loading a VSTi instrument plugin with the VeSTige processor caused the same problem. Like all other mechanisms for VST support in Linux LMMS depends on WINE to instantiate those plugins, and WINE's volatility makes it difficult to predict which plugins will run (I have version 1.0.1 from the Jaunty repos). No such troubles occurred with the LADSPA plugins. Frankly, if you don't need the VST support I suggest doing without it.
If you can't live without your VSTs be sure to check out the LMMS documentation wiki for a database of VST/VSTi plugins known to work with the program. If I can get the performance issues resolved I intend to test some of them and some other favorites. Hopefully I'll post some success stories to the wiki, and I urge other users to do likewise.
Documentation for LMMS is copious and helpful. The program comes with a nice batch of demos, tutorial files, and complete songs for the new user to disassemble and remake as desired. The collection of finished pieces is especially thoughtful. Some of the songs are fine compositions, and they all provide valuable insight on making larger-scale pieces after the user has mastered the basics of the program. In addition to the official help I found a substantial collection of LMMS-related videos on YouTube. Some of the videos focus on the Windows version of the program, but since its operation is identical across platforms those videos are useful for Linux and OSX users as well. Mail lists and IRC are available for communicating with other users and the developers, and the LMMS Sharing Platform offers a neat way to share your songs, presets, patterns, and just about anything else you can create with LMMS.
The Performance Report
LMMS has some excellent features, but alas, performance isn't among them. The program's audio support includes OSS, ALSA, SDL, and JACK, but I experienced different levels of unsatisfying playback from each system. The ALSA, SDL, and OSS backends performed about equally well, though my subjective opinion is that the OSS interface is the slightly better choice. Regardless of interface selection audio glitching occurred more frequently as the performance load increased with more instruments and effects processing. Switching workspaces or sudden mouse movements were also unwelcome to the audio stream. And alas, despite rumored improvements, the JACK connection still suffers from xruns to the point of being unusable.
For the sake of completeness: My Ubuntu Jaunty installation is a 32-bit system, and the test machine is based on a 2.4 GHz CPU with 4G memory and a large fast hard-disk. I seriously doubt that my hardware is insufficient for LMMS, particularly since the machine runs other resource-hungry realtime applications without audio complaints. Incidentally, off-line rendering works as advertised, and the rendered files happily lacked the sonic artifacts produced during realtime operation.
Visually LMMS is a very attractive program. However, it is not just another pretty face. Although LMMS does not intend to be all things for all people, don't let its apparent simplicity fool you. I've exposed only a part of the program in this review. Considerable power lurks under the hood, and the designers have been diligent about addressing the needs and problems faced by beginners. And did I mention that you can't beat the price ?
Alas, its performance issues prevent me from recommending it whole-heartedly. In my opinion LMMS is a very good program, but I think it could be a great one if it can improve its JACK support. Meanwhile it's definitely worth looking into at its current level, and I'll continue to monitor its evolution.