how to trigger drum sounds/make drum replacement in MAX MSP

damohonda's icon

Hi

I am new to MAX and am working on a project that starts basic and then gets a bit more complicated. There are 3 stages.

Max Patch
Copy patch and select New From Clipboard in Max.

First I want to record or load in a clap or click, play it back and when the click plays I want it to send a signal to trigger a bass drum. I've tried the following patch but I can't get it to work.. any ideas..? then secondly..

Once I've done this, I want to try and expand it so that I've got an ungated bass drum track playing through. I want to measure the transients so that when the bass drum plays it triggers another bass drum and any background noise such as snare an hi hats that bleed onto the bass drum track are ignored. a bit like drum replacement on logic.

Finally, the last stage is to take a drum beat and split the bass drum and snare drum using frequency analysis so that when the drum track plays it measures a certain frequency (50Hz) and triggers a bass drum when you hear a bass drum and at 4khz for example it triggers a snare when you hear the snare...! Is this possible and can anyone help me please.

Damo

woyteg's icon
Max Patch
Copy patch and select New From Clipboard in Max.

hey,
try this:

woyteg's icon

oh and by the way, if using [>~] for transient detection, the problem is, you have to do abs and some lowpass filtering before, otherwise its more like a zero crossing counter that misses some waves..

roger.carruthers's icon

First I would determine how you are going to play your drum sounds; there are many options in Max and I would not normally go for sfplay~ for playing a short sound. Sfplay~ is more for steaming long files from disc that you'd rather not load into RAM.
So having decided between say, groove~, play~ , or wave~, you then want to look at how they are triggered and played back - again, there are critical differences. Read the .help files and look at the /Examples/Sampling.
Finally, have a look at bonk~ (search www.maxobjects.com) - it's made for the kind of thing you're doing - detecting transients and triggering replacement sounds. Amongst other things it can 'learn' the signatures of specific percussive sounds, so it's ideal for what you're suggesting in the last paragraph,
Cheers
Roger

damohonda's icon

Hi guys.

I tried your patch Woyteg but i can only get it to work once, after that i have to reset to make work. I was thinking the first part was the start of the whole picture but now after discovering the buffer (when i said new I meant I started using it 2 weeks ago!) I'm now wondering if i load the buffer with the supplied drum loop, whats the best way of triggering a single bass drum sound using transients/loudness and then triggering the snare drum using frequency?

damohonda's icon
Max Patch
Copy patch and select New From Clipboard in Max.

I've made the following patch.. I use the drumloop.aif available from the built in sounds in maxmsp.. you can disconnect the first speaker. I used it to hear the loop at the same time as the sample. However there is a delay and it crashes... it kind of works when i set the thresh at .3 and above, but how do i differentiate between the loudness? and/or frequency to then play the snare?