Fruity Candy episode 2: drum programming tricks

AudioPlayer.setup(“”, {
width: 290

So I flip-flopped on the format for the second instalment of Fruity Candy. I contemplated doing a screencast, but then realized that I generally don’t like to listening to the sound of my own voice, and the prospect of trying to record several minutes of it would likely result in me ripping out my hair. So for now it’ll just be another article, the topic of which is drum programming tricks.

I’m sure there are dozens if not hundreds of tutorials out there on this topic, but what I hope will set this one apart is some of the personal techniques I’ve developed. Most of what I cover here will apply to pretty much any DAW/sequencer, but the actual implementation will of course be specific to FL Studio (9).

This article assumes you’re working directly with drum samples, sampled from records, drums machines, etc. If you’re working with a drum plugin, like the excellent Addictive Drums, then many of these techniques won’t apply. Similarly, if you’re working with multi-sampled drum hits from a real kit then some of the techniques will be less relevant.


One of the most important techniques of programming electronic beats is creating good dynamics/movement. A lot of this comes from hihat programming and ghost notes. I’ll start with the former.

A steady stream of 16th note hihats sounds more like a broken machine gun than a component of a drum beat. There’s no movement or dynamics at all:

Get Flash

AudioPlayer.embed(“audioplayer_1”, {soundFile: “”, noinfo: “yes”});

So the first thing you want to do is program some variation, starting with velocity:

Get Flash

AudioPlayer.embed(“audioplayer_2”, {soundFile: “”, noinfo: “yes”});

Now, think about what happens when you hit a real hihat more softly – it’s a little more muted, a little less punchy. We can approximate something like this with a lowpass filter:

Get Flash

AudioPlayer.embed(“audioplayer_3”, {soundFile: “”, noinfo: “yes”});

Also, a real hi-hat will decay more quickly when you hit it softly. We can replicate this by copying the first hihat channel and adjusting the decay of the volume envelope. We’ll use the original channel for the harder hits, and the new one for softer hits:

Get Flash

AudioPlayer.embed(“audioplayer_4”, {soundFile: “”, noinfo: “yes”});

I’ve also removed a few notes to create a bit more push/pull.

Building kicks

The big kicks you hear in electronic music are usually the result of stacking/layering 2 or more kick samples. So for example, using the low-end from one and the punch from another.

Let’s start with a simple, boomy kick. As you can see it doesn’t have a whole lot of high-end to it:

Get Flash

AudioPlayer.embed(“audioplayer_5”, {soundFile: “”, noinfo: “yes”});

I’m going to layer a second kick with more high-end on top, but first I’ll use a lowpass filter to remove what little high-end the first one has. I’ll also increase the attack of the volume envelope to remove the initial transients (you’ll see why in a second):

Get Flash

AudioPlayer.embed(“audioplayer_6”, {soundFile: “”, noinfo: “yes”});

Now, I’ll layer my 2nd kick and adjust the decay so we only get the attack portion of it

Get Flash

AudioPlayer.embed(“audioplayer_7”, {soundFile: “”, noinfo: “yes”});

Basically, what I’ve done here is “cross-fade” between the two kicks using the volume envelopes.

Building snares

The same approach can be applied for snares, although in this case I just layer two of them outright and adjust the envelopes a bit to make them sound as if they’re gated. This helps to create more impact:

Get Flash

AudioPlayer.embed(“audioplayer_8”, {soundFile: “”, noinfo: “yes”});

Ghost snares

I’ve picked a complimentary snare, set a relatively short decay and applied the same concepts as I did to my hihats to create some movement:

Get Flash

AudioPlayer.embed(“audioplayer_9”, {soundFile: “”, noinfo: “yes”});


Try looping your samples to create some interesting rhythms. Here I’ve taken a shaker and used a cross-fading loop to make it sound as if somebody’s shaking it a couple times:

Get Flash

AudioPlayer.embed(“audioplayer_10”, {soundFile: “”, noinfo: “yes”});

Reversing and time-stretching

You can also achieve some interesting effects through reversing and stretching samples. For example, I’ve taken one of the snares, timestretched it a bit and reversed it (I did a few other things with it, see if you can pick them out):

Get Flash

AudioPlayer.embed(“audioplayer_11”, {soundFile: “”, noinfo: “yes”});


As you can probably hear in the above I added some swing using FL Studio’s “Master swing” control. Note that this only applies swing to the step sequencer, however, so if you want to add swing/groove to the piano roll you’ll need to use the Piano Roll Quantizer.

Just for fun

Okay so I’ve added a bit of bass stuff for fun and put it all together:

Get Flash

AudioPlayer.embed(“audioplayer_12”, {soundFile: “”, noinfo: “yes”});

It’s… some kind of dubstep… eh?

What’s next?

Download the FL Studio project and poke around. You’ll see I’ve used EQs and limiters in places to do a rough mixdown. That’s outside of the scope of this particular article, but I would encourage you to read up on using compressors and equalizers to mix your tracks.

Until next time…

Update – Jan 17
I received the following feedback from a user on the Image Line forums, which I will try to integrate shortly:

…when using two different kick samples, they may also have differing fundamental pitches.

When two kick drums with different fundamentals sound at the same time, you will either get some rather tasteless distortion or they will sound very disconnected (depending on how much is cut or shared between them) and it is very apparent on a PA and high-end consumer equipment.

So use a FFT or similarly functional spectrum analyzer on your kick samples to find their fundamental pitches and correct them to sound at the same pitch class

It also doesn’t hurt to do the same thing for the snares, but sometimes the distortion is wanted there so it’s up to taste.

Fruity Candy episode 1: the power of patterns

Welcome to the first (but hopefully not the last) instalment of Fruity Candy – a tutorial series on FL Studio.


I’ll start by sharing my motivation behind doing this: FL Studio has become such an integral part of my music making process, and in the process of using it for 8+ years I’ve gotten to know it inside and out. I’d like to share some of this acquired knowledge with the online community in the hopes that it will save somebody a bit of time, help them develop a more efficient workflow, inspire them, whatever.

What is a pattern?

I think part of the reason FL Studio has become so key to my process is because of its support for patterns. I started off writing music with computers around the time of trackers – Scream Tracker, Impulse Tracker, etc. These early music creation tools were all about patterns, actually, so much so that you had to enter note and automation data manually, step by step.

After using them for several years I made the switch to FL Studio, and while there was a bit of a learning curve with regards to how automation worked, the pattern-based approach was pretty much exactly what I was used to, but with lots of welcomed additions (virtual instruments, effects, piano roll!)

If you’ve used FL Studio, a tracker, or even a drum machine before, you probably have a pretty good idea of what a pattern is. In the context of music making it’s basically a series of data (typically note or automation data) that can be looped, or in this case, used a building block to create something bigger.

So why should you care about patterns? In a word: time.

A practical example

The biggest thing I’ve found with patterns is that they save a huge amount of time. Let’s say you’ve got a 1 bar loop that you want to repeat for 4 bars. In FL Studio you would simply program the beat once and “draw” the pattern 4 times on your pattern playlist.

With a conventional sequencer you would have to copy/paste this 1 bar loop 4 times. Each copy/paste would result in a new unique copy of that loop. If you decided you want to add an extra ghost snare to your beat you’d need to go into each copy and add it manually.

N.B.: some sequencers do offer a concept similar to patterns:

  • In Cubase you can create “shared” copies by holding ALT + SHIFT and dragging a part
  • In Ableton Live: if you “stretch” a clip in arrangement view it will automatically loop, however, if you cut the clip to insert a fill/variation you will end up with two unique non-shared clips. Blast!

Where patterns really shine is as you start to lay out your main sequence. To expand on the above example, in addition to your beat you may also have a bass line and some pad hits that you want to repeat. Easy: make 3 patterns and draw them on the playlist the desired number of times.

That’s good and all, but pretty boring. It needs some variation. Let’s create a copy of each pattern that does something a bit different – some filter automation on the bass, a fill on the beat and a variation for the pad hits At this point you need to make a decision about how you want to lay things out: as pattern clips or pattern blocks.

Pattern clips vs. pattern clips

Personally I’m a creature of habit and have gotten used to laying things out with pattern blocks (pattern clips didn’t exist in earlier versions of FL Studio). With this approach it’s very important that you keep related patterns together or you will end up with a nightmarish playlist. It also helps to name them well, colour them, etc. so you can remember what they are:

The main drawback with the pattern block playlist is that each row is tied to a specific pattern, as you can see above. Pattern clips, on the other hand, can be placed anywhere within the clip arrangement, often resulting in a much cleaner layout. Here’s the same thing laid out with clips:

The important thing to note here is that a pattern clip and a pattern block are the exact same thing. They reference the same pattern, it’s just a matter of how you choose to lay them out. There’s no reason you can’t use both together and I often do. For example, I will put my automation clips up top as this gives me the ability to edit the automation directly from the playlist:

In closing

I hope this article has shed a bit of light on patterns in FL Studio and how to use them. Here’s a zipped loop package (FL Studio 9) that shows these concepts in action. For illustrative purposes I’ve laid out the same thing both as pattern blocks and pattern clips.

Till next time…