[Fpga-synth] Physical Model Experiments

Scott Gravenhorst music.maker at gte.net
Tue Jul 31 17:16:36 CEST 2007


Eric, Veronica and JH,

Thank you for your responses.  Good info from all.  

I've modified the model to include hard clipping instead of overflow.  I've also
experimented with a simple nonlinearity: 3/4 of the input range (both + and -) results in a
linear (1:1) response to the input, but above/below that threshhold, gain is reduced forming
a second, lower gain slope.  In my mind, this is a crude form of soft clipping.  I can see
that having multiple threshholds to approximate a spline curve will be a lot of math (or a
table) as Eric suggests.  I plan to mess with this nonlinearity to see if it has a noticable
effect on the timbre produced.  The resulting system sounds nice and natural (to me).  I can
now literally pound on a key and I get multiple excitations without overflow.

I will post some sound samples (and perhaps this experimental code if there is interest)
sometime today.  A sound sample I think would be interesting is to keep hitting a key while
turning the filter control rotary encoder.  This nicely changes the character of the sound
morphing through it's range.


"The making of synthesizers in FPGAs." wrote:
>Agree. Either scale you excitation to prevent overflow, expand the range 
>of your datapath, or add clipping/saturation. From your description it 
>sounds like you've actually got overflow/wrapping which will really 
>sound harsh.
>
>Hard clipping is simple to do (I think I sent an example a while back) 
>and will be a big improvement compared to overflowing. Soft clipping is 
>fairly complex to implement - it requires either lots of math, or else 
>lookup tables. If you have the time and resources to do it though it 
>would be interesting to compare the various approaches.
>
>One of things I've noticed about the instrument biz is that what may 
>seem like a problem is often turned around and used to advantage. 
>Distortion that would be unacceptable in a traditional signal processing 
>system may be just the thing a musician is looking for. Providing 
>options is a great way to expand the useful range of an instrument.
>
>Eric
>
>JH. wrote:
>> 
>> IMO, what you need to do, is find a way for this to happen pleasantly, to go 
>> into distortion smoothly, to create a palette of sounds that are different 
>> depending on your new excitation (velocity etc.), *and* the previous state. 
>> 
>> ----- Original Message ----- 
>> From: "Scott Gravenhorst" <music.maker at gte.net>
>> 
>> The main problem is that if I excite the waveguide with a full scale pulse,
>> it vibrates nicely and sounds good/useful.  But if I excite the string with
>> a full scale pulse again while the string is still vibrating, I get varying
>> degrees of distortion due to clipping/sign reversal.  I do understand why
>> this is happening, but I need to figure out how to stop it from happening.
>_______________________________________________
>Fpga-synth mailing list
>Fpga-synth at rubidium.dyndns.org
>http://rubidium.dyndns.org/cgi-bin/mailman/listinfo/fpga-synth
>

-- ScottG

-------------------------------------------------------------

-- Scott Gravenhorst
-- GateMan I - Xilinx Spartan-3E Based MIDI Synthesizer
-- FatMan: home1.gte.net/res0658s/fatman/
-- NonFatMan: home1.gte.net/res0658s/electronics/
-- When the going gets tough, the tough use the command line.



More information about the Fpga-synth mailing list