June 10, 2008

Sfxr is an inspiring little program which generates old-school sound effects for use in games or music, or whatever. It's one of those delightful little nuggets of software that just does exactly what it says it will and nothing more. It's great fun and looks great too, and its source-code fits in a single c++ file! Finally, it's cross platform, running on all the major desktops. Wonderful stuff.

http://www.ludumdare.com/compo/2007/12/13/sfxr-sound-effects-for-all/

May 28, 2008

Yesterday was the project presentation for the final unit in my Computer Science degree, and the last bit of actual work. As such, I guess this would be a prudent time to post a bit of a life update.

STUDIES

Well, that appears to be it; my degree is over. Results come back in three weeks or so, but overall I'm pretty happy with how things went during the course of my part time studies. The prospect of having less stress and more time to do more interesting things is very exciting right now.

MARRIAGE

Probably everyone I know will know this by now, but it's worth documenting here anyway. In July during the Freeplay conference in Melbourne, on a bridge across the Yarra, I asked Moose to marry me. To my lucky suprise she said yes! To celebrate we had even more to drink and I somehow chipped a tooth. We had a mostly-family wedding in March and we're both really glad that that ordeal is over! The wedding I mean, not the marriage. It was nice though, and we got lots of sweet photos and caught up with lots of people.

TRAVELS

Later this year we are heading to Europe and the USA to do some campervanning and greyhound/motel hopping respectively. I'm going to play some gigs and stuff and try to drop in on a couple of interesting conferences. Next year our plan is to stop in London to work for a while. Should be fun!

MUSIC

Since Fenris has moved to Melbourne I am now playing solo gigs, except when he's in Perth or I am in Melboure. I've had a few solo gigs now; two at Shape and one at the Velvet Lounge, and they all went off without hitch. At the first Shape one there were people dancing and everything! The music is quite different from what Fenris and I do since I am using all software (Pure Data) and midi controllers whilst chr+fen is mostly about game consoles and delay/distortion pedals. Later in the year when Moose and I travel to Europe and the USA I'm planning on playing some gigs.

WORK

Since the beginning of the year I have been working full time on games technology, which is the fulfilment of a sort of dream of mine.

I am working 3 days per week for Interzone, doing web integration for their MMO. That is nice because it's a regular paycheque, and the work is interesting, and I get to leave it at the office when it's home time. It's kind of strange working in an office again after working for myself from home for so many years, but it hasn't been bad, and the social aspect is even quite nice.

I am working 2 days per week on the ABC/Screenwest/GWE contract with my pal Jessee from Studio Robot. This game is lots of fun to work on and utilises some AJAX technology that I wrote a few years ago. It's basically a Python web server which maintains a game state, and communicates changes in game state to multiple connected web clients - something that's a bit difficult in traditional web servers. It's really nice to work with an artist of Jessee's calibre and it makes the programming bits way more fun when you get to see something cool as the outcome. We just sent them the 4th milestone out of 8, so the project is well on it's way.

Because of the full time work I don't get as much time to work on Pixelbox these days as I'd like to. Though luckily Jacob and Patrick are there to share the small workload. Occasionally, maybe once a quater, I drive out to Wangarra to physically install a new machine or swap a hard drive. I'm due for one of those visits quite soon, actually.

There are a couple of other small bits of client work I am neglecting pretty badly at the moment. Sometimes I manage to squeeze in an hour or two somewhere, but I guess these will ramp up once I get a bit more time. One of these is a quite exciting art project which I'll post about here when it's finished.

GAMES

Since I'm working on games stuff full time I don't get a lot of time to work on my own games these days. I am looking forward to later in the year when I will get to do my own stuff again. I finished a small web based Breakout clone which I called Bricker, but that was mostly just to keep myself thinking about games and web tech. I have two different indie games ideas on the boil at the moment but I won't have time to work on them for at least a month or two. I also need to get UfoLiberation up on the website, either as a free download or put some kind of a payment gateway in place. Though once again, who knows when that will happen! The code is all finished, and Windows binary is even built; I just need to do the last 1% to get it out there.

So for the most part, that's what is going on in my life.

May 6, 2008

Facebook says: "TICK TOCK @ SHAPE (INDIE ROCK UPSTAIRS/ELECTRO DOWNSTAIRS)"

  • Where: SHAPE
  • When: Saturday, May 10 at 9:00pm
  • What: Night of Mayhem

Upstairs: SEX PANTHER MILE END SONS OF RICO CRISM (sic)

Downstairs: KATO & SPRUCE LEE (SYD) UPTON PILOTS

I am guessing that I (chr15m) will be on first. It's good how every solo gig I've had they have mis-spelled my pseudonym!

April 28, 2008

Because I've been making electronic music for a while now, a couple of friends who are giving it a shot were asking me about my techniques for writing drum beats from scratch. I thought I'd write down my experiences here; hopefully they'll be useful for someone else too. This is just my personal take on how to write beats, and I probably get lots of stuff technically incorrect! So use it as a starting point if you're new to writing beats if you like. I should start by saying that I totally abhor 4-on-the-floor house beats. I find them uninteresting. So I'll be focussing mainly on the spectrum between hip hop through dubstep and garage to drum and bass.

If you want to write four-on-the-floor beats instead you can summarise it as follows: "boom-tick-boom-tick", repeat, play around with the swing distance between boom and tick. That's about it.

Beat Maker

If you're just looking for a quick way to get royalty free hip hop or rap beats, check out my app Beat Generator. You can also use the app to try out some of the beats shown in this tutorial. Otherwise, scroll down to "Getting Started" to learn how to make your own beats.

Beat Maker Android app on Google Play

Get it on Google Play

Getting Started

I'll be posting here using the absolute minimal collection of sounds I use to capture the feel of certain types of drum beats. This is so you can start with the basic beats, and them embellish them with other sounds, rhythms, etc. until they sound nice and lush and full. As such, I'll be using a few basic symbols: b for bass drum, h for hi-hat (o for open hi-hat), and s for snare. Incidentally if you're going to try playing these beats on a real drum kit, those are the only essential pieces of the kit that you need to play these beats. I'll be capitalising letters that need to be accented, or played louder.

Before you begin you need a collection of drum sounds. My favorite resources for samples are freesound where you can find a vast quantity of mostly Creative Commons licensed material, and junglebreaks which has just about every widely sampled break beat ever. Of course, this is about making your own beats, so sampling entire breakbeats kind of defeats the purpose, but you can sample chunks out of the breakbeats to use as your basic sounds. Sometimes you can get interesting swing effects by sampling a bassdrum with a high hat attached or a snare drum with a hi hat and then writing a beat at a different tempo than the original sample. You can also create your own drum sounds using synthesizers or software synthesizers such as Pure Data. Google 'sound on sound synth secrets' for some really great and interesting articles about creating your own sounds. That's a post for another day though.

The easiest way is to get useable samples is to find a sample-pack or zip file somewhere on the net of nice sounding drum samples that go together. You want single separated samples of just a bassdrum on it's own, a snare on it's own and high hat samples on their own. Many samplers and synths come with these kinds of sounds built in, so you could use those.

So, now that we have sounds, let's get started with the beats themselves.

Hip Hop

Hip hop beats are mostly found hovering around the 90 BPM speed. You can go a bit faster or a bit slower, but if you want people to be able to rap over them, don't go too far away. An exception to that rule is of course, grime: more on that later.

A very simple hip hop beat:

1 2 3 4 
h h h h 
    S  s
B

That is about as simple as it gets. You'll find a lot of times there will be a double bass drum hit:

1 2 3 4
h h h h
    S  
B B

You can mix and match the two bass drum hits with the off-beat non-accented snare after the fourth beat. You can also exchange the off-beat non-accented snare for an off-beat non accented bass drum:

1 2 3 4
h h h h
    S
B      b

You can mix and match all of these and play around with those themes to try and create new and interesting sounds. You can also quite often leave off the 1st and 3rd hi hats to create even sparser sounds. One thing that I've found can be pretty awesome is to swing the off beats. What that means is push back the 2nd and 4th hats so they are later than they would usually be so that the hat would fall somewhere between beat 2 and beat 2.5 instead of right on beat 2. This can kind of make the song sound like it's changing tempo without actually changing tempo, for example becoming more 'relaxed' with more swing or more 'tight' with less swing. Artists like Prefuse 73 and Dabrye do that sound all the time and it sounds awesome. Hip Hop beats can also sound really good if you mess them up. For example, if you play these beats manually on midi drum pads you will introduce subtle variations in the rhythm and make it sound off-kilter and more natural. Guys like Flying Lotus use that technique to great effect.

Update: A more full sounding Hip Hop beat is as follows:

1 2 3 4 5 6 7 8
h h h h h h h h 
    S       S
B        bB

Big Beat

Big beat is the stuff that Fatboy slim wrote on his big famous album, and the Chemical Brothers used to write back in the day before they started writing 4-on-the-floor house music. It's also the sound on those big early Prodigy records. Big beat generally trundles along at 125 beats per minute but can be between hip hop and dubstep paces. Here's a loose transcription of that famous Prodigy beat:

1 2 3 4 5 6 7 8
      h h h
    S  s s  S
B          b

You want to make that first bass drum quite a nice ringing long one. Put some reverb on your sample, or if you're using a drum machine make the length really carry. Or just use a bass drum sample that is really long and boomy.

The amen breakbeat is a great example of a classic big beat sample. The important bit is the syncopated snares that happen in the second half of the beat, but you'll also notice that the amen break has two bass drum hits at the beginning of the beat just like the second hip hop beat posted above. As you can see there are lots of crossovers in sounds between the different types of beats. There's no hard and fast rules either. Many of the beats used in big beat tunes are identical to those used in the hip hop beats above, usually just a bit faster and maybe more artificial/electronic sounding, and visa versa. The beat on Fatboy Slim's "Right Here, Right now" for example, is exactly the same as the second hip hop beat above (but at around 125 bpm), whilst the classic big beat tune 'Leave Home' by the Chemical Brothers is more like this:

1 2 3 4 5 6 7 8
HhHhHhHhHhHhHhHh
    S ss ss S 
B

Those snares could easily be some other sample like a rimshot. That tune features a big carrying crash symbol on the first bass drum every four bars or so which is another technique frequently employed by big beat creators. Any time you have repetitive hi-hats, as in this example, then you might want to put some kind of subtle random envelope on them to make them all slightly different volumes, otherwise they can sound very mechanical. Of course, that might be the effect that you want.

2-step Garage

This and the next section (Dubstep) concern beats which are generally found around 140 BPM. This was a weird zone for me and I only learned how to write beats at that speed quite recently, so this stuff could be way off! Also, 'garage' is one of those ridiculous terms which has been used to classify everything from rock and roll, punk, techno, house, etc. etc. but here I am specifically referring to the UK 2-step Garage sound.

This sound is meant to be really busy. My favorite track of all time utilising this sound is actually a gameboy tune written with Little Sound Dj called 3step. According to the site it's by the Swedish chip tune group Puss. This is one of my favorite tracks of all time and I think it really exemplifies the techy sounds of 2-step garage.

What I really like about the garage sound, and why I've been writing more and more stuff using it lately, is the fact that you can't write good-sounding short loops with it. You have to write longer more complicated beats to get it to sound good, so that means that your tunes as a whole have to be more interesting. I also find that the second half of the beat has to kind of reflect the first half of the beat in some way. If they sit well together, complement eachother, then the entire 16 beat section can take on a zen like quality; a harmonious balance if you will.

In general you'll find that purveyors of this sound select really tight, short snappy sounding samples. You can often make your existing sounds snappier by using compression with a sharp decay, or applying some kind of exponential-decay volume envelope to them. The regular snare really holds 2-step together around the other sounds which shift and swirl about. Because there are often many sounds layered up together, you can't really express these beats with my bass, snare, hat syntax, but I'll give it my best shot. Something like this will work at 140 BPM:

1 2 3 4 5 6 7 8 9 A B C D E F 0
  oh  h h h  oh  hh   oh  ho  hh
    S       S       S       S
B      B  B              B

To make it sound good and garagey you pretty much have to swing the in-between beats. So beat 1.5, 2.5, 3.5 etc. - if they have a hi hat on them especially, you need to push that hi-hat out so it falls later than it should, closer to the next beat. what sounds really good is when you make it sound on the 2/3rds of a beat position. So imagine between beat 1 and 2 there are 3 ticks (instead of just 1.5 you have 1.3333 and 1.6666) - if you put the hat on the second tick (at position 1.6666) it will sound really nice.

I lifted this one off the wikipedia page for 2-step garage:

1 2 3 4 5 6 7 8 9 A B C D E F 0
oho   h  ho   h oho   h hoh   hh
    S       S       S       S
B     BB          B          b

The open hat sound in that example is really tight so make sure it's not one of those 'tssssssh' style hats which carries for a long time. It's more like a higher sounding, less snappy version of the closed hi-hat sound. You can also make more regular sounding garage beats that aren't quite so playful by having a more regular hi-hat sound looped:

1 2 3 4
h hhh  h

But make sure you put some swing on those in-between-beats sounds or it won't sound that brilliant.

I also like to throw things out a bit every now and then by putting an early snare in there. This gives a really off-kilter sound that might or might not be to people's taste and is probably a bit more difficult to get into. Almost all other beats on this page feature snares on the 3rd beat all the time, but I like this one because it falls over itself; it's more interesting.

1 2 3 4 5 6 7 8
h h h h h h   hh
    S      S
B       B

I am not sure that I've heard that beat used very much in the wild, or that it's even strictly a 2-step garage beat. One thing that distinguishes it from the other garage beats above is that it is short, but it can be looped and still sound good. The above beats pretty much only sound good if you play the entire 16 beat section together.

Dubstep / Grime

Dubstep and Grime are quite a new genre at 140bpm, and as such I am pretty new to writing this style of beat. Mostly I have been listening to, and then copying other people's stuff to try and get a feel for it, but I haven't completely got it yet. I do know that these genres use sparser beats and lots of triplets and sets of 3. Also they are more stretched out than traditional sounding beats, with the major snare on beat 5 instead of at beats 3 and 7. This kind of makes these beats sound slower than Hip Hop, but also faster than Hip Hop at the same time in some sections.

I think the consensus is that Grime is basically the same as Dubstep, but with people rapping, mc'ing, and toasting over the tunes.

So I guess an example would be something like this:

1 2 3 4 5 6 7 8
  hh hh       
        S
B            b

and this:

1 2 3 4 5 6 7 8
  H Hh h  H
        S
B  B  B

and then kind of rushy bits like:

1 2 3 4 5 6 7 8
H  H  H    
        S
B         BbBbBb

Notice the sets of three bass drums, with the middle on the offbeat in the second example above, and then the same thing with hi-hats in the third example.

That line of BbBb's in the third example is called a rush (in this case a bass-rush). You can put a snare rush, or rushy hats in there instead of rushy bass drums and it will still sound damn cool. You can also do rushy stuff at the beginning of the bar instead of at the end like the one above, so you'd move those bass drums to the start of the bar, replacing the initial bassdrum. Snare rushes especially sound cool when you ramp them up from low volume to the loudest volume about one beat before the end of a bar. You can use them to build tension in drum and bass and garage and stuff too, not just dubstep.

Dubstep producers also like to stick triplets in there which is where you play 3 drum sounds in the space where two would normally go. This is kind of hard to explain, but imagine we have a piece of beat between beats 3 and 4 that looks like this:

3 4
  H

B

Now let's zoom into that beat so it looks like this (the time between 3 and 4 is the same as above, we're just zooming in to look closer):

3 x 4
    H

B

Now we change it so there the space between these two beats is 3 ticks, not two. That is, the time between these beats is the same, but there are 2 ticks in there instead of 1:

3 x x 4
      H

B

This is sort of like having a waltz style beat (which is in 3/4 time) inserted between every beat. You can get interesting swing sounds by writing Hip hop, and other beats with this style of measure. Finally, we insert the triplet snares:

3 x x 4
      H
  S S S
B

As you can see it's sort of off the off beat in 3s, with the last snare sound falling right on the beat where the hat is. You can also start the triplet on the beat instead of finishing it on the beat. Finally, you can make other elements (hats, basses, etc.) do triplets instead of the snares demonstrated here.

What I really like about dubstep is that the beats are so sparse and whacky that you can pretty much stick crazy combinations of different rhythms and sounds in there and it still sounds awesome. You can get really interesting with your beats.

Breaks

I think there is supposed to be an entry here at 160 beats per minute and I used to think that was 'Jungle', but according to Wikipedia most people just call Jungle and Drum and Bass the same thing these days. So I guess what I'm thinking of is 'breaks' which I think of as an amalgam of Hip Hop, Big beat, and Jungle/Drum and Bass styles, generally played around 160 bpm. Hmmm, that's a bit of a weak entry at 160bpm isn't it? Oh well.

Update: Andrew Brewer says "Breaks is usually around the 135bpm mark. Its essentially a progression from big beat.. (often) sampled funk breaks layered up with big electronic kicks and an emphasis on the snare. I guess somewhere between, techno/electro and drum&bass but pretty much always with loads of swing and funk elements."

Jungle, Drum and Bass

Drum and bass really cranks along at 180 BPM. There are two basic types of beat that I use when writing drum and bass. The first one is the 'two step' drum and bass style which goes something like this:

1 2 3 4 5 6 7 8
h h h h h h h h 
    S       S
B         B

You can flip this beat around so it goes like this too:

1 2 3 4 5 6 7 8
h h h h h h h h
  S       S
B     B

Which is harder to mix because of the early snares, but still sounds cool, and can be used to disorient the listener if they think they're listening to one version of the beat and then it turns out they're actually listening to the other (when that is 'resolved' by another instrument it sort of goes 'ahh' in the listener's head).

The other major DnB beat is the classic sound where the same bit is repeated on the offstep after the first snare. So like this:

1 2 3 4 5 6 7 8
h h h h h h h h
    S     S
B     B

You can mix little off-beat snares in there like this:

1 2 3 4 5 6 7 8
h h h h h h h h 
    S     S  s s
B     B

That sounds good if you do it every four bars or so, dropping it in instead of the version without the off-beats.

I keep my hi-hats pretty steady in drum and bass. It's so fast that you need some kind of stability I think. Feel free to experiment with different hat rhythms, and even swinging hats of course.

Jungle generally uses sampled breakbeats which are strung together in a variety of ways. For example you can take the third beat above (the classic) and play the Bass-Hat-Snare piece sampled from the beginning of the breakbeat, twice where the bass drums start. This will get you started with a pretty convincing Jungle sound.

One notable feature of Jungle/DnB is that 180bpm is exactly twice the speed of Hip hop music (90bpm) so you can quite often mix Hip hop and DnB tunes and beats to great effect. You can get some really nifty kind of speed-up-slow-down elements to a song where it turns from Hip hop into DnB and back again. This mixing of the two genres can sound kind of similar to dubstep but at a different speed.

There Be Dragons

In the lofty heights above 190bpm you will find strange creatures like breakcore and gabber lurking. I leave investigation into these styles as an exercise for the reader. :)

Conclusion

Don't stick to these beats. Use these as building blocks to get stared, and then change them. Add your own sounds and rhythms to these basic beats to make them more interesting. Try different beats at different tempos than those which are listed above. Shift elements around. Leave whole elements out of the beat (e.g. bass drums, hats or snares) for a few bars or just for one beat. Try 'swinging' the beat. Listen to lots of music and copy beats from the songs you like. Come up with your own basic beat building blocks that you can use in future beat writing. Most importantly of all; have fun!

Update: Interesting replies to this post on the Linux Audio User's mailing list: