One thing that confuses some new Linux users is just how modular Linux can be, and on nearly every level. It turns out to be liberating in the end, but it can be overwhelming at first. That's why it's nice, sometimes, to come across a project that brings a bunch of modular technology and binds them together nice and neatly for users. In the world of digital audio workstations, the project that does this most profoundly is the Linux Multimedia Studio, better known as LMMS.

LMMS is a free end-to-end, cross-platform music production suite. It's an everything-including-the-kitchen-sink apps, providing you with all the tools you need to create melodies, lay down a beat (mad, phat, dope, or otherwise), synthesize new sounds, sample, loop, distort, enhance, and, of course, mix it all together. Best of all, LMMS comes with many ready-to-use instrument and effect plug-ins, presets, and samples, making it one of the easiest music applications on any platform to get started on.

LMMS interface

The centre of the LMMS interface is its Song Editor window. This is its sequencer, where you plug in new instruments, samples, drum lines, and automation. All of the other windows that you interact with exist in relation to the Song Editor, so use it as your main compositional hub.

By default, the Song Editor pre-populates four channels:

Triple oscillator

Sample track

Beat/Bassline

Automation

These are just starting points, provided only to give you an idea of what's possible and where to begin. Your individual style and workflow depends entirely on what kind of music producer you are. If you're a loop-driven producer, you will most likely deal mostly with sample tracks. If you're a skilled musician, you might use sample banks or soundfonts and a MIDI keyboard to play in your own sequences. If you're a synthesist, you might noodle around with some of the soft synths until you reach LFO nirvana. If you have no idea what you are, then you might as well try a little of everything. It just depends on where you want to go.

On the far left of the LMMS window is a stack of tabbed panels, collapsed by default. Click on them to see for yourself what they contain. You'll find plenty to play with in these tabs, and of course you can add more.

Drum machine

LMMS comes with all you need for drum sequencing out of the box. Click on the My Samples tab on the left side of the LMMS window and open the Drums folder. A full General Midi compliant drumkit is ready for use.

To sequence this batch of samples, click the first block in the Beat/Bassline 0 track of your Song Editor. This opens a Beat+Bassline editor. Drag and drop samples from the Samples tab into theBeat+Bassline editor, and start building some beats. You're free to sequence during playback, so if you're the type of programmer who likes to hear the changes you're making as you make them, just press play and programme on the fly.

You can sequence the default four bars of four beats, or you can add more bars if you want to sequence longer sections. Remember the relationship between the Song Editor and the Beat Editor: if you switch the beat sequence ON for one bar in the Song Editor, then only four bars of your sequence will play. If you want to programme 8 bars of drums, then you must switch on your beats for two blocks in the Song Editor (or three blocks, if you programme 12 bars, or four if you programme 16, and so on).

If you're feeling especially creative, you're free to use whatever sampled sound you want in the beat editor. It doesn't have to be the LMMS defaults, and it doesn't even have to be drums. Look around online and at music shoppes to find good samples for your custom kits. There are 99 free drumkits available from slackermedia.info/sprints (they're actually Hydrogen drumkits, but if you unarchive them, you can pull out the raw sound files and use them in LMMS). Alternately, you can use Hydrogen (a free software drum machine quite similar to LMMS in interface and philosophy) to programme your beats, since LMMS will import Hydrogen files.

Making music

Also included in LMMS are musical instruments, and a few musical toys. Click on the My Samples tab on the left to see what samples are available from LMMS; trigger those from either the Beat+Bassline editor or the Song Editor.

More than likely, if you want to sequence music, you want some sound module that you can use as a traditional chromatic instrument. Click the topmost tab in the left of the LMMS window; here, the default instrument plugins are available. To use one, just drag and drop it into your Song Editor.

Once an instrument is in the Song Editor, double click a block in the song sequence to bring up a Piano Roll interface. If you want to tweak the sounds that your chosen instrument is making, click the name of the instrument in the Song Editor and a GUI representation of that synthesizer will give you access to all the envelopes and oscillators you need to design amazing sounds from simpler waveforms.

Each synth unit that LMMS ships with has five tabs near the top of the window, just under the title bar:

Plugin: the main interface

Env/LFO: controls for envelopes of resonance, EQ, sustain, release, and LFO (low-frequency oscillation)

Func: any special functions that the plugin offers

FX: a slot to add effect units to the plugin's channel MIDI: define or tweak your MIDI input source, MIDI output, and so on

That's liberating if you know (or are brave enough to find out) what envelopes do or how LFO affects a waveform, but LMMS is known for its generous provision of presets and soft synths is no exception. Click the left My Presets tab on the left side of the LMMS window. There are preset sounds for very complex synthesizers like OpulenZ, BitInvader, ZynAddSubFX, and others. Use a preset by dragging and dropping a preset name from the left panel onto the soft synth to which it belongs in the main LMMS GUI. You can have multiple instances of each synthesizer, so if you want two presets in the same song, just create two separate instances of the synth and assign one preset to each. These are soft synths, so it doesn't cost you to spawn a few extra.

Soundfonts

LMMS also has the ability to play pre-made patches in the form of Soundfonts. Like samples, Soundfonts are digital representations of either real-world sounds or of sythesized waveforms, but they are not full "samples" in the way synth users usually think of samples. The soundfont format was developed by Emu, a pioneering company in the world of digital synthesis, and are small snippets of a full sample, carefully crafted to sound nearly as good but at a fraction of the file size. The advantage, aside from the file size, is that they tend to offer fairly complete sets of sound banks all in one package. The disadvantage is that they are not full-quality, full-spectrum samples; don't expect a Soundfont of a grand piano to make you or your listeners believe that a grand piano is sitting in the same room, because it will sound somewhat synthesized, or "sampled."

If you're not a serious audiophile, or the sampled-sound is part of your aesthetic, then grab as many soundfonts as you please from Hammersound.net (most of these soundfonts were created well before the Internet was thinking about things like licensing or Creative Commons, so don't look for explicit licenses, because they generally aren't there).

To use a Soundfont, use the Sf2 Player plugin in the Instrument Plugins tab. Just drag it into your Song Editor, and then click its entry once to configure. In the Sf2 Player window, point the player to your Soundfont file. The default patch is loaded, and you can now use the player as you would any other instrument in LMMS. Many Soundfont files have multiple patches, so click the Patch menu to select which patch you want to use within that Soundfont file.

You can also add effects to Sf2 Player in order to manipulate the sound. Envelope and LFO controls are not available on Soundfonts, but with over 100 LADSPA, Calf, and Invada plugins available, you will probably find quite enough to keep your fingers tweaking knobs.

FreePats

Another option for pre-built sounds is Freepats, or "Free Patterns." These are pre-made sound patches that are played through the Patman synthesizer in LMMS. These are not samples, so you have total freedom to manipulate and customise the sounds should you choose. The Patman plugin is found, like Soundfont Player, in the Instrument Plugins tab on the left of the LMMS window.

Samples

The term "sample" is a broad one in modern music, but strictly speaking, it means that a sound that was pre-recorded is being used in a production as if though it were an instrument itself. This might mean that someone has sat down and sampled every single key press of a grand piano (often at different velocities) and saved each sound as a full quality sound file, which is then mapped to a corresponding key on a virtual keyboard. Or it might simply mean that a music producer rather liked a drum beat used in an old classic, and recorded a bar or two so that the beat could be recycled in a new song.

LMMS features the basic Audio File Processor, a plugin that will not only play a sample file when triggered, but that will even allow you to adjust things like the in and out points of a sample's playback, envelopes and LFO, and pitch. It's a fine sample player for basic sampling needs. LMMS even ships with a few simple samples to get you started; find them in the My Samples tab on the left.

What LMMS does not have is a full-blown key-mapping sampler player. If your goal is to map 4 sets of pressure-sensitive chromatic samples to 88 keys of the keyboard, then you will need to fall back on a dedicated sampler, like Linux Sampler, which can import GIGA files and other popular formats.

MIDI controllers

MIDI (Musical Instrument Digital Interface) traditionally was its own protocol and hardware (in the form of cable design) and it revolutionised how electronic musicians were able to record. MIDI is still alive and well, but it also has been virtualised, in the form of USB keyboards (the chromatic kind, not the typing kind). These send signals to the computer, which uses a MIDI driver to pass those signals on to MIDI-aware software synthesizers.

What this means is that you don't have to point-and-click your music into your computer. You can play it on a keyboard.

MIDI controllers usually are a breeze to use with Linux because most of them just send generic signals to the computer and let the MIDI driver do all the hard work. Some of the really complex controllers with foot pedals and inbuilt drumpads will attempt to do some fancy pre-processing and require special drivers to work, so due diligence is always required when purchasing; look online to see how others have faired with whatever MIDI controller you are considering before throwing down your money.

Once you have a MIDI controller, plug it into your computer (many are USB-powered, some are not), and launch LMMS.

In LMMS, navigate to the plugin you want to control with your controller and click the plugin's MIDI tab. In the MIDI tab, click the keyboard icon in the Enable MIDI Input section and select the MIDI device (it is usually identified by either the manufacturer or the model). If you have a multi-channel keyboard, you can assign a specific MIDI channel to that plugin.

To record a sequence into LMMS, open the Piano Roll Editor at the position in the Song Editor you want your sequence to play. Press the Record button and proceed in tickling the ivory.

Exporting

Writing, performing, and mixing music is fun, but it's also hard work. The easy part, and the most rewarding, is exporting.

In order to get your masterpiece out of LMMS for others to hear, navigate to the File menu and select Export. LMMS can export to two file formats: uncompressed WAV and compressed Ogg Vorbis (an open source audio codec, and an HTML5 web standard codec). If you intend to post your music online on your own server, or listen to your music on Linux or in VLC on any platform, Ogg Vorbis will work great for you. Otherwise, you should export as WAV, which is a "standard" uncompressed audio codec, mostly because it's been around for so long. Its main problem is that it's big, so if you export as WAV, if you intend to send it to friends or put it on a non-open music player, then you'll need to compress it to something like .m4a or .mp3.

Sharing

LMMS has a diverse and active community surrounding it, and accordingly it even has its own sharing platform. Available an the LMMS Sharing Platform are samples, pre-sets, projects, tutorials, themes, and more. If you like LMMS and want to explore it in-depth, this is a must-see web resource.

There's also a great must-hear resource: LMMS has its own Bandcamp page with two Best Of compilations from various artists who use LMMS as their platform. Each album is chock full of variety, and available at whatever price you choose to pay. It's a great way to support independent art, independent software, and open source creativity.