# Tempo fluctuations in drum programming



## Drew (Jan 20, 2020)

I'm not sure this is the right forum (recording, maybe?) nor am I sure how to ask this question, exacty. But, here goes nothing. 

A (non-musician, oddly) acquaintance of mine shared this video on facebook and late one night when I should have been asleep I stumbled across it and watched most of it, jumping around a little: 



The "groove" part of the songs he quantized to the grid still sounded more or less fine (or, considering we're talking about a killer rock drummer, sounded more or less no less great than the unquantized ones, I guess), but for me the eye opening part was how the _fills_ really went to hell when they became quantized, that having all the hits perfectly on the beat made them sound completely robotic, in a way that's VERY familiar to anyone who's spent any significant amount of time programming drum fills. 

"Aha!" I thought, "I can learn from this!" 

Except, Beato mostly continues to go on focusing about how recording to a grid kills the performance, but essentially skips over the question of HOW Bonham is deviating from the click in ways that give a performance life. 

I have neither the raw drum tracks, nor Beat Detective, and before I try dropping some Led Zep files in Reaper and analyzing by hand to try to figure out WTF he's doing, I figured I may as well ask here. 

Knowing that a lot of stuff is probably going to be idiosyncratic to a particular drummer... Is there any sort of "typical" idiosyncraticies in rock drummers when they're playing parts without a click? Like, when the fill is being quantized and having the life sucked out of it, what exactly is the quantization undoing? Do rock drummers tend to get a little ahead of or behind the beat? Or is it they tend to _rush_ the beat a little, so if a drum performance is in 120bpm, a measure for a fill might be more inclined to come in more at 123bpm and that's why it sounds less stiff? Or some combination of the two? 

If anyone has done a lot of extensive research on this stuff and could point me in the right direction, I'd be extremely curious!


----------



## tedtan (Jan 20, 2020)

In general, drummers will play in time on most of the kit, but will change one part of the kit (often the snare) to alter the feel. Coming in slightly early can be energetic, driving, aggressive. Dragging the snare slightly will create a laid back feel. This only works because it is going against he rest of the kit that is in time; if you shift the entire kit a bit early or late, then you'll only change when the beat occurs, not the feel. You could do something similar by tweaking the timing on the hats or ride, too.

As for fills, drummers almost always start out in time and gradually speed up throughout the fill, which helps push the song into the next section. This could be a steady ramping up of the speed or it could an uneven increase, depending on the feel the drummer is going for. You might be able to achieve this type of tempo increase by nudging the notes forward in time a bit, but this can leave a bit of room at the end of the measure that can work against the fill, so changing the tempo throughout the fill is often the better approach.


----------



## Drew (Jan 20, 2020)

tedtan said:


> In general, drummers will play in time on most of the kit, but will change one part of the kit (often the snare) to alter the feel. Coming in slightly early can be energetic, driving, aggressive. Dragging the snare slightly will create a laid back feel. This only works because it is going against he rest of the kit that is in time; if you shift the entire kit a bit early or late, then you'll only change when the beat occurs, not the feel. You could do something similar by tweaking the timing on the hats or ride, too.
> 
> As for fills, drummers almost always start out in time and gradually speed up throughout the fill, which helps push the song into the next section. This could be a steady ramping up of the speed or it could an uneven increase, depending on the feel the drummer is going for. You might be able to achieve this type of tempo increase by nudging the notes forward in time a bit, but this can leave a bit of room at the end of the measure that can work against the fill, so changing the tempo throughout the fill is often the better approach.


Yeah, I think those are two seperate questions, playing an accent ahead of or behind the beat, vs how accurately a drummer sticks to an imaginary metronome while playing a fill. The first is easy enough to do (I usually start by creating a drum loop, getting the basic groove of a song down that way, and then cutting it up to insert fills) but the second takes some thought. 

I've also heard people advocate adjusting the tempo to, say, play the choruses a couple bpm faster than the verses, not so its really audible but to create the impression of a little more energy, which could have a similar effect. 

I'll have to experiment a bit though. I'm gearing up demoing for another album, and my process had always been to start with a skeletal "scratch" drum track and edit fills and everything at the very end. Sounds like there's a case to be made, though, that a better approach might be to start with a drum track and get a little tempo variation baked into THAT, and then track to your programmed drums as if they were a live drummer not playing to the grid.


----------



## tedtan (Jan 20, 2020)

Drew said:


> I've also heard people advocate adjusting the tempo to, say, play the choruses a couple bpm faster than the verses, not so its really audible but to create the impression of a little more energy, which could have a similar effect.



I do this, too. I tend to like having these tempo fluctuations as they help provide a bit of push and pull to the song. It's subtle, but makes it seem more natural.




Drew said:


> I'll have to experiment a bit though. I'm gearing up demoing for another album, and my process had always been to start with a skeletal "scratch" drum track and edit fills and everything at the very end. Sounds like there's a case to be made, though, that a better approach might be to start with a drum track and get a little tempo variation baked into THAT, and then track to your programmed drums as if they were a live drummer not playing to the grid.



I'm old school here. I actually came up recording to a cassette deck, and played that back on the stereo while playing through my amp to "overdub" on the original track. When I upgraded to my first 4 track cassette recorder, it was a huge step up, though the drum machines of the day still left a lot to be desired. Anyway, my point is that I still make a demo, get the drums right there, then start over on the final recording, and the only thing that I bring into this final recording from the demo session is the drum MIDI. In fact, the my purposes for making the demo are twofold: playing with the song arrangement to get the best arrangement I can, and getting the drums right. If I can accomplish those two things, I'm happy.

This approach can be more work, and it is certainly not the only workable workflow, but it works for me, and is worth experimenting with if you want more natural sounding drums.


----------



## Drew (Jan 21, 2020)

Thing that has me a little hesitant is the demo I'm working on now has scratch guitar and bass down, and I'm not sure how Reaper will handle it if I start changing BPM here and there in the project, if it'll stretch or shrink at the tempo changes, or if i'll have to get really creative. One way to find out!


----------



## GunpointMetal (Jan 21, 2020)

It's really all about the drummer. One of my bands, the drummer is pretty much bang-on the grid with his snare, but he likes to push fills that most people would play as straight 16th notes to 16th note triplets, and he does a lot rolls/fills that have like the first half as triplets and second half as straight 16th notes. And almost all of his fill build in velocity/volume, so they come in a little softer than they end. He also does a lot of subconscious pickup beats with his feet. So subconscious then when we listen back to takes he asks if I'm adding stuff, lol. He'll just drop these little "flam" type kick hits on the last 16th note of a measure before starting the next one. My other drummer is pretty much consistently 5ms ahead of the metronome with his snare on fast parts and right on the grid on slow parts, and his fills are very uniform in volume, but he drags a little bit at the beginning and rushes towards the end to hit the one on time. Both guys have a very different approach to cymbal choice, accents, where to use toms, etc. Every drummer is a little bit different, and you really only notice on stuff like fills/transitions. Basic groove stuff is pretty universal.
Edit: in reaper if something I've programmed sounds too robotic I'll use Reaper's humanize feature, but only in regards to timing. 5-10% is usually enough. The velocity humanization in Reaper doesn't really make any sense, though. If something is more laid back/groovy I'll drop the notes on the grid with snapping turned off.


----------



## tedtan (Jan 21, 2020)

Drew said:


> Thing that has me a little hesitant is the demo I'm working on now has scratch guitar and bass down, and I'm not sure how Reaper will handle it if I start changing BPM here and there in the project, if it'll stretch or shrink at the tempo changes, or if i'll have to get really creative. One way to find out!



Reaper can definitely stretch/compress the audio, but you will probably have to put in the stretch markers manually. But I've never tried this, specifically, so I'm curious to learn how it works.


----------



## c7spheres (Jan 21, 2020)

Drew said:


> ... the question of HOW Bonham is deviating from the click in ways that give a performance life.


 
Ya, Beato doesn't focus on how Bonham deviates from the click really, but looking closer at the video when comparing the original to the quantized waveforms the basic gist of it is that the breathing, or human feel, comes from a combination of mostly the kick, but also sometimes the snare, being late, or after the beat by a significant amount, but also a combination of them being on where it counts. Bonham didn't record to a click so it's all free form. So in summary if you want it tight make it perfect and if you want it to breath make mostly the kick late. To make it breath or loosermake the snare a little off/late/sloppy, but on a per beat basis.
- What this is telling me is that Bonham probably was listening to Page mostly and then looking at Jones to make sure it sounded good. I'm guessing Jones and Bonham had to work together to make Page's guitars all fit without train wrecking, because although I know it's not a popular opinion but Page was usually really tight. I think he was the conductor of the band, and Bonham is responding like a perfomer to a conductor, which is basically the opposite of rock music. Watching live clips of Zep seems to me like it's like that. It's like they had a general gist or outline of what they wanted and could vary it up and fluctuate using little tricks to make it work, Like jazz people do. It's why they're always laughing on stage and nobody else knows why! Those little tricks work to the point it's funny. I've laughed hard doing that stuff before. It's great.


----------



## Drew (Jan 21, 2020)

GunpointMetal said:


> Edit: in reaper if something I've programmed sounds too robotic I'll use Reaper's humanize feature, but only in regards to timing. 5-10% is usually enough. The velocity humanization in Reaper doesn't really make any sense, though. If something is more laid back/groovy I'll drop the notes on the grid with snapping turned off.


My current process is to go through, cut up and edit in fills and variations out of my basic groove loop, and then when everything's said and done reglue it all together and add a small amount of timing humanization (it REALLY varies based on the tempo, and if you're getting away with 5-10% I'm guessing you're working at far faster tempos than my typical 80-120). I'll also add a touch of velocity humanization, though with Superior adding its own it really doesn't matter so much, and I don't want to add a really perceptible amount anyway since I'm very consciously controlling dynamics in the "performance" anyway. 

I guess the logical thing to do here is to sit down with a few tracks from drummers I admire, and get their performances up against a grid and do some analysis on my own.


----------



## GunpointMetal (Jan 21, 2020)

Drew said:


> My current process is to go through, cut up and edit in fills and variations out of my basic groove loop, and then when everything's said and done reglue it all together and add a small amount of timing humanization (it REALLY varies based on the tempo, and if you're getting away with 5-10% I'm guessing you're working at far faster tempos than my typical 80-120).


 120 is about the bottom of my tempos. So that makes sense.



Drew said:


> I guess the logical thing to do here is to sit down with a few tracks from drummers I admire, and get their performances up against a grid and do some analysis on my own.


 For sure. I'm so used to looking at my drummers' playing on grid that I can program stuff that sounds like what they would play. Just for shits and giggles on our previous recording I programmed a whole song just to show Aaron I could do it, and I got about 3/4 of the fills right as far as what he would play where.


----------



## gnoll (Feb 1, 2020)

GunpointMetal said:


> It's really all about the drummer.



Yeah!

Different drummers sound so different, and I would imagine that makes this stuff a bit difficult. And I think "feel" can be hard to put into numbers without going into some pretty deep analysis.

I've never done this but I think if I wanted to bring life to fills I would probably try having things go slightly towards a shuffle feel, so lettings in-between notes land a bit behind the beat and then accented notes on or maybe slightly ahead of the beat. I think that was kind of what was going on with the Bonham kicks in the video, the "du-dum" kind of thing?

I'd also probably try letting the middle of a fill drag a little, only to then have it speed up at the end going towards the start of the new measure/section (but keeping the overall bpm for the whole fill the same), especially for more roll type fills. I think that might give a cool feeling of almost "falling into" the new section.

And I would definitely work a lot with dynamics, I love a lot of dynamics in fills.

But ya, I don't really know since I haven't done this stuff, and I have a real drummer now, so I don't need to, ha!



Drew said:


> I guess the logical thing to do here is to sit down with a few tracks from drummers I admire, and get their performances up against a grid and do some analysis on my own.



Yeah and try moving stuff and see what different things sound like, and find out what you like, or what works for a certain part! Seems like hard work this, but I bet you could make some pretty sweet programmed drums if you put some time into this.

It would be interesting to hear if you come to any conclusions or further insights about this stuff.

Btw, I also do the "change bpm slightly between sections" now and I think it's great.


----------



## Drew (Feb 1, 2020)

gnoll said:


> Yeah and try moving stuff and see what different things sound like, and find out what you like, or what works for a certain part! Seems like hard work this, but I bet you could make some pretty sweet programmed drums if you put some time into this.


I put a TON of time into drum programming anyway.  This isn't the final mix, I think, but the most final I have up on the net somewhere, from a project I did with my dad and uncle (who wrote and sang this one - he's on acoustic and vocals, I'm on bass, electric, and drum programming, and my dad's on keys).

https://drewpeterson7.files.wordpress.com/2018/12/02-the-broom.mp3

This is to the grid, but (IMO) still sounds pretty "normal." I just think I can do a lot better, partly by finding a way to loosen up those fills, and partly because I feel like I don't know WTF to do with crash symbols, lol. But, the fills are the thigns that sound the most programmed to me, where staying on the grid really seems to hurt the performance the most.


----------



## gnoll (Feb 1, 2020)

Drew said:


> I put a TON of time into drum programming anyway.  This isn't the final mix, I think, but the most final I have up on the net somewhere, from a project I did with my dad and uncle (who wrote and sang this one - he's on acoustic and vocals, I'm on bass, electric, and drum programming, and my dad's on keys).
> 
> https://drewpeterson7.files.wordpress.com/2018/12/02-the-broom.mp3
> 
> This is to the grid, but (IMO) still sounds pretty "normal." I just think I can do a lot better, partly by finding a way to loosen up those fills, and partly because I feel like I don't know WTF to do with crash symbols, lol. But, the fills are the thigns that sound the most programmed to me, where staying on the grid really seems to hurt the performance the most.



Sounds good man!

I totally get what you're saying about the fills. This seems like a prime example of music that suffers from the drums being on the grid. I would probably try letting the in-between notes drag a bit behind to complement the chill feel of the music. The dynamics sound really good though. And I'd probably ease up on the crashes a bit


----------



## Drew (Feb 2, 2020)

gnoll said:


> Sounds good man!
> 
> I totally get what you're saying about the fills. This seems like a prime example of music that suffers from the drums being on the grid. I would probably try letting the in-between notes drag a bit behind to complement the chill feel of the music. The dynamics sound really good though. And I'd probably ease up on the crashes a bit


I need to spend a LOT of time watching and listening to how a real drummer uses a crash cymbol, I think. Over and above getting more comfortable fudging the timing on fills. Its just tough work when your instrument is a mouse.


----------



## GunpointMetal (Feb 7, 2020)

I just thought of this thread this morning...in Reaper (and most DAWs, I imagine) you can edit tempo envelopes in the master track so you could drag or push the tempo slightly on fills instead of reprogramming them.


----------



## Drew (Feb 7, 2020)

GunpointMetal said:


> I just thought of this thread this morning...in Reaper (and most DAWs, I imagine) you can edit tempo envelopes in the master track so you could drag or push the tempo slightly on fills instead of reprogramming them.


That's kinda cool, actually. But this wouldn't impact non-looped .wav files, right? So, if I'd demo'd out a tune, and had scratch bass, rhythm, and lead guitar tracks, if I through some light tempo automation on top, it wouldn't do any stretching to the raw .wav files, so everything would fall out of sync, right?


----------



## GunpointMetal (Feb 7, 2020)

Drew said:


> That's kinda cool, actually. But this wouldn't impact non-looped .wav files, right? So, if I'd demo'd out a tune, and had scratch bass, rhythm, and lead guitar tracks, if I through some light tempo automation on top, it wouldn't do any stretching to the raw .wav files, so everything would fall out of sync, right?


 No, and yes, lol. If you have the project Time settings set to "Beats:Barts" it will, but it will change the playback rate of the whole .wav file if its one continuous file and it messes with the pitch more than stretch markers. But, you could do it manually with stretch markers if you set the project Time Settings to TIME and drop a stretch marker where the tempo fluctuation starts and ends. After the drum editing thread in the Recording forum the last week or two and some ideas from @pipelineaudio I messed around with some stuff and was able to stretch up to about 20% without really noticeable pitch issues (tonal optimized mode, Elastique Pro). It worked so well on guitar DIs I went a little crazy in my experimenting and basically built PERFECT guitar tracks (which sounded amazing and also fake AF and will not be used anywhere, lol).


----------



## Drew (Feb 7, 2020)

I'll have to try that. I'm thinkig from the standpoint here of recording scratch tracks to a simple MIDI loop, fleshing out that MIDI loop into a full drum performance potentially including tempo adjustments, and then blowing out all the original scratch tracks and recording final bass and guitar performances, so that could work.


----------



## GunpointMetal (Feb 7, 2020)

Drew said:


> I'll have to try that. I'm thinkig from the standpoint here of recording scratch tracks to a simple MIDI loop, fleshing out that MIDI loop into a full drum performance potentially including tempo adjustments, and then blowing out all the original scratch tracks and recording final bass and guitar performances, so that could work.


 Ideally that's how it works for me. Get a "skeleton" with scratch tracks, mess with it in the daw till I'm happy with the arrangements/direction, then retrack all the non-MIDI instruments. I just caught a clip of Buster from Humanity's Last Breath talking about mixing the newest Vildhjarta single and that they had all sorts of pitch artifacts from slowing down or speeding up parts after recording and I was just thinking....screw that. If a band asked me to "mix" a project like that I'd say no, or ask for lots more money, lol.


----------



## Andromalia (Feb 8, 2020)

I remember wanting to record a cover of an old Metallica song (Think it was Orion) and I got the midi drum files to practice. I pasted the real song in the daw and went to practice... for 30 seconds. the sync went back and forth all over the place, early, late, on time...

... and it doesn't surprise me: I have a WAY easier time to record to a drum track than to a click. Probably because that's how I'm used to listen to music. Keep in mind I am talking double tracking etc here, so it's not a matter of precision playing, but of going slightly faster or slower *every time* on this or that stimulus from the drums. (My natural tendency is to be in front of the beat)

What *is* important is that all the band does it the same way, otherwise you're in trouble.
Listen to Orion with a metronome. Just make sure you have put your guns away before you do, if you own some.


----------



## bostjan (Feb 8, 2020)

Songs recorded without a click definitely vary in tempo quite a bit. But I truly don't think there is any way it varies consistently.

Some drummers speed up throughout the course of a song. Some slow down.

Some drummers rush fills. Some drag them.

Some drummers speed up the chorus. Some slow down.

It's all part of what makes the song sound like a living thing. You might say it depends on the context, but, I say it creates the context around which the song is created.

If you want to program drums to sound like a real drummer, add in these quirks, do it somewhat consistently, but not 100%, play along with your drum tracks, adjust the characteristics more, erase tgem, improve, repeat, etc.

Forgive the shameless plug, but in 2018, I released an album with a prototype AI drum process I made... you can hear it here: https://naegleriafowleri.bandcamp.com/album/life-cycle. It's not a straightforward process at all, but I'll try to explain what I was trying to do and the limitations and what went into it.

So, this took hundreds of hours, and the result isn't great. With another thousand hours and ten times as much data, I think it'd maybe be more useable. The first thing was to make something that could parse guitar into a tempo to pattern over. There were some utilities already out there that could do so over a steady pattern of pulses, but what about riffing. If I told it a starting tempo and it looked at the audio in real time, it almost always got confused and sped up. So I pinned the tempo at set timestamps and gave it the entire audio clip to digest. Then, working forward and backward from pinpoints, the tempo would fluctuate much more naturally. My overall goal was to develop enough data to teach it what to look for when mapping tempo, but I never made it quite that far.

Next, by doing Fourier analysis on the detected pulses, it'd categorize the notes into categories relative to each other, and find repeats to map time signatures. From the pattern of ups and downs in the audio, it would fit snare and kick over a backbeat from a library of patterns. The null state for any time signature was snare on 2 and 4, essentially, and it perturbed the state from there.

All of this was heavy on trial and error. I had to feed the thing the tempo pinpoints, the audio, the library of midi fills and a binary file of backbeats, and then it'd output a midi file. If it sounded like garbage, I manually cleaned it up, and fed that back into another program that tried to learn what was going on. And, up to this point, everything was on a grid.

I was working on another program to humanize the midi track off of the grid, based on the same audio clips, which I thought could just snap to my playing, but I wasn't happy with that result. I wanted something that sounded more organic. What I ended up doing on some of the songs was to push the notes' timing somewhere between (I'd input a percentage, for example 50%) the grid note and my performed note on guitar, then use the DAW's humanize effect to shift those notes randomly. Again, a *lot* of trial and error. 

As I tried to develop this program, I tried playing with pushing and pulling the tempo over different "zones" between timestamps of song sections. Of course, these were based off of static audio files for guitar and/or bass. I either never got the hang of it or just couldn't get a good result with that, and eventually edited that out of the code.

By the time I got to the last song, I quickly programmed drums, input the midi for that into my program along with the guitar and bass audio tracks, and had the program itself add or remove notes based on the algorithm it developed itself from my feedback, I removed tempo perturbation, and had the other program humanize the midi track I chose from several outputs.

The basic flow was to program simple scratch drum tracks, record guitar and bass, pin the starts and stops of sections by noting the timestamps, input the pins audio and sometimes original drum midi into the program with the midi and binary libraries, put the output midi into my DAW, listen to it against my other audio, repeat until I had something I liked, run that through my other program to push notes closer to my audio, humanize it in the DAW, then do the rest of the processing.

In other words, all of the tempo dragging and pushing I had played with made the end product sound worse, unless it followed my own audio, unless it followed it 100%, then it sounded even more robotic and lifeless.


----------



## Drew (Feb 12, 2020)

Very interesting post, man. Thanks!


----------

