It was originally adapted from Perry Cook and Gary Scavone's STK, the Synthesis ToolKit for doing amazing physical model stuff.
Here's what Perry says about "BlowBotl":
/* MBLOWBOTL - the "BlowBotl" physical model instrument in Perry Cook/Gary Scavone's "stk" (synthesis tookkit). p0 = output start time p1 = duration p2 = amplitude multiplier p3 = frequency (Hz) p4 = noise gain (0.0-1.0) p5 = max pressure (0.0 - 1.0, I think...) p6 = percent of signal to left output channel [optional, default is .5] Assumes function table 1 is breathPressure (amplitude) curve for the note. Or you can just call setline. If no setline or function table 1, uses flat curve. */Sample scorefile #1:
rtsetparams(44100, 2) load("MBLOWBOTL") makegen(1, 24, 1000, 0,1, 1,0) MBLOWBOTL(0, 3.5, 20000.0, 349.0, 0.3, 0.5) MBLOWBOTL(4, 3.5, 20000.0, 278.0, 0.7, 0.8)Sample scorefile #2:
rtsetparams(44100, 2) load("MBLOWBOTL") makegen(1, 24, 1000, 0,0, 1,1, 2,0) st = 0 noiseamp = 0.1 amp = 20000.0 * 5 MBLOWBOTL(st, 2.0, amp, cpspch(7.03), noiseamp, 0.9) st = st + 2.0 MBLOWBOTL(st, 2.0, amp, cpspch(7.05), noiseamp, 0.9) st = st + 2.0 MBLOWBOTL(st, 2.0, amp, cpspch(7.07), noiseamp, 0.9) st = st + 2.0 MBLOWBOTL(st, 2.0, amp, cpspch(7.08), noiseamp, 0.9) st = st + 2.0 MBLOWBOTL(st, 2.0, amp, cpspch(7.10), noiseamp, 0.9) st = st + 2.0 MBLOWBOTL(st, 2.0, amp, cpspch(8.00), noiseamp, 0.9) st = st + 2.0 MBLOWBOTL(st, 2.0, amp, cpspch(8.02), noiseamp, 0.9) st = st + 2.0 MBLOWBOTL(st, 2.0, amp, cpspch(8.03), noiseamp, 0.9)