These keywords and interface definitions are put forward as a naming standard for services provided by virtual devices, which are universally used.
note(pitch, velocity, duration)
volume(integer)
patch(patch_number)
(instrument)
pan(integer)
sustain(integer)
mod_wheel(integer)
controller(control_number, integer)
effects_depth(integer)
all_sounds_off()
local(bool)
omni(bool)
connect(device_id, device_id)
(for use with a routing matrix)
get_volume():integer
get_patch():name
stop()
start()
load(filename)
Input to output, with a transpose modifier
<HEADER>
block(1)= (null, gel, {(K2000, {})})
block(2)= (gel, gel, {(transpose, {value(12)})})
block(3)= (gel, audio, {(K2000, {patch("Grand Piano"), sustain(32)})})
dataflow={(1, {2}), (2, {3}), (3, {})}
</HEADER>
A user-controlled event modifier
<HEADER>
block(1)= (null, gel, {(event_list, {looped(true)})})
block(2)= (gel, gel, {(velocity_fix, {value(0)})})
block(3)= (gel, audio, {(K2000, {patch("Analogue Bass")})})
block(4)= (null, gel, {(main_slider, {value(0)})})
dataflow={(1, {2}), (2, {3}), (3, {}), (4, {2})}
</HEADER>
<DATA>
event_list(1)= ("Tweeting Bird", {(1:1:0, note("C3", 64, 12),
(1:1:47, note("C3", 64, 12),
(1:2:10, note("C3", 64, 12),
...
(7:4:78, note("C3", 64, 12)})
A sound which moves from left to right, controlled with an input slider.
<HEADER>
block(1)= (null, gel, {(event_list, {looped(8:1:0)})})
block(2)= (gel, audio, {(kurzveil_k2000, {patch("bird tweet"), mod_wheel(100)}),
(general_midi, {patch(123)})})
block(3)= (audio, audio, {(alesis_midiverb4, {patch("new"), reverb(67), time(23)}),
(alesis_midiverb, {patch="clean delay")})})
block(4)= (audio, speaker, {(right_king, {volume(64)})}
block(5)= (audio, speaker, {(left_king, {volume(64)})}
block(6)= (gel, gel, {(convert_keyword, {parameters("find=|"value|", replace=|"volume|")})}
block(7)= (gel, gel, {(convert_keyword, {parameters("find=|"value|", replace=|"volume|")})}
block(8)= (gel, gel, {(equate, {parameters("equ=|"127-[value]|"")})}
block(9)= (null, gel, {(main_mixer, {})})
dataflow= (1, {2}), (2, {3}), (3, {4, 5}), (4, {}), (5, {}), (6, {4}), (7, {5}), (8, {7}), (9, {6, 8})}
</HEADER>
<DATA>
event_list(1)= ("Tweeting Bird", {(1:1:0, note("C3", 64, 12),
(1:1:47, note("C3", 64, 12),
(1:2:10, note("C3", 64, 12),
...
(7:4:78, note("C3", 64, 12)})
</DATA>
An example filestore directory structure
This document composed by Adam Buckley (adambuckley@bigfoot.com), last edited on 16-May-2002.