sketchbook: musopen musings

Musopen is a fascinating project — it hosts public domain recordings of, and sheet music for, a large number of classical pieces. Many of the most famous classical works have long been in the public domain, but while the compositions themselves may be free to use, recordings of those works are still subject to copyright. Musopen, then, hosts recordings of those works that have also been released in to the public domain, mainly from student and college orchestras.

Nearly two years ago, Musopen’s founder had an ambitious idea: use funds from a Kickstarter project to commission classical recordings from a top-quality orchestra, which would then be released in to the public domain. The campaign was a great success, and the resulting recordings are now complete. The final mixes aren’t ready yet, but I’m more excited to see that the raw multitrack recordings are available!

The sessions are in ProTools format, but the recordings themselves are WAVs that can be imported in to Ardour or any other DAW quite easily. With some 560GB of high-quality orchestral stems to work with, there’s tremendous scope to incorporate these recordings in to other works, or process and edit them to create entirely new works. This is an incredible gift to the recording community, and I have a feeling we’ll be hearing elements of these recordings for decades to come.

In that spirit, I spent some time over the weekend playing with one of the pieces in Ardour. I took one of the shorter (and more frantic) pieces — Mozart’s The Marriage of Figaro — and extracted a few short elements, stretching them out to create a short ambient electronic (the genre I affectionately call “artwank”) track. Beyond Ardour’s time-stretching and pitch-shifting tools, I used Argotlunar and Cumulus, which are both granular synths, to add a bit more textural variety.

mp3 | vorbis | 2:04

rui’s new synths: synthv1 and samplv1

The last week has seen the announcement of two new LV2 synths, both from Qtractor and QJackCtl developer and all ’round good-guy Rui Nuno Capela: synthv1 and samplv1. Both are in the early stages of development, but they’re already looking very promising.

synthv1 is a classic analogue-style synth with a few twists

You can never have enough good analogue-style soft-synths, and synthv1 is a welcome addition to the list. The basic synth design is pretty straightforward — two oscillators (with saw, pulse, sine, and noise waves), a multi-mode filter with its own envelope, and an LFO with various routing options. However, each patch actually has two instances of this synth engine, which are mixed and then processed through an effects section.

This layered design is particularly handy for adding sub-octaves to create strong bass sounds, or adding some high-end sizzle to pads, especially when combined with the filter’s high-pass mode and the LFO’s panning control. It can also create very wide stereo sounds, by building subtly different sounds on each layer and then panning the layers in opposite directions.

There are some other unique touches, too. For instance, the saw wave is actually continually variable between saw and triangle modes, which gives you more basic oscillator timbres to work with; hopefully later versions will allow the LFO to be routed to this wave shape control, both for saw/triangle variation and for pulse width variation. Also, the LFO has its own envelope, which can be used to adding vibrato or filter cutoff variation to a sound after the initial attack, for instance.

samplv1 fills a major gap: a simple sampler plugin

samplv1 is the more interesting for me, though, because it fills what I feel is a major gap in Linux audio: a simple plugin sampler. LinuxSampler is great, and it’s available as a plugin, but sometimes you just want to take a single sample and do something creative with it, especially when making percussion parts, and LinuxSampler doesn’t make that easy. Specimen (for which I recorded a video tutorial) is a better option for this, but as a standalone JACK app, it’s cumbersome to use, especially if you’re using multiple instances to host multiple sounds.

In a lot of ways, samplv1 is like a plugin version of Specimen — it lets you load a sample and map it to your keyboard within seconds, and then optionally use other synth components to process that sound. samplv1 uses the same envelope-controlled multi-mode filter and LFO as synthv1, which gives you a lot of scope for creative sound design; Specimen has a bit more modulation flexibility, but it’s not as immediately accessible as samplv1 is. samplev1 also shares synthv1’s stereo effects section.

It’s still early days for both of these, so don’t be too surprised if you run in to problems (I’ve had a few crashes with Ardour 3, for instance, but I haven’t narrowed down their cause yet), but they’re definitely worth checking out!

not-quite-announcing my next project!

Things have been decidedly quiet here after the flurry of activity across March and April, but thankfully, in the real world, things haven’t been quite so quiet. I’ve been working on a new project with a couple of really talented guys, and while I can’t say too much about it yet, I can at least reveal that it’s a game!

Unsurprisingly, I’m taking care of the audio. I was initially brought on to write some music, but as we discussed the game’s design and setting, it became clear that the soundtrack would be much more sparse and ambient than my usual video game ditties. I do have a lot of ideas for the music that will fit the mood of the game, but for now, I’m focusing on the sound effects.

Designing those sound effects has definitely been a challenge. I’ve been creating sounds from scratch on the Blofeld, and using Ardour and Audacity to process recorded sounds from my Zoom H1 recorder, and while those tools are all quite familiar, these sounds are unlike anything I’ve created before. Part of the challenge is just getting an understanding of what sounds I need to make, so I’ve been playing a few different games and even watching bits of movies to get ideas on what different things should sound like.

A new prototype of the game should be ready soon; hopefully then I can real a bit more about what the game is and who I’ve been working with!

rpm 2012 post-mortem: release

I think I’ve post-mortem-ed my RPM album to death, but I did want to talk a little about the final release. The official release is, of course, on my Bandcamp page, alongside my compilation album of older tracks, sketchbook: vol 1. At first, I had the album available only as a free download, but after receiving a bunch of positive feedback, and discussing it with some of my fellow open-source musicians, I decided to make it a pay-what-you-want download, with a $0 minimum.

The sales figures so far have been a very pleasant surprise. To be honest, any sales at all would’ve been a pleasant surprise — I’m just happy when people bother to download my work at all — so I was very glad to make enough cash to buy a nice plugin or two (right now I thinking about Loomer Aspect).

Physical release?

Out of interest, I also looked in to what it’d cost to produce physical copies to sell. CDs aren’t too expensive to get made — CD duplicators just burn CD-Rs, so it’s cost-effective to make even very small quantities, like 20-50 discs. Even so, I don’t think I’d be able to sell even a small run of CDs; I really like my CD design, but I don’t think a CD is special enough to really warrant the cost increase over a digital download.

If anyone does desperately want a CD copy, let me know! I’d be happy to make a few more by hand, even if the disc is still just a plain CD-R with the name scrawled on it.

Vinyl would be far more awesome, but it’s also far more expensive because of its up-front costs; the absolute smallest practical run size is 100 discs, at about US$1200-1500 total, which is far more than I can sell. If my next album turns out really well, though, I’ll think seriously about making vinyl copies, even if I have to pre-sell most of them before getting them pressed.

Next steps

My RPM album was meant to be a source of rough new material that I could then sort through and rework in to a few proper tracks, but now I’m not so sure about doing that. These tracks aren’t as rough as I expected, and putting them together in to an album has given them a real sense of finality, so I think I’d prefer to move on to something entirely new.

I have some ideas, but whatever comes next, I plan to approach it in a more RPM-like fashion, sketching out a bunch of tracks and then deciding what works and what doesn’t. My earlier tracks were all written, recorded, and mixed from start to finish in isolation, one-at-a-time, and I think that shows.

music video: periapsis

Here’s a little something I put together: a video of a trip to the Mün in Kerbal Space Program, edited in to a music video for the first track from my RPM 2012 album, periapsis:

I had to cut about two-thirds of the video to fit it to the track, but you get to see all the major events in a flight to the Mün:

  • takeoff
  • booster stage separation
  • Kerbin orbit insertion
  • transmünar injection (that’s the burn that sends you to the Mün)
  • Mün orbit insertion
  • orbital adjustment for landing altitude
  • orbital braking burn
  • core stage separation
  • final descent and landing

The rocket design is the smallest and simplest I’ve come up with so far that can get to the Mün and back again; you don’t see it on the video, but I did get those Kerbal astronauts back home safely.

I captured the video using ffmpeg, with KSP running under Wine on my Linux desktop, and then used Kdenlive to edit it. Kdenlive worked well for the edit (no crashes!), though I suspect there was something funny happening with the audio/video sync — I’d place an edit right on a beat, and then find upon repeat listens that it sometimes didn’t quite match up, but it was such a close-run thing that it may have all been in my head.

rpm 2012 post-mortem: track order, making the CD

With all of my tracks completed, only one step remained before I could submit my work to RPM Headquarters: turning my collection of tracks in to an album and burning it to CD. A good album can be more than the sum of its tracks, so it was important for me to do what I could within the time limit to bring the tracks together as a cohesive whole and then present that within a proper CD case.

Track order

I started thinking about track ordering about half-way through the challenge, though I didn’t put much time in to it until I finished all of the tracks. Some of them fell in to place: I knew I wanted to finish with escape velocity and magnificent desolation, and periapsis seemed like a good opener, while I placed free return at track 3 (the “lead single” slot), and I saved track 6 for the upbeat direct ascent, to start the second half of the album with a bang.

For the other tracks, I used a bit of trial and error, slotting them in where I thought they’d fit. The end result is that the first half is generally a bit more relaxed and downbeat, while the second half is a bit more lively and upbeat.

Burning the CD

Despite the time constraints, I did spend some time on the final CD contents. I had planned to just burn each track to CD, using Brasero, but when I played the tracks back-to-back, they didn’t flow together well: the volume levels jumped around from track to track, and the pauses between tracks were too short. I figured the best way to tackle this was to import my finished tracks in to a new Ardour session and make use of Ardour’s CD mastering features.

Within Ardour, it was easy to adjust the timing and volume levels between tracks to make them all flow together; I then just had to add CD track markers at the start of each track. I used my ears to adjust those relative volumes, and I had no time (and no real desire, either) to use compression to bring up the baseline loudness, so some of the tracks look much quieter than others if you look at the CD’s waveform; the chiptune tracks, for instance, seemed much louder than their waveforms suggested, so I turned those down quite a bit.

A waveform display of the entire album

Adjusting the tracks' volumes to match by ear meant that some of the tracks looked much quieter than others on a waveform display

Another advantage to mastering a CD in Ardour is the ease with which you can run tracks together without a pause in between. I couldn’t resist the urge to try this, so I brought the start of eclipse up to just before the end of free return. It’s great to hear that seamless transition between the two tracks while listening to the CD (or to the FLACs, in a player like Aqualung).

The CD master in Ardour 3

The CD master project in Ardour 3, complete with track markers

Turning the Ardour session in to a CD was a matter of exporting it in just the right format — 44.1Khz, 16-bit, WAV, with TOC/CUE files enabled — and then feeding the WAV and TOC file to cdrdao, a specialised “disk-at-once” CD burning tool. The TOC and CUE files are both simple text files that describe the layout of a CD; TOC is specific to cdrdao, while CUE is more generic. Burning the CD with cdrdao took just one command:

cdrdao write Session.wav.toc

The final step was to upload the CD to Bandcamp. I wanted Bandcamp downloads to sound the same as the CD, so I used bchunk to split CD image in to separate tracks. based on the CUE file. The “-w” option instructs bchunk to write the tracks in WAV format:

bchunk -w Session.wav Session.wav.cue track

Cover design

It was important to me to have an attractive CD cover design, and that design started with the cover art itself. The “far side of the mün” concept came the downtime I’d spent playing Kerbal Space Program and listening to MOON8, a brilliant NES reinterpretation of Pink Floyd’s Dark Side of the Moon. A KSP screenshot seemed fitting as a cover, so I fired it up, flew in to Münar orbit, disabled the HUD, and started grabbing shots until I got one I was happy with.

Album cover template

The completed CD jewel case templates: front (with liner notes) and back

To turn that in to a CD jewel case cover, I used Inkscape, along with some excellent SVG templates. Inkscape’s a vector drawing package, so it’s well suited to this sort of design and layout work, and having a template made it easy to size everything correctly. I exported the completed templates to PDF files, and then had them printed on gloss paper and cut to size at an office supply shop.

Unfortunately, there wasn’t much I could do for the CD itself — that was just a standard blank CD-R, with “far side of the mün” scrawled on it in black Sharpie!

rpm 2012 post-mortem, track 10: magnificent desolation

109:43:16 Aldrin: Beautiful view!
109:43:18 Armstrong: Isn’t that something! Magnificent sight out here.
109:43:24 Aldrin: Magnificent desolation.

This track was the perfect bookend for this project: I started it way back on day 3, but it was the very last track I finished, on day 28. It was also a real problem child — the descending bassline motif was there from the start, but despite several attempts I just couldn’t work out how to develop it in to a complete track. It also didn’t seem to fit in with anything else on the album, so even though I really liked the initial idea, I wasn’t sure it’d make it on to the album.

Inspiration struck when I decided that it could work as the closing track of the album, a little mood piece to leave things on that bittersweet note that I seem to love so much. With that decision made, everything else fell in to place: it didn’t have to be long, and I could use vinyl-like effects to make it sound overly vintage, which somehow has the effect of making a lonely piece of music sound even more lonely.

Once I’d decided on that direction, there was only one name I could ever give to this track. Buzz Aldrin’s first words on the Moon aren’t as famous as Neil Armstrong’s, of course, but I’ve always found them far more poignant — they so succinctly express how strange it must’ve felt to look out across a landscape that’s simultaneously full of beautiful and devoid of life.

The piano recording was a live improvisation based upon that descending bassline, which I cleaned up a little in Ardour after the fact; the piano was of course Pianoteq, running in to a convolution reverb (using the IR LV2 plugin). For the vinyl sound, I tried the VyNil plugin, and it did make things sound suitably vintage, but the vinyl surface noise was essentially white noise with random pops, and I wanted more a cyclic popping sound, like you’d get when a needle hits the same scratches on each revolution.

Instead, I used an EQ to kill the highs and the lows, which instantly makes something sound old-timey, and then added a vinyl noise sample from Freesound, which I looped for the length of the track. Adding just a little vibrato (using TAP Vibrato) to simulate the sound of a slightly warped record helped to complete the vintage feel.

"old-timey" EQ curve

Cutting away high and low frequencies, as shown in this plugin frequency response graph, goes a long way to making something sound "old"

Fading between the “vinyl” piano and the unprocessed piano was more tricky than I initially expected. The idea was simple enough: I disconnected the piano track from the master bus and routed it in to two new buses — one with the EQ and vibrato plugins, and one without — and then faded each bus in and out as required. I used automation to disable the vibrato (moving its “depth” to 0%) to prevent chorusing effects while both the “old” and “new” buses were playing mid-fade, but even so, the fades didn’t sound right.

As it turns out, the TAP Vibrato plugin adds latency as part of its processing, so the “old” piano bus was tens of milliseconds behind the “new” piano bus, causing an echoing effect instead of a smooth transition from one sound to the other. The solution was easy, once it occurred to me: I moved the vibrato to the piano track itself, so its latency affected both buses equally, and then used automation to set its depth to 0% during the “new” parts of the song.

It’s worth mentioning that Ardour does compensate automatically for plugin latency on audio tracks. If I’d recorded the piano to audio, and then copied and pasted it across two audio tracks instead of using buses, then these issues wouldn’t occur, assuming that the plugin advertises its latency correctly.

I wish I could’ve done a better job of the actual piano arrangement in this — it needs to be properly composed and written down, and then handed to someone with more skill on the keyboard than me — but I’m really happy with its overall feel, and the impression that it leaves me with every time I hear it at the end of the album. A good final track can really help an album make a mark on people, and I think this track manages that.

rpm 2012 post-mortem, track 9: escape velocity

“In physics, escape velocity is the speed at which the kinetic energy plus the gravitational potential energy of an object is zero. It is the speed needed to “break free” from a gravitational field without further propulsion.”

I had no intention of putting an industrial track on this album — or of ever writing one, to be honest — but serendipity is a funny thing sometimes. While working on oberth I took some time out to play with some patches on the Blofeld, and I found a nice arpeggiated lead patch that went mad when I started playing with the filter cutoff and resonance. It became a thumping kick drum, with higher notes giving a more subdued sound, and lower notes sounding brighter, so playing arpeggios resulted in some crazy, but interesting, kick drum patterns.

With some drums recorded, I wasn’t sure what to do next, but a distorted bass (TAL NoiseMaker with TAP TubeWarmth) seemed like a good idea. I then added an arpeggio part (TAL NoiseMaker with TAP TubeWarmth again), which was initially continuous, and then tried to add some progression by adding some cutoff automation and a breakdown toward the end. However, I wasn’t pleased with the results (that’s putting it mildly, in fact!), and I came very close to scrapping it and hoping that I’d have time to come up with something better to replace it.

Eventually, it occurred to me that adopting a two-bars-on, two-bars-off pattern for the arpeggio would help a lot. That pattern fit in well with the existing bass line, and it opened up some space that I could fill with random crazyness from the Blofeld. I created a patch featuring heavy distortion (almost to the point of atonality), and then just played a few notes that fit in with the bass and arpeggio, flipping the modwheel (mapped to the filter cutoff) back and forth to go from low, rumbling gurgles through to crazy screams.

I did like the breakdown in my initial cut, but I thought it needed something extra, so I tried a trick that I used on texel — I added a Decimator plugin and used automation to bring the “bits” value right down in some places, which causes some really wild, crunchy distortion. The final touch was to add some extra drums, and I went for the easiest, most cliched option — a 909 kit — but with an Invada Tube Distortion to give it some edge.

After the overhaul, I still wasn’t completely happy with this track, but it was definitely in much better shape, and good enough to go on the album. It was fun creating such distorted sounds, but I’m not sure if I’ll be in a hurry to follow up with more industrial tracks.

rpm 2012 post-mortem, track 8: lagrange

“The Lagrange points are the five positions in an orbital configuration where a small object affected only by gravity can theoretically be stationary relative to two larger objects (such as a satellite with respect to the Earth and Moon).”

Though it’s a close-run competition with hohmann, I think this was the fastest of all the tracks to record — I sat down on day 11 and within a couple of hours, it was finished. This was really just an excuse to play with Argotlunar, a real-time granular processor that runs as a native VST plugin. While Loomer Cumulus works on pre-recorded samples, Argotlunar works in real-time on whatever audio you run through it, so it’s great for adding glitchy, cloudy, distorted granular effects to instruments.

In this case, I created a suitable pad sound using TAL NoiseMaker, recorded some improvised chords in to Ardour, and then tweaked Argotlunar’s settings to see what effects I could produce. Most of the time I spent working on this track was in automating Argotlunar’s settings, shifting through different ranges of settings to create different effects. I also added a Calf Vintage Delay, mainly toward the end, to give things a little more space.

Argotlunar automation

Four separate Argotlunar parameters were automated to produce different effects; the fifth automation lane here is for the Calf Vintage Delay

There’s not a lot more to say about this; it’s a simple track, but it does its job. Argotlunar was great fun to play with, and it creates some interesting sounds, but I don’t think there’s quite enough variation on it to really justify its length — it could easily be a minute shorter without losing anything. It does at least work well as a change of pace before heading in to escape velocity.

rpm 2012 post-mortem, track 7: oberth

“In astronautics, the Oberth effect is where the use of a rocket engine when travelling at high speed generates much more useful energy than one at low speed.”

I’d been wanting to write something in 6/8 for a while, and RPM seemed like as good a time as any to give it a go. I started this track by creating a simple triplet beat in Ardour, using the Hydrogen 909 kit, and then playing with ideas for a looping bassline using TAL NoiseMaker. Once I had a bassline, I added a simple pad part. Initially, I used presets for the bass and pad sounds, but they didn’t quite fit the sound I was after, so I soon replaced them with my own patches.

Even though I used a Hydrogen kit, I didn’t use Hydrogen to load it at first — instead, I used a new LV2 synth called DrMr, which works with Hydrogen drum kits. It’s early days for DrMr, and it’s promising, but I ended up swapping back to Hydrogen when I discovered that DrMr doesn’t yet respond properly to velocity information.

With the bass and pad in place (with some cutoff automation to spice them up), and the drums fleshed out a bit, I added the arpeggio part, using a TAL NoiseMaker preset, and then the lead, using a proggy patch on the Blofeld. After my experiences on tracks like hohmann, I wasn’t shy about using the pitch bender here, but I think it helps breathe some life in to the lead part, and makes the whole thing sound a bit like a Jean Michel Jarre track.

This was one of the last tracks I worked on; I started it on day 22, and wrapped it up at the start of my final sprint, on day 27. I wasn’t quite happy with the drums (I don’t think that 909 kit works as well here as it did on periapsis), but everything else came together pretty well. It’s not particularly outstanding, but it’s a good, solid track.