[Fpga-synth] Physical Model Experiments

JH. jhaible at debitel.net
Sun Jul 29 20:23:40 CEST 2007


I think one of the most pleasant features of PM is that it has the 
capability to work like this: that a second excitation will add to what 
remains from a previous excitation, depending on the position of the 
oscillating device, when the second excitation hits.

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. 
The round robin assignment would go completely against this.

JH.


----- Original Message ----- 
From: "Scott Gravenhorst" <music.maker at gte.net>
To: <fpga-synth at rubidium.dyndns.org>
Sent: Sunday, July 29, 2007 7:09 PM
Subject: [Fpga-synth] Physical Model Experiments


After having created a simple working physical model (digital waveguide
vibrating element), I've noticed a few things that I need to take care of
before I proceed to a bigger design.

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.

I have some ideas regarding how to deal with this:

1) Use a smaller excitation pulse, and make the max amplitude available as
a user parameter.  This would prevent the problem, but will require
adjusting until it is as large as possible without causing distortion.
This method could work, but under some conditions throws away some DAC bits.

2) I'm thinking that a nonlinear soft clipping element preceding the
reflection point IIR may be able to quickly reduce the amplitude of the
attack portion of the sound and then it would vibrate normally while in the
linear portion of that soft clipping element.  I want to do this anyway to
test the usefulness of such an element as part of the timbre generating
mechanics, but I don't know if this idea will fix the problem.

3) Run multiple copies of the same exact string length and have the design
round robin assign excitation.  This seems more complex than I'd like and
won't necessarily eliminate the problem under all musical conditions.
There are also bandwidth limits that could make this impracticle by
reducing the size of the harp to that of a toy.  I'm hoping for a 48 string
harp, but just doubling up on the strings would instantly reduce the
effective number of strings to 1/2.

Is there something I'm not considering that I should?

-- 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.

_______________________________________________
Fpga-synth mailing list
Fpga-synth at rubidium.dyndns.org
http://rubidium.dyndns.org/cgi-bin/mailman/listinfo/fpga-synth




More information about the Fpga-synth mailing list