A keen drummer


A little while ago I decided to stop working on the drummer and move on to the bass player (which is a lot of fun, btw!). The drummer doesn't do everything I want, of course, but it's starting to groove and do some nice things. If this was a band, it would be a beginner, but very keen. That said, it's super precise with timing and dynamic control, so I guess not a beginner drummer after all. ;)

I wanted to upload a sample, but I thought it'd be interesting to see how a groove can be adjusted in Whole-Play, so here's a step-by-step groove construction.

A basic groove

The simplest instructions I can give to the drummer is: "give me a groove on 4/4 at 110 bpm". One nice thing already is that I can ask for any time signature. And if you've heard any of my music, you know that's important. :) Let's keep it simple though, and for this example I'll do 4/4.

Basic groove114.54 KB

A basic groove in 4/4. By default the hi-hat has an accent on the beat.

This gives me a really basic groove, although you can hear it has a bit of accent on the hi-hat, and if you've good a good ear, some variability in the volume. No rhythmic imprecision yet though, I haven't gotten around to implementing that yet (but it's on the list).

The interest pattern

That's all fine, but a bit on the boring side. Meet the interest pattern. An interest pattern looks like this:

x--x --xx x--- -x-x

This is an abstract representation of the important points in the time signature. Each group of 4 characters represents a beat, and the x's mean: "make this part interesting". This is a way to add variety to a groove, but in a more or less controlled way, as opposed to just adding things randomly. I can also specify how I want this interest pattern to be applied: adding extra kicks, moving kicks/snares around, adding ghost notes... The result would be something like this:

With interest pattern203.35 KB

Here an interest pattern has been applied to the groove. The interest points are executed randomly: adding an extra kick, moving a nearby snare, adding a ghost note...

Spicing it up

There's more parametres I can set on the drummer, for example:

  • How much accent to use on the hi-hat and where to place it.
  • Whether to use or not ghost notes on the snare, and how many.
  • Whether to use rimshots, or ride instead of hi-hat, cymbals, etc.

All of this can be changed dynamically, which will be necessary once Whole-Play becomes interactive. Right now I set this parameters in advance, but eventually they will be decided and adjusted by the composer component in real time. As an exemple, here's the previous groove with accents every three hi-hats (welcome polyrhythms!), some random extra ghost notes, little snare rolls and some cymbals.

Spicing it up307.3 KB

Here the groove with the interest pattern has been spiced up by adding short snare rolls, cymbals, and accenting the hi-hat every three eighth notes.

This is all generated without explicitly setting any patterns (other than the interest pattern). And it would work on any time signature, nice! Here's what happens if I change the time signature to 7/8:

In 7/8297.02 KB

Grooves work with any time signature. 4/4, 7/8, 2+3+3+2+2+3/8, Whole-Play doesn't care!

(I've also set the hi-hat to 'auto' instead of every three, and changed the interest pattern, which needs to match the time signature).

Still in the TODO list: add fills, more sophistication with the hi-hat, with the cymbals... but that'll be in the future, now I really want to dive into melodic instruments, which pose a whole new set of situations to consider. This is seriously fun! :)


Add a comment

[ change image ]

PS: no links allowed in comment.

All comments


Seriously impressive is what it is! Do you realise the implications this could have for a commercial device? In any case, wonderful work my friend. Love it!


Thanks Bill! At the moment I'm just loving the development process, but I might think of possible applications in the future. Also as a pedagogical tool, there's lots of possibilities!


That's great Gonzalo! You always amaze me at what you can do!

End of page. Back to page navigation.