[Fpga-synth] Digital Waveguide Samples

Eric Brombaugh ebrombaugh at earthlink.net
Wed Aug 1 00:34:57 CEST 2007


Scott Gravenhorst wrote:

>> * Variable frequency pulse generator - might sound sort of like a bowed 
>> string, depending of the pulse shape. I think a bowed string would have 
>> some feedback to the bow though, so the stimulus tends to be tuned to 
>> the resonant frequency which would be a bit harder to simulate.
> 
> Hmm.  Do you mean excite with a train of pulses?  No, I hadn't, but it's on the list _now_.

Yup - a pulse train. Probably just an NCO with PWM to turn it into a 
narrow/variable pulse. Or, take the straight NCO sawtooth output. Scale 
it to prevent overflows as the waveguide resonates.

I think I saw an analysis of bowing somewhere that suggested it was a 
combination of noise (as the bow slips across the string) and impulses 
(as it catches & holds briefly). The amount of slip/hold is determined 
by the tension of the string vs the speed of the bow: when the 
tension/speed reaches the breakaway point of the friction (mu sub s for 
those who remember their statics/dynamics) at which point the bow starts 
to slip until the tension reduces to the hold point again (mu sub k) and 
it catches and repeats the cycle.

>> So many things to think about here...
> 
> Yeah, this is just a very rudimentary experiment that shows me how useful this thing can
> be.  I do want to take this to the next level:  Use the SDRAM for the string (singular at
> first, multiple string harp for a poly synth later on).  I've studied the SDRAM data sheet
> and understand how it works, next is to look again at Rick Huang's work with it to learn
> how to interface the RAM with an FPGA design.  My dream would be to create a 96 string
> harp so that I can run it as either 96 tones, or as 48 doubles tuned slightly differently.
>  My preliminary arithmetic says 96 _might_ be possible at 62.5 KHz sample rate.  All 96
> would be capable of vibrating simultaneously.

That should use the S3Esk to its fullest.

Question about the delays: Are they only integer length? Have you found 
that this tends to quantize the resonant frequencies at the upper end of 
the range? If so I've done some stuff with variable interpolators that 
might give a bit more flexibility in that situation. The downside is 
that good (more than simple linear) interpolation takes a bit of logic.

Eric



More information about the Fpga-synth mailing list