Music for programmers

12 November 2017 7:26 pm

Each week I'm trying to learn something new, or apply what I already know in a new way. This week I've been on a bit of a journey to create music - well, let's not call it actual music. How about "rhythmic noise that isn't entirely terrible". That's more accurate. Yes. You've seen "programmer art", well there's also "programmer music".

I began the week by creating nasty wailing sounds on my PC using Pure Data. Pure Data (or PD as it's known) is a sort of visual programming language for manipulating sound, where you place down functional blocks and link them together. The blocks can do simple things such as multiply or add numbers, and also do quite complex things such as generate a sine wave, take MIDI data from a keyboard, or turn numbers into actual sound. How you link them together is how sound is created.

This is PD. It is quite capable of making noise that gives you a headache!

After doing some hardcore Google searching and reading a few websites, I figured out how to make a really simple single-voice synth with an ADSR envelope. I could mash keys on my MIDI keyboard and noise came out my speakers. It was quite entertaining, in the same way a five year old finds banging the keys on a piano entertaining. It didn't really let me make anything musical since that requires some actual musical ability. Pure Data is weird, like proper weird. The kind of weird the Internet used to be full of back in the 90s where someone sat down and thought "creating audio... what's the most complex way of doing that? OK, let's make it even more complex and release it to the world". It's one of those things you come across repeatedly, but all the websites that teach you are in HTML 2 and have date stamps of the early 2000s.

The next thing I had a play with was the digital audio workspace known as Reaper. This took a few hours of YouTube watching to figure out, but once I discovered it could load VST instruments, I installed a bunch of chiptune making instruments and kind of went mad with it. Again though, my own musical ability is somewhat lacking and all I produced was something resembling a ZX Spectrum that had crashed.

Hours of timewasting here!

Once upon a time my 12 year old self was somewhat capable of playing the keyboard and piano, so I'm not totally without musical ability. It's just nobody really wants to listen to renditions of popular folk tunes and hymns while shooting aliens. Through some more YouTube clicking, I found some pretty helpful videos that quickly showed some basic music theory. It kind of helped and the crap bleepings turned into more rhythmic crap bleepings. It was an improvement, I could listen to the noise for more than ten seconds but I then came across the second problem - if creating tunes is hard, finding nice sounds to create those tunes with is even harder. I suppose that's why I can watch an hour of Deadmau5 streaming his creations, and most of the time he's making fart noises.

  • Problem 1: I know what music should sound like, but my ability to replicate it is limited
  • Problem 2: When I do manage to string some notes together, the "instrument" lacks any sort of interest

In an attempt at solving problem 2 (problem 1 will fix itself over time) I thought about limiting what I can do. I guess it's the old problem of having too much choice - if there's an infinite number of settings in a synth, it takes a long time to find a sound that is good. If I limit the sounds to a small set, then I have to make do with them and can get on with actually learning how to make music of some sort.

I had a think and remembered there were some tablet based music creation tools. The one I found was Nanoloop which, considering it came from the original GameBoy, is about as limited as it gets. There's a basic synth with five sliders and a short pattern editor. It makes a variety of 8 bit fart noises, but it's easy to modify them to make sounds that sound like other people's music. I then remembered that somewhere along this journey I want to make a game, but don't want to spend months making music for the game.

Somewhere out of my head came the memory of the Pico-8 fantasy console. It costs money, but not much, and the games people create seem to look better than things I was making back when the 1 Game a Month challenge was a thing. So I bought that, and I've spent the evening learning how to make tunes with that. The Pico-8 is so simple and limited that it comes with 8 built in voices and a really basic sound tracker. I don't have screens of confusion to learn, or hours of messing with synth knobs to create a particular sound. OK so the tunes all sound quite samey, being of the 8 bit chiptune style, but I quite like that, I don't mind. Also it has the rest of the stuff I need to make little games.

Next week I think I'll try and make something in Pico-8, even if it's just someone's tutorial video. It has exporters for HTML5 so I'll figure out how to get the things I make uploaded here so others can play them.