How to sync a gate sequencer with a noisy drum recording?

I used a field recorder to capture audio from an outdoor drum circle I attended. I took a 3-minute excerpt of the audio and saved it in a WAV file, and I’m using Bidoo Player to render that excerpt in VCV Rack.

I thought it would be fun to try to augment the funky rhythms with a gate sequencer operating at the same rate as what I recorded. Of course, these are a bunch of human beings playing together with a fairly consistent but variable rate, and with lots of extraneous sounds including people talking and yelling. (That’s the part that makes it alive and fun to me.)

I have tried using various envelope followers to match the beat I’m hearing, but without much luck. I also tried using Vult Tangents as a bandpass filter to home in on the low-frequency part of the rhythm that seems most consistent, and feed the filtered result into the envelope follower, but the recording levels are all over the place. So in parts of my recording I miss triggers that should be there, and in other parts I get lots of extraneous triggers.

My best guess is that what I’m trying to do is too ambitious; that it’s one of those things that’s “simple” for me as a human but virtually impossible for an algorithm: I can hear the beat quite clearly, but trying to automate keeping a synth beat in sync with it is elusive.

But I thought I would throw it out to the community to see if anyone has suggestions for what modules and/or techniques I could try.

:thinking: Would a compressor help with that? Either before or after the bandpass filter.

For the “extraneous triggers” there must be several modules that let you set a minimum time between triggers and not pass any through that are under the minimum. Not that I can think of any at the moment.

Compression can help, but a gate after the compressor would denoise the clock somewhat. But I’d be tempted to pull the recording into Ableton Live and warp it to a constant tempo, which you can play back in Rack. I find impromptu Clocked to match really well to Live’s idea of tempo.

I think Omri is doing something similar to what you are after in one of the segments in this video:

2 Likes

Hi, if the envelope follower way does not work for you, you can try this approach:

Import your loop into Simplicitor, set up a slice for each beat, or trigger that you want, and then use the eoc output to play the slices consecutively.

Use the same eoc trigger as your clock for a gate sequencer.

Setting up the slices is quite tedious if its a very busy loop, but it works. set the right slice maker marker to the end of the first beat, press save, then slide the left slice maker marker all the way up to the right marker, then move the right marker to the end of the second beat, hit save, etc.

Option B: import the loop into a DAW and extract the groove, (in Studio one it’s called “groove extract”). Save this as a midi file, and load the midi file into any midi player in Rack.

2 Likes

Thanks everyone for posting your ideas! My goal over the next week is to work through all this and see if I can make progress. Some initial thoughts:

  • @john_rose I hadn’t thought about adding a compressor. It makes sense that this might bring the drum hits to a more consistent level. Thank you!
  • @marc_boule That Omri video was very interesting because I learned about the Bogaudio PEQ6 module with the follower expander. That looks very promising!
  • @auretvh I will have to learn more about Simpliciter. The 3-minute clip has probably more than 200 “bars” of rhythm, so I might go crazy setting up that many slices. On the other hand, maybe if I break it up over several sessions I can get into a flow state, LOL.
  • There were a couple of mentions of DAWs, and learning to use a DAW is on my bucket list for the next year, but I’m just not there yet. I want to see if I can do this all in VCV Rack. In the past, I have been accused of using a hammer when I really need a screwdriver, and this could be yet another case, but often it’s a good learning experience.

I wanted to write now to express my appreciation. I will report back here when I have any interesting results, which will probably be about a week from now. Thanks again everyone!

Sorry, I should have read your post better regarding the 3 min recording. I was under the assumption that it was a one or two bar loop. So ignore the simpliciter idea, you’ll drive yourself crazy.:crazy_face: The DAW extract groove idea won’t work either for such a long recording.

1 Like

Maybe cut it into smaller pieces and feed it to Autobreak or Autobreak Studio by Voxglitch then sync it to the clock. Autobreak is a cool thing, it automatically adjusts a loop depending on a tempo

With Autobreak studio you also can use 8 samples, I think. So if you switch a sample after the end of each previous one, you’ll get a loop that is 8 times longer, in a way. Not a continuous loop, of course. But I don’t think you can do it without any trickery

ShapeMaster’s side chain input has an envelope follower with lots of control (click the settings cog icon next to the input to access gain, filters, hysteresis, hold off and sensitivity) and if you set the scope to side chain then you get a visual representation of when triggers will be generated as you see the incoming audio, the envelope follower and the trigger level threshold.

One of the purposes the side chain input was designed for was generating clocks from live drums where timing is not consistent and/or replacing a live drum groove with synth drums (while maintaining the groove).

I rarely see it get used, but this use case is precisely why it was included.

That said if recording levels are all over the place and you have ambient noise peaks that conflict with the drums you might well still run into problems - but I reckon ShapeMaster will probably give you as good if not better chance than anything else. And it’s the only option where you can SEE what’s happening.

8 Likes

One thing that certainly helps to cut down too many, nervous triggers is to force some space in between them. Submarine’s Pulse module ftw.

1 Like

Yep - that’s what the ‘hold off’ control does on SM too. It lets you set the minimum time after a trigger before which another trigger can happen.

2 Likes

Me too! In my previous 3D modelling and animation professional lifetime, I developed a commercial product extension that we named HA:MR as a pun on my idea of a technology that could be used in many ways as a 3D modelling and animation API or ABI, as a 3D web browser plugin, as stand alone applications, as a game engine, as a metaverse, with Python embedded and extended for scripting. The company owner was always fond of saying “In the end, all tools become a hammer.”. And of course, Maslow said “If the only tool you have is a hammer, you tend to see every problem as a nail.”.

I used my hammer for everything and I saw lots of nails :wink:

3 Likes

This sounds like exactly what I need. I had thought about purchasing ShapeMaster PRO anyway, so I might as well pull the trigger and try this!

We’d love you to purchase Pro of course - but you don’t need it for this. The free version includes full side chain functionality :slight_smile: I just happened to have Pro up when I saw your post and took the screengrab.

1 Like

If I purchase the Pro version, can I still use the free version in patches? I’m always torn because (a) I want to financially support the developers whose work I benefit from, but (b) when I share patches on PatchStorage/YouTube, I want to reach the widest audience possible by using free modules only.

1 Like

Yes.

1 Like

Yes you can still use the free version but you probably won’t need to because if you make a patch with the Pro version, and share it with someone who only has the free version, then it will automatically swap to the free version instead. That just goes for the main SM module though, not the expanders included with Pro obvs.

2 Likes

Within a few minutes of dorking around, ShapeMaster is already giving me good results. It’s not perfect, but given the organic and raucous nature of my audio recording, perfect is neither likely nor desirable. Thank you so much @steve for your help and for your awesome MindMeld modules!

(Side note: As a fellow VCV Rack developer, I aspire one day to have an Omri mushroom logo on one of my modules too! :sunglasses:)

1 Like

I keep coming back to the notion of a phase-locked loop circuit.

Vi would be the envelope voltage from the envelope follower (which has the original filtered/compressed recorded audio going through it. “Loop filter” might be best served by Bogaudio’s Slew module. It would be the FM CV of an LFO. A square wave output of the LFO is the (hopefully) synchronized clock.

The part I haven’t nailed down is the “Phase Comparator” section. I think it would involve summing the inverse of Vo with Vi. That produces an error voltage such that the greater the phase difference, the greater this voltage. I think this error voltage may need to be summed with some fixed voltage? Maybe not.

No doubt a few minutes or hours from now I will have a “refrigerator moment” where I realize that something is horribly lacking. Maybe something to do with the polarity of the error voltage, or how far it could be off before it completely loses phase lock.

I just thought of another way of operating this, that isn’t as precise but might give interesting results:

Just use the peak detector as a trigger. Treat that as your clock.

It will be all over the place, but close to following the live drumming groove. You can work with that.

I’d do a proof of concept if you want to share a sample of the drumming.

The drawback of using the peaks for a clock like that is that anything you trigger will play on top of your drum recording. I fix that by using an AS Signal Delay to delay the gate.

Even more fun, use the triggers from the envelope followers to clock a Hetrick Random Gates. Then you have 8 gate outputs to trigger different sounds.