p0 = output start time (seconds) p1 = duration (seconds) p2 = noise amplitude (relative to overall amplitude; usually 0-1) p3 = length1 (samples, usually 5-200) p4 = length2 (samples, usually 5-200) p5 = amplitude multiplier (relative multiplier of input signal) p6 = pan (0-1 stereo; 0.5 is middle) [optional; default is 0] Because this instrument has not been updated for pfield control, the older makegen control envelope sysystem should be used: assumes function table 1 is the noise amplitude envelope function table 2 is the overall amplitude envelope Parameters after the [bracket] are optional and default to 0 unless otherwise noted. Author: Brad Garton
p0 = output start time (seconds) p1 = duration (seconds) p2 = noise amplitude (relative to overall amplitude; usually 0-1) p3 = length1 low value (samples, usually 5-200) p4 = length1 high value (samples, usually 5-200) p5 = length2 low value (samples, usually 5-200) p6 = length2 high value (samples, usually 5-200) p7 = amplitude multiplier (relative multiplier of input signal) p8 = vibrato frequency 1 low value (Hz, usually < 20) p9 = vibrato frequency 1 high value (Hz, usually < 20) p10 = vibrato frequency 2 low value (Hz, usually < 20) p11 = vibrato frequency 2 high value (Hz, usually < 20) p12 = pan (0-1 stereo; 0.5 is middle) [optional; default is 0] Because this instrument has not been updated for pfield control, the older makegen control envelope sysystem should be used: assumes function table 1 is the noise amplitude envelope function table 2 is the overall amplitude envelope, function table 3 is the vibrato waveform for length1 (between p3 and p4), function table 4 is the vibrato waveform for length2 (between p5 and p6) Parameters after the [bracket] are optional and default to 0 unless otherwise noted. Author: Brad Garton
p0 = output start time (seconds) p1 = duration (seconds) p2 = noise amplitude (relative to overall amplitude; usually 0-1) p3 = length1 low value (samples, usually 5-200) p4 = length1 high value (samples, usually 5-200) p5 = length2 low value (samples, usually 5-200) p6 = length2 high value (samples, usually 5-200) p7 = amplitude multiplier (relative multiplier of input signal) p8 = pan (0-1 stereo; 0.5 is middle) [optional; default is 0] Because this instrument has not been updated for pfield control, the older makegen control envelope sysystem should be used: assumes function table 1 is the noise amplitude envelope function table 2 is the overall amplitude envelope, function table 3 is the control envelope for length1 (between p3 and p4), function table 4 is the control envelope for length2 (between p5 and p6) Parameters after the [bracket] are optional and default to 0 unless otherwise noted. Author: Brad Garton
p0 = output start time (seconds) p1 = duration (seconds) p2 = noise amplitude (relative to overall amplitude; usually 0-1) p3 = length1 (samples, usually 5-200) p4 = length2 (samples, usually 5-200) p5 = amplitude multiplier (relative multiplier of input signal) p6 = pan (0-1 stereo; 0.5 is middle) [optional; default is 0] Because this instrument has not been updated for pfield control, the older makegen control envelope sysystem should be used: assumes function table 1 is the noise amplitude envelope function table 2 is the overall amplitude envelope Parameters after the [bracket] are optional and default to 0 unless otherwise noted. Author: Brad Garton
LSFLUTE does the same thing as SFLUTE, but
without reinitializing the internal buffers, allowing you to get legato and
slurred-note effects -- just like a REAL flute!
Usage Notes
The METAFLUTE instruments are older, reflected in the use of
the old
makegen
control envelope and waveform table system as well as the use of different
instruments to accomplish tasks (pitch bending, vibrato) that could
easily be handled via pfield controls. The modeled flutes are also
tricky to use; the tuning is dependent on the length of the slides
and the 'context' of the note when it is played.
Specifying pitch via two slide lengths isn't optimum, but that's the way the model was constructed. (remember this was one of the first ones Perry did) Here is a rough tuning-table for length1 and length2 to produce a given note:
c8 == middle "C", 8.00 in oct.pc note length1 length2 g7 112 25 ab7 106 24 a7 100 19 bb7 95 21 b7 89 19 c8 84 18 db8 79 23 d8 75 19 eb8 70 15 e8 67 16 f8 63 19 gb8 59 17 g8 56 17 ab8 53 25 a8 50 16 bb8 47 12 b8 44 11 c9 42 10 db9 39 10 d9 37 8 eb9 35 9 e9 33 18 f9 31 18 gb9 29 39 g9 28 14 ab9 26 15 a9 24 17 bb9 23 14 b9 22 34 c10 21 9These are approximate (in fact, they were done "by ear"), so your mileage may vary.
LSFLUTE will not work if more than one SFLUTE is active. An
SFLUTE note has to precede it, although it can have 0 duration.
To be honest, LSFLUTE isn't all that effectve (and I'm not sure
it functions properly).
Sample Scores
SFLUTE:
rtsetparams(44100, 2) load("METAFLUTE") makegen(1, 24, 1000, 0,1, 1.5,1) makegen(2, 24, 1000, 0,0, 0.05,1, 1.49,1, 1.5,0) SFLUTE(0, 1.5, 0.1, 40, 28, 7000) SFLUTE(1.5, 1.5, 0.1, 40, 22, 7000)
rtsetparams(44100, 2) load("METAFLUTE") makegen(1, 7, 1000, 1, 1000, 1) makegen(2, 7, 1000, 1, 1000, 1) makegen(3, 10, 1000, 1) makegen(4, 10, 1000, 1) VSFLUTE(0, 3.5, 0.1, 60,62, 30,40, 5000, 1.0,4.0, 1.0,5.0) VSFLUTE(4, 3.5, 0.1, 48,50, 30,45, 5000, 4.0,7.0, 3.0,5.0)
rtsetparams(44100, 2) load("METAFLUTE") makegen(1, 7, 1000, 1, 1000, 1) makegen(2, 7, 1000, 1, 1000, 1) makegen(3, 7, 1000, 0, 500, 1, 500, 0) makegen(4, 7, 1000, 0, 1000, 1) BSFLUTE(0, 1.5, 0.1, 40,50, 28,40, 5000)
rtsetparams(44100, 2) load("METAFLUTE") makegen(1, 24, 1000, 0, 1, 1.5, 1) makegen(2, 24, 1000, 0, 1, 1.5, 1) SFLUTE(0.000000, 0.100000, 0.050000, 100.000000, 100.000000, 5000.000000) LSFLUTE(0.000000, 0.280000, 0.040000, 50.000000, 16.000000, 5000.000000) LSFLUTE(0.280000, 0.280000, 0.040000, 50.000000, 26.000000, 5000.000000) LSFLUTE(0.560000, 0.280000, 0.040000, 20.000000, 46.000000, 5000.000000) LSFLUTE(0.840000, 0.280000, 0.040000, 50.000000, 16.000000, 5000.000000)