• ### Fairly efficient analog drums

inspiring!
at least if i would understand whats happening
i wonder why the s r pair in snare dosnt produce a dsp loop

@seq16_drum
what is swingbox and where do i get it?

thx

pd redefining mathematics |expr fact(0)|==0

• a) was it from trial and error, or is there some theory available that explains the principles involved?

Hey ichabod,

The theory is FM, or rather chaos theory for numerical systems. The feedback is used so that the FM system modulates itself. At just the right settings it becomes a noise generator.

The messages [70( and [90( are precise time periods in milliseconds. When the line generator is driven for these times it produces an exact number of cycles when wrapped. So, another way of looking at those numbers is as frequency values.

Hope that helps.

I would not be surprised that this example is hard to understand. It is not a regular approach to any of the drum sounds. I was just demonstrating some efficient ways to do certain things since I spend a lot of time factoring code and reducing ideas down with real-time games applications in mind. It would probably be better to study a more traditional patch for drum sounds IMHO.

Use the Source.

• @slur said:

i

@seq16_drum
what is swingbox and where do i get it?

thx

ooo-er its been a while since i last opened that patch. Swingbox is a subpatch (well a abstraction judging by its absence) that creates a swing to the beat by delaying the offbeat slightly.

I was in the process of learning pd so a few things could also be improved. I kind of did it as an exercise to teach myself, but it is close to being properly finished

when i get the chance i'll fix it and re-upload.

s

boonier

• Thanks for the response, obiwannabe! Actually, I found these patches so educational precisely because they aren't intuitive. So in the kick, for example, it took me a little while to figure out that it's equivalent to an [osc~] with a downwards frequency sweep.

I guess the thing with the [70( and the [90( is that they don't make sense to me even structurally -- isn't it redundant to have two message boxes connected from the same outlet to the same inlet?

• Oh yeah... actually that is a mistake ichabod. I should have deleted one of them

Use the Source.

• For years I've been processing acoustic input sound but last week I wanted to do something with synthetic resonators. A friend suggested to try a recorded attack sample as the resonator input. That was a nice idea, but there was of course an important amplitude effect depending on the sample's frequency content. So I was looking for a way to construct a nice attack sample with 'white spectrum'. After hours spent on noise bursts and sweeps I gave up, it just did not work.

Today when loading Obiwannabee's old patch 'efficient-drums' it occurred to me that 'efficient-snare' could be such an almost white spectrum attack. Well it's not completely white but it comes close. So this is indeed the ideal resonator starter, and produces a more interesting resonance than a 1-sample pulse.

Attached is a demo patch [efficient-percussion] featuring a bateria de samba. All sounds are generated by one monophonic synth.

Katja

http://www.pdpatchrepo.info/hurleur/efficient-percussion.pd.zip

• tweaky freaky circuit bent remix. mysterious parameter version accentuates the twang, excites the feedback circuit a bit more.

http://www.pdpatchrepo.info/hurleur/efficient-concussion.pd

• Wow, VERY inspiring! But it dont mean a thing if it ain't got that swing

http://www.pdpatchrepo.info/hurleur/efficient-percussion+swing.pd

• this is really interesting, i discovered this while looking for a way to simulate the "bridged t-network" circuit that the 808 bassdrum is based on. i have the efficient-kick running next to a real 808 and fiddle around with the parameters. i can get it to sound very close except for the long decay of the 808 which ends up sounding like a 80s electro drum on the kick. has anybody here tried to simulate the 808 more prrecisely?

• hi, I remembered this http://www.soundonsound.com/sos/Feb02/articles/synthsecrets0202.asp
and just now I found this http://kurtjameswerner.tumblr.com/post/50274769999/chuck-tr-808-emulator-bass-drum-bd-emulation

The amplitude envelope should also be exponential probably

• i read those articles too, those are excellent! the question is, how do you do it in pd? from what i understand its a dampened oscillator so it should be rather close to efficient-kick.

• Well what would be closer would probably be to use cpole~ and use the second article's values for frequency. Then you feed cpole~ some kind of pulse (not sure what kind, band limited, dirac, rectangle, maybe katja's pulse generator), and then convert polar coordinates to real and imaginary parts. For polar phase, you exponentially (using ead~ or something) ramp the phase of cpole~ corresponding to the frequency at that moment. the polar magnitude (constant) is the "decay time". Then take the real part mebe?
edit: see above for an example by katja (the resonator setup)
however this would only be an approximation because the bridged t thing seems to be more like a sharp band-pass filter (which cpole~ is the simplest version of). instead of using cpole~ really the bridged-t filter should be modeled and used. http://music.columbia.edu/pipermail/music-dsp/2005-October/064422.html
maybe vcf~ with high q would be more appropriate? anyway a look at the transfer function of the 808 filter and a bilinear transform seems like the kinda thing to do, i know nothing of analog filters and that stuff...

you can also use ead~ for everything, possibly (frequency and amplitude).
for modifying efficient-kick it would be closer to square or raise ^4 the amplitude of the vline~ before multiplying the cos~
|
| \
[*~]
| \
[*~]
|

• thanks for bringing this one back to life. Great thread!!!

• this seems to me one of the most efficient ways to simulate physical behaviour of drums. ill have a go at it but im not sure if my pd chops are up for it. thanks for rundown!

• This post is deleted!
Posts 36 | Views 30395
Internal error.

Oops! Looks like something went wrong!