[sdiy] karplus-strong drum synthesis
Scott Gravenhorst
music.maker at gte.net
Sat Aug 20 22:37:56 CEST 2011
Joel B <onephatcat at earthlink.net> wrote:
>While we are discussing algorithms, I'm attempting to figure out
>how to write a karplus-strong drum synth function, the one on
>page 46 of this document:
>
>
>http://www.eumus.edu.uy/eme/cursos/dsp/material/karplus-strong/Karplus-Strong_Digital.Synthesis.of.Plucked-String.and.Drum.Timbres.pdf
Wow, thanks for that. I've done a little playing with drum sounds using Karplus-Strong. My setup
was a delay line (RAM) connected to a single pole lowpass IIR filter and back into the delay line.
If the filter's Fc setting is high, the system sounds like a tight string. If the Fc setting is
very low, the tones were very percussion like. Wood block at least. In my case, I excited the
delay line with a pulse. Pulse width affect the timbre.
>
>I'm trying to figure out how to write this, looks like I need to
>start with a wavetable of random numbers and somehow process it
>like this:
>
>y[ sample ] = ( y[ sample-p ] - y [ sample - p - 1 ] ) * blend - rnd(0)
>
>where rnd(0) gives me random numbers less than one.
>
>p is supposed to be the output pitch if I understand correctly.
>
>Assuming i'm even a little bit right about this, the question is,
>if I start at sample 0, there is no sample - 1 to use in the
>equation, so how is that the condition handled? Do you wrap to
>the last sample at t the end of the wavetable?
Yes, it's a wavetable but also a delay line.
-- ScottG
________________________________________________________________________
-- Scott Gravenhorst
-- FPGA MIDI Synthesizer Information:
jovianpyx.dyndns.org:8080/public/FPGA_synth/
-- FatMan:
jovianpyx.dyndns.org:8080/public/fatman/
-- NonFatMan:
jovianpyx.dyndns.org:8080/public/electronics/
-- When the going gets tough, the tough use the command line.
More information about the Synth-diy
mailing list