CLAR -- physical model clarinet
in RTcmix/insts/std
NOTE: This instrument has largely been superceded by the
MCLAR instrument.
quick syntax:
CLAR(outsk, dur, noiseamp, length1 (samples), length2 (samples), outputamp, d2gain[, pan])
This instrument has no pfield-enabled parameters.
Parameters after the [bracket] are optional and
default to 0 unless otherwise noted.
p0 = output start time (seconds)
p1 = duration (seconds)
p2 = noise amplitude (0-1)
p3 = length 1 (1-500, length in samples)
p4 = length 2 (1-500, length in samples)
p5 = output amplitude (absolute, for 16-bit soundfiles: 0-32768)
p6 = d2 gain (0-1)
p7 = pan (0-1 stereo; 0.5 is middle) [optional; default is 0]
no pfield-enabled control of parameters
is implemented for this instrument. Older makegen()-style control
may be used if desired.
CLAR
is a physical modeling algorithm for a clarinet.
Physical modeling is a synthesis paradigm whereby the computer
synthesizes sound not according to the spectrum of the desired output, but
rather based on a description of the physical process which makes the
sound (to whit: a violin's physical model would include a system describing
the physics of a vibrating string, coupled with a quantified description of
the effects of bow pressure, string vibrato, etc.). physical modeling
instruments, therefore, are simulated and controlled by expert systems
describing cause-and-effect relationships of specific performance actions
on corresponding acoustic results. (adapted from Cook, 1992, 1995).
Usage Notes
This is one of the first physical-model instruments implemented.
It is here primarily for 'historical' reasons, the
MCLAR
instrument is a better model to use. For example, to specfy the pitch
in CLAR, it is necessary to find the right combination of
delay lengths and the d2gain parameter. This isn't really intuitive...
Also, p-field control has not been implemented for this instrument.
Sample Scores
very basic:
rtsetparams(44100, 1)
load("CLAR")
CLAR(0, 1, 0.02, 78, 31, 7000, 0)
CLAR(1, 1, 0.02, 35, 4, 7000, 0)
CLAR(2, 1, 0.02, 35, 9, 7000, 0)
CLAR(3, 1, 0.02, 51, 20, 7000, 0.5)
more advanced:
rtsetparams(44100, 2)
load("CLAR")
// this is the old makegen() system. Generally use the
// maketable() system for dynamic control. CLAR doesn't use it
makegen(1, 24, 1000, 0, 1, 1, 1)
makegen(2, 24, 1000, 0, 1, 1, 1)
d2 = 0
for (start = 0; start < 10; start = start + 0.5) {
CLAR(start, 0.5, 0.02, 69, 34, 7000, d2)
d2 = d2 + 0.05
}
See Also
MCLAR,
MBLOWHOLE,
MBRASS,
METAFLUTE,
MSAXOFONY