Bi-Fingerboard Connection
Description
Simulates the interaction between and finger and a string with a fingerboard underneath them (bidirectional version).
(make-connection 'bi-fingerboard ... )
Syntax and Default Values
The 'bi-fingerboard connection can be created using the following Lisp syntax:
(make-connection 'bi-fingerboard fgr_acc_V fgr_acc_H fgr_posV str_acc_V str_acc_H str_posV pos_ctl weight)
Parameters
The 'bi-fingerboard connection takes eight arguments:
- fgr_acc_V: the vertical access on the object used as a “finger”.
- fgr_acc_H: the horizontal access on the object used as a “finger” (in the same location as the vertical access).
- fgr_posV: initial vertical position value of the finger access.
- str_acc_V: the vertical access on the object used as a “string”.
- str_acc_H: the horizontal access on the object used as a “string” (in the same location as the vertical access).
- str_posV: initial vertical position value of the string access.
- pos_ctl: a controller which specifies the position of the virtual fingerboard (usually a constant controller)
- weight: (optional) controller weighing the interaction.
With this connection the vertical access on the “finger” (its vertical position with respect to the fingerboard) is used to decide whether it is clamping the string or not (i.e. moving the finger up and down in this direction clamps and unclamps the string). The horizontal axis should be at the same location on the finger as the vertical axis, but in the other direction of vibration.
Similarly, the vertical and horizontal accesses on the string should be at the same location along the string, but in different axes of vibration.
The position controller specifies the position of the fingerboard over time. Generally speaking, one might make this controller (const 0), then set str_posV to .01 meters, then set fgr_posV to .02 meters. This controller is almost always constant, but one might want a moving fingerboard for an esoteric application.
The weight controller is optional. If not provided, it defaults to 1.
Discussion
When simulating string instruments, you frequently want to change the pitch of the string by putting a finger down on a fingerboard somehow. Normally in Modalys, you would have to create some large mass beneath the string, then make a strike connection between the string and the large mass, and another strike connection between the finger and the string. This would be computationally expensive, as well as a pain in the neck. So instead, you can make a mono-fingerboard connection between the finger and the string, giving the connection a controller saying where the “fingerboard” is.
Note that this is a bi-dimensional connection. It checks for the finger clamping the string against the fingerboard along one axis (vert); when the clamping occurs, it freezes the finger and string in both axes (vert and hor). This way, you can pluck the strings along the horizontal axis without worrying about banging into the fingerboard, and without getting annoying artifacts from the fingerboard finger's contact with the string. (If you don't care about this, or if your objects don't have two vibration directions, you should use the 'mono-fingerboard connection.)
Options
There are no special options for this connection.
★