ludum dare 26: anti-minimalist music and sampled orchestras

This weekend was Ludum Dare 26, and as usual when Switchbreak enters such things, I took the opportunity to tag along. The theme was “minimalism”, but his game, called MinimaLand, deliberately eschews that theme; it tasks the player with bringing life and detail in to a very minimalist world.

MinimaLand screenshot

In MinimaLand, the player brings life to an abstract, minimalist world

I wasn’t sure at first how to fit music to the game, but it soon became clear: if I was going anti-minimalist, I wanted to use an orchestra. Ever since I heard about the Sonatina Symphonic Orchestra, a CC-licenced orchestral sample set, I’ve wanted to try recording something with it; what better time to try it than with a deadline looming!

Given that I had just a few hours for this, I kept the music itself very simple — just three chords and a short melody. The music itself is almost irrelevant in this case, though, since it’s really just a means of delivering those orchestral sounds to the player. Initially, the melody and harmony are on strings, with rhythmic staccato stabs on brass, then the whole thing repeats, with the stabs moving to strings and the melody/harmony to woodwinds and horns.

It’s funny that, even when I’m dealing with sampled instruments instead of my own synth sounds, I still think in terms of sound and feel first, and chords and melodies second. I guess that’s just how I roll!

Working with LinuxSampler

That's a lot of LinuxSampler channels!

That’s a lot of LinuxSampler channels!

Not unexpectedly, I sequenced everything in Ardour 3 and hosted the SSO instruments, which are in SFZ format, in LinuxSampler, using a LinuxSampler build from a recent SVN checkout. I didn’t use anything else on this one, not even any plugins, since all it really needed was some reverb and the SSO samples already have plenty of it.

Recent versions of LinuxSampler’s LV2 plugin expose 32 channels of audio output; I guess the idea behind this is to allow you to run multiple instruments to dedicated outputs from within a single plugin instance, but I’m not sure why anyone would actually want to do that. I think my workflow, with each instrument in its own plugin instance on its own track, makes a lot more sense, so I patched the plugin to return it to a simple stereo output per instance.

Sonatina quality?

I’ve been keen to try SSO mostly to see just how usable it is, and in this case, I think it worked pretty well. With just 500MB of samples, it’s never going to sound as good as a commercial library (where individual instruments can take several GB), but some of the samples, such as the string ensembles, sound quite nice at first listen.

The biggest problem is with the availability of different articulations for each instrument. You do get staccato samples for most instruments, and pizzicato for the strings, but beyond that you just get “sustain” sounds, which are great for held notes (as long as the sample’s long enough), but far less suitable for faster legato parts. You can hear this in the horn part in the second half of the track, where some short notes take so long to start playing that they barely become audible before they end.

Many of the solo instruments are quite weak, too — you can hear audible jumps between certain notes in several of them, where the instrument jumps from one discrete sample to the next, while others have odd tuning problems.

There’s also a tonne of reverb on every instrument. SSO’s instrument samples come from a variety of sources, so each instrument has its own reverb characteristics; in an attempt to even out the differences and make them all sound at least vaguely like they’re in the same room, the library’s creator added quite a bit of extra reverb to each instrument. It’s a necessary evil, and it works, but it has a smearing effect that only exacerbates those problems with short notes.

So, SSO was well suited to this track — most notes were either staccato/pizzicato or were held for quite some time, I didn’t need to use any solo instruments, and the wall of reverb helped make it sound suitably pompous. If your needs are different, though, then you’ll have a hard time getting good results from it.

Having said that, it is far-and-away the best free option, and it’s also quite easy to get working under Linux, which can’t be said for many commercial libraries. Despite my mostly good experience with it, though, I’m keen to investigate just what commercial alternatives are available that will work under Linux.

sonatina symphonic orchestra, a CC orchestral sample pack

For a long time, the free culture world has lacked a decent set of orchestral samples. Various projects have produced or compiled samples of instruments, but often just in their raw form, requiring the user to assemble them in to something useful. It would take a hell of a lot of work to pull in samples from these various sources and turn them in to not just usable instruments, but a usable collection of instruments with a consistent sound, but that’s exactly what Mattias Westlund and some helpers have done, in the form of the Sonatina Symphonic Orchestra.

SSO (as I’ll refer to it) covers all the basics: the common brass, woodwind, and string instruments, in sections and as solo instruments, with a few important articulations (like staccato and pizzicato notes on the violin sections, for example), along with piano, chorus, and percussion instruments. They’re all bundled in to a single 440MB download (via BitTorrent) with a Creative Commons Sampling Plus licence, and the instruments themselves are all in SFZ format, so they’re compatible with the current LinuxSampler development code from CVS.

Now, at 440MB, it’s not going to rival VSL (it’s individual instruments are several times as large!), but it’s far better than anything I’ve heard from the traditional free options, such as the Fluid GM library. The demo on the SSO website is well worth a listen: it does show the library’s limitations at times, but it also shows just how good it can sound. Scoring believable orchestral parts is as much in the programming as it is in the sounds themselves, but SSO gives us all a solid, Linux-compatible base to work from.

One last word on Linux compatibility — some of the SFZ files in the collection play a bit loose with the cases on the filenames of the samples they link to, which causes problems when loading them in LinuxSampler. The authors are aware of the issue and I’m sure it’ll be addressed before the next release, but for now, I’ve uploaded a complete set of corrected SFZ files. Extract those over the top of the SFZ files from the distribution, and you shouldn’t get any trouble from LinuxSampler.