Tracks & Plugins
Track routing, instrument and effect hosting, and parameter access.
AudioTrack
Section titled “AudioTrack”A track in the audio engine for sample playback and routing. Construct with AudioTrack("name").
load_instrument
Section titled “load_instrument”fn load_instrument(instrument: Instrument or Sampler or SamplerMelodic) -> AudioTrackAttaches a sampler or instrument to this track.
Parameters:
instrument(Instrument | Sampler | SamplerMelodic) — the instrument to attach
Returns: AudioTrack — the track, for chaining
get_instrument
Section titled “get_instrument”fn get_instrumentFunctionReturns the instrument loaded on this track, or NUL if none.
Returns: Instrument — the loaded instrument, or NUL if none
load_effect
Section titled “load_effect”fn load_effect(effect: Effect) -> AudioTrackLoads an effect onto this track’s signal chain by slot name. If an effect with the same slot name already exists, it is replaced in-place.
Parameters:
effect(Effect) — the effect to load
Returns: AudioTrack — the track, for chaining
load_effects
Section titled “load_effects”fn load_effects(effects: Array) -> AudioTrackLoads multiple effects at once (each replaces by slot name).
Parameters:
effects(Array) — the effects to load
Returns: AudioTrack — the track, for chaining
effects
Section titled “effects”fn effects() -> ArrayReturns an array of all effects in chain order.
Returns: Array — the effects in chain order
get_effect
Section titled “get_effect”fn get_effect(name: String) -> EffectGets an effect by its slot name.
Parameters:
name(String) — slot name of the effect
Returns: Effect — the effect with that slot name
swap_effects
Section titled “swap_effects”fn swap_effects(i: Number, j: Number) -> AudioTrackSwaps two effects in the chain by index.
Parameters:
i(Number) — first effect indexj(Number) — second effect index
Returns: AudioTrack — the track, for chaining
remove_effect
Section titled “remove_effect”fn remove_effect(index: Number) -> EffectRemoves an effect from the chain by index.
Parameters:
index(Number) — position of the effect to remove
Returns: Effect — the removed effect
clear_effects
Section titled “clear_effects”fn clear_effects() -> AudioTrackRemoves all effects from the chain.
Returns: AudioTrack — the track, for chaining
send_to
Section titled “send_to”fn send_to(destination: AudioTrack, amount: Number) -> AudioTrackAdds a parallel aux send to the given destination.
Parameters:
destination(AudioTrack) — target track or busamount(Number) — send level (0.0-1.0)
Returns: AudioTrack — the track, for chaining
xsend_to
Section titled “xsend_to”fn xsend_to(destination: AudioTrack, amount: Number) -> AudioTrackCrossfade send: routes audio with energy conservation. wet = amount, dry (master) = 1.0 - amount.
Parameters:
destination(AudioTrack) — target track or busamount(Number) — crossfade amount (0.0-1.0)
Returns: AudioTrack — the track, for chaining
fn send(amount: Number)Returns a SendModifier for use with the >> operator.
Parameters:
amount(Number) — send level (0.0-1.0)
Returns: SendModifier — a send modifier usable with >>
delete
Section titled “delete”fn delete() -> NULDeletes the track and releases its resources.
Returns: NUL — nothing
routing
Section titled “routing”fn routing() -> NULDisplays detailed routing info for this track. Shows instrument, effects, volume/pan, receives, and routes.
Returns: NUL — nothing; prints the routing
volume
Section titled “volume”fn volume(value: Number) -> AudioTrackSets track volume.
Parameters:
value(Number) — volume in dB (0 = unity, -70 = mute, +6 = max boost)
Returns: AudioTrack — the track, for chaining
fn pan(value: Number) -> AudioTrackSets track pan.
Parameters:
value(Number) — pan position (-1.0 = hard left, 0.0 = center, 1.0 = hard right)
Returns: AudioTrack — the track, for chaining
fn input(source: String) -> AudioTrackSets the audio input source for monitoring and recording. Connects the named hardware input to this track. If no audio input stream is active, starts one automatically for the named device.
Parameters:
source(String) — input device or channel name (e.g. “MacBook Pro Microphone”)
Returns: AudioTrack — the track, for chaining
fn arm() -> AudioTrackArms the track for recording. The track must have an input source set via input() first.
Returns: AudioTrack — the track, for chaining
disarm
Section titled “disarm”fn disarm() -> AudioTrackDisarms the track, stopping recording.
Returns: AudioTrack — the track, for chaining
monitor
Section titled “monitor”fn monitor(mode: String) -> AudioTrackSets the input monitoring mode.
Parameters:
mode(String) — “off” (no monitoring), “in” (always monitor), or “auto” (monitor when armed)
Returns: AudioTrack — the track, for chaining
fn take() -> RecordedAudioRetrieves the most recent recording as a RecordedAudio value.
Returns: RecordedAudio — the latest recording, or NUL if none has been made
send_level
Section titled “send_level”fn send_level(target: AudioTrack) -> NumberReturns the send level to the given destination track.
Parameters:
target(AudioTrack) — destination track
Returns: Number — the send level to target
reset_routing
Section titled “reset_routing”fn reset_routing() -> AudioTrackResets all routing (sends, receives, input) on this track.
Returns: AudioTrack — the track, for chaining
fn save(path: String) -> AudioTrackSaves the track’s audio to a file.
Parameters:
path(String) — output file path
Returns: AudioTrack — the track, for chaining
fn punch(in_cycle: Number, out_cycle: Number) -> AudioTrackSets punch-in and punch-out points for time-bounded recording. Recording activates at in_cycle and deactivates at out_cycle.
Parameters:
in_cycle(Number) — cycle at which recording startsout_cycle(Number) — cycle at which recording stops
Returns: AudioTrack — the track, for chaining
punch_in
Section titled “punch_in”fn punch_in(cycle: Number) -> AudioTrackSets only the punch-in point. Recording starts at the given cycle and continues until manually stopped.
Parameters:
cycle(Number) — cycle at which recording starts
Returns: AudioTrack — the track, for chaining
punch_out
Section titled “punch_out”fn punch_out(cycle: Number) -> AudioTrackSets only the punch-out point. Recording starts immediately with RECORD and stops at the given cycle.
Parameters:
cycle(Number) — cycle at which recording stops
Returns: AudioTrack — the track, for chaining
clear_punch
Section titled “clear_punch”fn clear_punch() -> AudioTrackClears all punch points from this track.
Returns: AudioTrack — the track, for chaining
is_punched
Section titled “is_punched”fn is_punched() -> BooleanReturns true if this track has punch points configured.
Returns: Boolean — true if punch points are configured
velocity
Section titled “velocity”fn velocity(vel: Number or Signal or Pattern) -> AudioTrackSets the velocity for notes played on this track.
Parameters:
vel(Number | Signal | Pattern) — velocity value, signal, or pattern
Returns: AudioTrack — the track, for chaining
tuning
Section titled “tuning”fn tuning(bend_range: Number) -> AudioTrackEnable microtonal pitch bend output. Uses the MIDI default ±2 semitone range (works with any synth).
Example:
track.tuning(), track.tuning(48)
Parameters:
bend_range(Number) — pitch-bend range in semitones (optional; default ±2)
Returns: AudioTrack — the track, for chaining
fn mpe(range: Number, zone_lo: Number, zone_hi: Number) -> AudioTrackEnable MPE (per-note channel allocation) for polyphonic microtonal output.
Example:
track.mpe(), track.mpe(24), track.mpe(48, 2, 9)
Parameters:
range(Number) — pitch-bend range in semitones (optional, defaults to 48)zone_lo(Number) — low member channel (optional, defaults to 2)zone_hi(Number) — high member channel (optional, defaults to 16)
Returns: AudioTrack — the track, for chaining
fn key(k: Key) -> AudioTrackSet a track-level key (scale + root) for degree resolution and auto-quantization. Degrees (^1, ^2, …) resolve from this key without .in_key(), and absolute notes are quantized to the nearest scale tone.
Example:
track.key(Key(C4, "major")) or track.key("major", C4)
Parameters:
k(Key) — the key to apply to this track
Returns: AudioTrack — the track, for chaining
fn key(scale: String or Scale, root: Note or Number) -> AudioTrackSet a track-level key from a scale and root (alternative to key(Key)).
Parameters:
scale(String | Scale) — scale name or Scale valueroot(Note | Number) — root note (e.g. C4 or a MIDI number)
Returns: AudioTrack — the track, for chaining
Effect
Section titled “Effect”An audio effect processor.
Unified type wrapping three backends:
- Built-in DSP — created via constructors like
Delay(),Lowpass(), ordsp effectblocks. Processing runs as compiled bytecode. - CLAP plugin — loaded via
Effect("name")when a CLAP bundle is found. - VST3 plugin — loaded via
Effect("name")when a VST3 bundle is found (or when CLAP is unavailable and VST3 is).
All backends support parameter access, state save/load, and can be loaded onto audio tracks and the master bus. GUI and program methods are backend-specific and emit warnings when called on unsupported backends.
Effects carry a slot name (set via set_name() or assigned automatically from the plugin name). When loaded onto a track with load_effect(), effects with the same slot name replace each other in-place rather than accumulating — this makes re-execution idempotent.
let fx = Effect("ValhallaRoom");fx.param_set("Mix", 0.3);drums.load_effect(fx);
let delay = Delay(0.25, 0.5);drums.load_effect(delay);Constructor
Section titled “Constructor”fn Effect(name: String, plugin_id: String = NUL) -> EffectLoads an effect plugin (CLAP or VST3). Searches CLAP plugins first, then VST3. File extensions are added automatically.
Parameters:
name(String) — plugin name or full path (e.g. “Valhalla Room”)plugin_id(String) — plugin ID, auto-detected if only one plugin in bundle (optional)
Returns: Effect — the loaded effect plugin
fn name() -> StringReturns the slot name of this effect.
For external plugins this defaults to the plugin’s display name. For built-in effects it defaults to the constructor name (e.g. “Delay”). Can be changed with set_name().
Backends: all.
Delay().name(); // => "Delay"Effect("ValhallaRoom").name(); // => "ValhallaRoom"Returns: String — the effect’s slot name
fn param(name: String) -> EffectParamReturns a parameter reference for the named parameter.
Uses fuzzy case-insensitive matching: exact path first, then substring match on path and display name. Use .get(), .set(), .set_norm() on the returned reference, or pipe it with << for modulation.
Backends: all.
let d = Delay(0.25, 0.5);d.param("Time").get(); // => 0.25d.param("Time").set(0.5); // set to 0.5d.param("Time") << Sine(2).range(0.1, 0.8);Parameters:
name(String) — parameter name (e.g. “Room”, “Mix”, “Cutoff”)
Returns: EffectParam — a parameter reference with .get(), .set(), .set_norm() methods Errors: RuntimeError — if no parameter matches or match is ambiguous
param_get
Section titled “param_get”fn param_get(name: String) -> NumberGets the current value of a parameter by name (shorthand).
Equivalent to .param(name).get(). Returns the value in the parameter’s native range (not normalized).
Backends: all.
let d = Delay(0.25, 0.5);d.param_get("Time"); // => 0.25d.param_get("Feedback"); // => 0.5Parameters:
name(String) — parameter name (e.g. “Room”, “Mix”, “Cutoff”)
Returns: Number — the current parameter value in its native range Errors: RuntimeError — if no parameter with the given name exists
param_set
Section titled “param_set”fn param_set(name: String, value: Number) -> EffectSets a parameter value by name in its native range.
The value is clamped to the parameter’s declared range. For normalized [0,1] input use param_set_norm() instead.
Backends: all.
Delay().param_set("Time", 0.8).param_set("Feedback", 0.3);Parameters:
name(String) — parameter name (e.g. “Room”, “Mix”)value(Number) — new value in the parameter’s native range
Returns: Effect — this, for method chaining Errors: RuntimeError — if no parameter with the given name exists
param_set_norm
Section titled “param_set_norm”fn param_set_norm(name: String, value: Number) -> EffectSets a parameter value using a normalized [0,1] input.
The normalized value is mapped to the parameter’s native range: actual = min + normalized * (max - min).
Backends: all.
fx.param_set_norm("Mix", 0.5); // set Mix to midpoint of its rangeParameters:
name(String) — parameter name (e.g. “Room”, “Mix”)value(Number) — normalized value (0.0 = minimum, 1.0 = maximum)
Returns: Effect — this, for method chaining Errors: RuntimeError — if no parameter with the given name exists
params
Section titled “params”fn params(filter: String?) -> ParamListReturns a ParamList of all effect parameters.
Prints as a formatted table (headed by the effect name and backend) with columns Parameter, Value, Range, Default. Use .data for the raw array of dicts; each entry has name, value, min, max, default, group, path, and step.
Backends: all.
fx.params(); // all parametersfx.params("freq"); // only parameters containing "freq"fx.params().data; // raw array of parameter dictsParameters:
filter(String) — only include parameters whose name contains this substring (optional)
Returns: ParamList — parameter data (columns: Parameter, Value, Range, Default)
supports_gui
Section titled “supports_gui”fn supports_gui() -> BooleanReturns whether this effect supports a graphical user interface.
Built-in DSP effects always return false. CLAP and VST3 plugins return true if the plugin provides a GUI.
Backends: all (DSP always returns false).
Delay().supports_gui(); // => falseEffect("ValhallaRoom").supports_gui(); // => trueReturns: Boolean — true if show_gui() will open a window
show_gui
Section titled “show_gui”fn show_gui() -> NULOpens the plugin GUI window.
For CLAP/VST3 plugins with GUI support, opens the plugin’s native editor window. For built-in DSP effects, prints a warning and returns NUL (no error).
Backends: CLAP, VST3. Warns on DSP.
let fx = Effect("ValhallaRoom");fx.show_gui();Returns: NUL Errors: RuntimeError — if the plugin does not support GUI (CLAP/VST3 only) RuntimeError — if running in headless mode
hide_gui
Section titled “hide_gui”fn hide_gui() -> NULCloses the plugin GUI window.
For CLAP/VST3 plugins, closes the native editor window if open. For built-in DSP effects, prints a warning and returns NUL.
Backends: CLAP, VST3. Warns on DSP.
fx.hide_gui();Returns: NUL
save_state
Section titled “save_state”fn save_state(path: String) -> EffectSaves the effect’s state to a preset file.
For CLAP/VST3 plugins, saves the full binary plugin state (includes all internal state beyond just parameter values). For built-in DSP effects, saves parameter values only.
The file format is a Resonon preset file (.preset extension recommended).
Backends: all.
fx.save_state("presets/warm_reverb.preset");Parameters:
path(String) — file path for the preset
Returns: Effect — this, for method chaining
load_state
Section titled “load_state”fn load_state(path: String) -> EffectLoads a preset file into the effect.
Restores the effect’s state from a file previously created by save_state(). The preset’s plugin name must match this effect’s plugin name.
Backends: all.
fx.load_state("presets/warm_reverb.preset");Parameters:
path(String) — file path of the preset to load
Returns: Effect — this, for method chaining Errors: RuntimeError — if the file doesn’t exist or the plugin name mismatches
set_name
Section titled “set_name”fn set_name(name: String) -> EffectSets the slot name used for idempotent loading.
When an effect is loaded onto a track or master with load_effect(), the slot name determines identity: effects with the same slot name replace each other in-place (preserving chain position) rather than accumulating. This makes re-execution idempotent.
Backends: all.
Delay(0.25).set_name("echo");drums.load_effect(Delay(0.5).set_name("echo")); // replaces, not duplicatesParameters:
name(String) — the new slot name
Returns: Effect — a new Effect value with the updated slot name
connect_input
Section titled “connect_input”fn connect_input(name: String, source: AudioTrack) -> EffectConnects a named sidechain input port to a source audio track.
Some effects (e.g. compressors) have sidechain input ports that accept audio from another track. This method sets up that routing in the audio graph. The source track must be processed before the effect’s track (enforced by topological sort).
Backends: CLAP, VST3 (DSP effects typically have no sidechain ports).
let comp = Effect("TDR Kotelnikov");comp.connect_input("sidechain", kick_track);bass.load_effect(comp);Parameters:
name(String) — the sidechain input port name (e.g. “sidechain”)source(AudioTrack) — the track whose output feeds this port
Returns: Effect — this, for method chaining Errors: RuntimeError — if the effect has no port with the given name
programs
Section titled “programs”fn programs() -> ArrayLists all program/preset names built into the plugin.
Only VST3 plugins expose factory programs. For CLAP and built-in DSP effects, prints a warning and returns an empty array.
Backends: VST3. Warns on CLAP, DSP.
let fx = Effect("Diva");fx.programs(); // => #["Init", "Juno Saw", "Warm Pad", ...]Returns: Array — array of program name strings, e.g. #["Init", "Warm", "Bright"]
set_program
Section titled “set_program”fn set_program(index: Number) -> EffectSelects a factory program/preset by index.
Only VST3 plugins support program selection. For CLAP and built-in DSP effects, prints a warning and returns the effect unchanged.
Backends: VST3. Warns on CLAP, DSP.
let fx = Effect("Diva");fx.set_program(2); // select the third factory presetParameters:
index(Number) — zero-based program index
Returns: Effect — this, for method chaining Errors: RuntimeError — if the index is out of range (VST3 only)
backend
Section titled “backend”fn backend() -> StringReturns the plugin backend type (“CLAP”, “VST3”, or “built-in”).
Returns: String — the backend type
EffectParam
Section titled “EffectParam”A reference to a single effect parameter, obtained via .param("name"). Supports .get(), .set(), .set_norm() and modulation via <<.
fn get() -> NumberGets the current value of this parameter.
delay.param("Time").get(); // => 0.25Returns: Number — the current value in the parameter’s native range
fn set(args: unknown) -> EffectParamSets this parameter’s value.
Accepts a Number (static set), Signal (modulation), or breakpoint arrays (automation lane).
delay.param("Time").set(0.5);delay.param("Time").set(Sine(4).range(0.1, 0.8));delay.param("Time").set(#[0, 200], #[4, 4000]);Parameters:
value...— Number, Signal, or variadic[beat, value]breakpoint arrays
Returns: EffectParam — this reference, for chaining
set_norm
Section titled “set_norm”fn set_norm(value: Number) -> EffectParamSets this parameter using a normalized [0,1] value.
delay.param("Time").set_norm(0.5);Parameters:
value(Number) — 0.0 = minimum, 1.0 = maximum
Returns: EffectParam — this reference, for chaining
Instrument
Section titled “Instrument”Type class for Instrument values — wraps .params() in ParamList.
Constructor
Section titled “Constructor”fn Instrument(name: String, plugin_id: String = NUL) -> InstrumentLoads an instrument plugin (CLAP or VST3). Searches CLAP plugins first, then VST3. File extensions are added automatically.
Parameters:
name(String) — plugin name or full path (e.g. “Surge XT”)plugin_id(String) — plugin ID, auto-detected if only one plugin in bundle (optional)
Returns: Instrument — the loaded instrument plugin
fn name() -> StringReturns the instrument name.
Returns: String — the instrument name
fn param(name: String) -> InstrumentParamReturns a parameter reference by name.
Parameters:
name(String) — parameter name (e.g. “Cutoff”, “Mix”, “gain”)
Returns: InstrumentParam — a parameter reference with .get(), .set(), .set_norm()
param_get
Section titled “param_get”fn param_get(name: String) -> NumberGets a parameter value by name (shorthand for .param(name).get()).
Parameters:
name(String) — parameter name (e.g. “Cutoff”, “Mix”, “gain”)
Returns: Number — the current parameter value
param_set
Section titled “param_set”fn param_set(name: String, value: Number) -> InstrumentSets a parameter value by name.
Parameters:
name(String) — parameter name (e.g. “Cutoff”, “Mix”)value(Number) — new value in the parameter’s native range
Returns: Instrument — the instrument, for chaining
param_set_norm
Section titled “param_set_norm”fn param_set_norm(name: String, value: Number) -> InstrumentSets a parameter value using a normalized [0,1] input.
Parameters:
name(String) — parameter name (e.g. “Cutoff”, “Mix”)value(Number) — normalized value (0.0 to 1.0)
Returns: Instrument — the instrument, for chaining
params
Section titled “params”fn params(filter: String?) -> ParamListReturns a ParamList of all instrument parameters.
Prints as a formatted table (headed by the instrument name and backend) with columns Parameter, Value, Range, Default. Use .data for the raw array of dicts; each entry has name, value, min, max, default, group, path, and step.
Backends: all.
inst.params(); // all parametersinst.params("freq"); // only parameters containing "freq"inst.params().data; // raw array of parameter dictsParameters:
filter(String) — only include parameters whose name contains this substring (optional)
Returns: ParamList — parameter data (columns: Parameter, Value, Range, Default)
backend
Section titled “backend”fn backend() -> StringReturns the plugin backend type (“CLAP”, “VST3”, or “built-in”).
Returns: String — the backend type
supports_gui
Section titled “supports_gui”fn supports_gui() -> BooleanReturns true if the plugin supports a GUI window.
Returns: Boolean — true if a GUI window is supported
show_gui
Section titled “show_gui”fn show_gui() -> NULOpens the plugin GUI window.
Returns: NUL — nothing
hide_gui
Section titled “hide_gui”fn hide_gui() -> NULCloses the plugin GUI window.
Returns: NUL — nothing
save_state
Section titled “save_state”fn save_state(path: String) -> InstrumentSaves the plugin state to a preset file.
Parameters:
path(String) — file path for the preset
Returns: Instrument — the instrument, for chaining
load_state
Section titled “load_state”fn load_state(path: String) -> InstrumentLoads a preset file into the plugin.
Parameters:
path(String) — file path of the preset to load
Returns: Instrument — the instrument, for chaining
programs
Section titled “programs”fn programs() -> ArrayReturns the list of plugin program names.
Returns: Array — the program names as Strings
set_program
Section titled “set_program”fn set_program(index: Number) -> InstrumentSwitches to a program by index.
Parameters:
index(Number) — program index
Returns: Instrument — the instrument, for chaining
set_name
Section titled “set_name”fn set_name(name: String) -> InstrumentRenames the instrument’s slot name.
Parameters:
name(String) — new slot name
Returns: Instrument — a new instrument with the updated name
InstrumentParam
Section titled “InstrumentParam”A reference to a single instrument parameter, obtained via .param("name"). Supports .get(), .set(), .set_norm() and modulation via <<.
fn get() -> NumberGets the current value of this parameter.
Returns: Number — the current value in the parameter’s native range
fn set(args: unknown) -> InstrumentParamSets this parameter’s value.
Accepts a Number (static set), Signal (modulation), or breakpoint arrays (automation lane).
Parameters:
value...— Number, Signal, or variadic[beat, value]breakpoint arrays
Returns: InstrumentParam — this reference, for chaining
set_norm
Section titled “set_norm”fn set_norm(value: Number) -> InstrumentParamSets this parameter using a normalized [0,1] value.
Parameters:
value(Number) — 0.0 = minimum, 1.0 = maximum
Returns: InstrumentParam — this reference, for chaining
Master
Section titled “Master”The master output bus. Always present, cannot be deleted. Has its own effect chain and fader (volume/pan). Access via the global master variable.
load_effect
Section titled “load_effect”fn load_effect(effect: Effect) -> MasterLoads an effect onto the master bus by slot name. If an effect with the same slot name already exists, it is replaced in-place.
Parameters:
effect(Effect) — the effect to load
Returns: Master — the master bus, for chaining
load_effects
Section titled “load_effects”fn load_effects(effects: Array) -> MasterLoads multiple effects at once (each replaces by slot name).
Parameters:
effects(Array) — the effects to load
Returns: Master — the master bus, for chaining
effects
Section titled “effects”fn effects() -> ArrayReturns an array of all effects in chain order.
Returns: Array — the effects in chain order
get_effect
Section titled “get_effect”fn get_effect(name: String) -> EffectGets an effect by its slot name.
Parameters:
name(String) — slot name of the effect
Returns: Effect — the effect with that slot name
swap_effects
Section titled “swap_effects”fn swap_effects(i: Number, j: Number) -> MasterSwaps two effects in the chain by index.
Parameters:
i(Number) — first effect indexj(Number) — second effect index
Returns: Master — the master bus, for chaining
remove_effect
Section titled “remove_effect”fn remove_effect(index: Number) -> EffectRemoves an effect from the chain by index.
Parameters:
index(Number) — position of the effect to remove
Returns: Effect — the removed effect
clear_effects
Section titled “clear_effects”fn clear_effects() -> MasterRemoves all effects from the chain.
Returns: Master — the master bus, for chaining
volume
Section titled “volume”fn volume(value: Number) -> MasterSets master volume. Clears any existing volume modulation.
Parameters:
value(Number) — volume in dB (0 = unity, -70 = mute, +6 = max boost)
Returns: Master — the master bus, for chaining
fn pan(value: Number) -> MasterSets master pan. Clears any existing pan modulation.
Parameters:
value(Number) — pan position (-1.0 = hard left, 0.0 = center, 1.0 = hard right)
Returns: Master — the master bus, for chaining
MasterParam
Section titled “MasterParam”A reference to the master bus fader parameter, obtained via master.volume or master.pan. Supports .get(), .set(), .set_norm() and modulation via <<.
fn get() -> NumberGets the current master fader value.
master.volume.get(); // => 0.0master.pan.get(); // => 0.0Returns: Number — volume in dB (0 = unity, -70 = mute), or pan (-1.0 to 1.0)
fn set(args: unknown) -> MasterParamSets this master fader’s value.
Accepts a Number (static set), Signal (modulation), Pattern (converted to modulation signal), or breakpoint arrays (automation lane).
master.volume.set(-6);master.pan.set(Sine(2).range(-0.5, 0.5));master.volume.set(#[0, -12], #[4, 0]);Parameters:
value...— Number, Signal, Pattern, or variadic[beat, value]breakpoint arrays
Returns: MasterParam — this reference, for chaining
set_norm
Section titled “set_norm”fn set_norm(value: Number) -> MasterParamSets this master fader using a normalized [0,1] value.
Volume: 0.0 = -70 dB (mute), 1.0 = +6 dB (max boost). Pan: 0.0 = hard left, 0.5 = center, 1.0 = hard right.
master.volume.set_norm(0.5);Parameters:
value(Number) — 0.0 = minimum, 1.0 = maximum
Returns: MasterParam — this reference, for chaining
ParamList
Section titled “ParamList”Wraps an array of parameter dicts from .params(). Prints as an aligned table; provides .data for programmatic access.
fn new(entries: Array)fn __str__Functionfilter
Section titled “filter”fn filter(name: String) -> ParamListFilters parameters by name substring, returns a new ParamList.
Parameters:
name(String) — substring to match against parameter names
Returns: ParamList — a new list of the matching parameters
length
Section titled “length”fn length() -> NumberReturns the number of parameters.
Returns: Number — the parameter count
fn get(index: Number) -> DictReturns the parameter dict at the given index.
Parameters:
index(Number) — zero-based position
Returns: Dict — the parameter entry at index
PluginList
Section titled “PluginList”Wraps an array of plugin dicts from plugin_scan(). Prints as an aligned table; provides .data for programmatic access.
fn new(entries: Array)fn __str__Functionfilter
Section titled “filter”fn filter(name: String) -> PluginListFilters plugins by name substring, returns a new PluginList.
Parameters:
name(String) — substring to match against plugin names
Returns: PluginList — a new list of the matching plugins
length
Section titled “length”fn length() -> NumberReturns the number of plugins.
Returns: Number — the plugin count
fn get(index: Number) -> DictReturns the plugin dict at the given index.
Parameters:
index(Number) — zero-based position
Returns: Dict — the plugin entry at index
RecordedAudio
Section titled “RecordedAudio”Captured audio data from audio_record(). Provides methods to inspect and save recorded audio.
fn save(path: String) -> RecordedAudioSaves the recording to a WAV file.
Parameters:
path(String) — output file path
Returns: RecordedAudio — this, for method chaining
duration
Section titled “duration”fn duration() -> NumberReturns the duration of the recording in seconds.
Returns: Number — the duration in seconds
samples
Section titled “samples”fn samples() -> NumberReturns the total number of samples in the recording.
Returns: Number — the total sample count
sample_rate
Section titled “sample_rate”fn sample_rate() -> NumberReturns the sample rate of the recording.
Returns: Number — the sample rate in Hz
fn left() -> ArrayReturns the left channel as an array of sample values.
Returns: Array — the left-channel sample values
fn right() -> ArrayReturns the right channel as an array of sample values.
Returns: Array — the right-channel sample values
fn mono() -> ArrayReturns a mono mixdown as an array of sample values.
Returns: Array — the mono mixdown sample values
TrackParam
Section titled “TrackParam”A reference to an audio track’s fader parameter, obtained via track.volume or track.pan. Supports .get(), .set(), .set_norm() and modulation via <<.
fn get() -> NumberGets the current fader value.
track.volume.get(); // => 0.0track.pan.get(); // => 0.0Returns: Number — volume in dB (0 = unity, -70 = mute), or pan (-1.0 to 1.0)
fn set(args: unknown) -> TrackParamSets this fader’s value.
Accepts a Number (static set), Signal (modulation), Pattern (converted to modulation signal), or breakpoint arrays (automation lane).
track.volume.set(-6);track.pan.set(Sine(2).range(-0.5, 0.5));track.volume.set(#[0, -12], #[4, 0]);Parameters:
value...— Number, Signal, Pattern, or variadic[beat, value]breakpoint arrays
Returns: TrackParam — this reference, for chaining
set_norm
Section titled “set_norm”fn set_norm(value: Number) -> TrackParamSets this fader using a normalized [0,1] value.
Volume: 0.0 = -70 dB (mute), 1.0 = +6 dB (max boost). Pan: 0.0 = hard left, 0.5 = center, 1.0 = hard right.
track.volume.set_norm(0.5);Parameters:
value(Number) — 0.0 = minimum, 1.0 = maximum
Returns: TrackParam — this reference, for chaining