Simple helmholtz resonator physical model.
in RTcmix/insts/stk
MBLOWBOTL(outsk, dur, AMP, FREQ, NOISEAMP, maxpressure[, PAN, PRESSUREENV])
CAPITALIZED parameters are pfield-enabled for table or dynamic control (see the maketable or makeconnection scorefile commands). Parameters after the [bracket] are optional and default to 0 unless otherwise noted.
Param Field | Parameter | Units | Dynamic | Optional | Notes |
---|---|---|---|---|---|
p0 | output start time | seconds | no | no | |
p1 | duration | seconds | no | no | |
p2 | amplitude | absolute, for 16-bit soundfiles: 0-32768 | yes | no | |
p3 | frequency | Hz | yes | no | |
p4 | noise gain | 0.0-1.0 | yes | no | |
p5 | max pressure | 0.0 - 1.0 | no | no | |
p6 | pan | 0-1 stereo; 0.5 is middle | yes | yes | default: 0.5 |
p7 | breath pressure table | reference to a pfield table-handle | yes | yes | default: 1.0 |
Parameters labled as Dynamic can receive dynamic updates from a table or real-time control source.
Author: Brad Garton, based on code from the Synthesis ToolKit
MBLOWBOTL is the “BlowBotl” physical model in Perry Cook and Gary Scavone’s STK , the Synthesis ToolKit.
MBLOWBOTL is a physical model instrument that recreates the haunting sound of a simple Helmholtz resonator. Once you hear this, you will probably never want to use any other instrument ever again. Well, maybe not…
Here’s what Perry says about “BlowBotl”:
The optional ‘breath pressure table’ (p7, “PRESSUREENV”) functions independently of an amplitude-control envelope used in p2 (“AMP”). This allows you to design sharp attacks, etc.
MBLOWBOTL can produce other mono or stereo output.
very basic:
rtsetparams(44100, 2)
load("MBLOWBOTL")
amp = 30000
ampenv = maketable("line", 1000, 0,1, 1,0)
MBLOWBOTL(0, 3.5, amp*ampenv, 349.0, 0.3, 0.5)
MBLOWBOTL(4, 3.5, amp*ampenv, 278.0, 0.7, 0.8)
slightly more advanced:
rtsetparams(44100, 2)
load("MBLOWBOTL")
ampenv = maketable("line",1000, 0,0, 1,1, 2,0)
amp = 20000.0 * 5
noiseamp = 0.1
st = 0
MBLOWBOTL(st, 2.0, amp*ampenv, cpspch(7.03), noiseamp, 0.9)
st = st + 2.0
MBLOWBOTL(st, 2.0, amp*ampenv, cpspch(7.05), noiseamp, 0.9)
st = st + 2.0
MBLOWBOTL(st, 2.0, amp*ampenv, cpspch(7.07), noiseamp, 0.9)
st = st + 2.0
MBLOWBOTL(st, 2.0, amp*ampenv, cpspch(7.08), noiseamp, 0.9)
st = st + 2.0
MBLOWBOTL(st, 2.0, amp*ampenv, cpspch(7.10), noiseamp, 0.9)
st = st + 2.0
MBLOWBOTL(st, 2.0, amp*ampenv, cpspch(8.00), noiseamp, 0.9)
st = st + 2.0
MBLOWBOTL(st, 2.0, amp*ampenv, cpspch(8.02), noiseamp, 0.9)
st = st + 2.0
MBLOWBOTL(st, 2.0, amp*ampenv, cpspch(8.03), noiseamp, 0.9)
maketable, CLAR, MBLOWHOLE, MBOWED, MBRASS, MCLAR, METAFLUTE, MSAXOFONY