A basic violin bridge model.
A 'violin-bridge can be created using the following Lisp syntax (the default values are shown for each of the physical parameters):
(make-object 'violin-bridge
(central-mass .00177)
(feet-mass .00038)
(e-distance .013)
(a-distance .01625)
(h-distance .021)
(b-distance .0065)
(stiffness 1300000)
(freq-loss 10)
(const-loss 10))
All physical parameters can be numerical values or controllers.
The violin bridge has two axis of possible motion, both of which are linked to the stiffness value: it can compress (i.e., the central mass becomes in effect closer to the feet- masses), and it can rotate from side to side (at right angle with the strings). The bridge does not, however, move forwards and backwards (i.e., longitudinally with the strings).
To access the feet of a violin bridge (to adhere it to an instrument body, or make an output on it, for example), the special access type 'base is used. -1 refers to the left foot, and 1 refers to the right. (A number in between will specify an access somewhere in the middle.)
(make-access my-violin-bridge (const -1) 'base) ;;; left foot
(make-access my-violin-bridge (const 1) 'base) ;;; right foot
Note that these feet-accesses vibrate vertically. To attach strings (or plates, if you want), to the top part of the bridge, the access types 'top-vertical and 'top-horizontal are used.
(make-access my-violin-bridge (const distance) 'top-horizontal)
(make-access my-violin-bridge (const distance) 'top-vertical)
In the case of a bi-string, one would normally use two access (both 'trans0 and 'trans1) at a point on the string attached to the two access directions on the bridge. The value distance describes the distance (in meters) from the center of the bridge to the access. Note that the any value can be given for this variable; one could easily have a bridge which is twelve kilometers long (attached to a very large fiddle!).
There are no special options for the Violin Bridge