SUPERB

Quick start

Which function to call. Each flow page opens with a full example; the linked reference has every signature, argument, error and undo step. ARCHITECTURE.md is the rules, TERMINOLOGY.md the words.

Do this

you wantcallreference
a new sessionsession::createsession
open or savesession::open, session::savesession
where files gosession::layout, Root, Layoutsession
bring in an audio filesession::import_audio, then clip::add with .keysession, clip
keep mute, solo, arm, the playheadsession::state_filesession
tempo, a tempo change or ramp, a metersession::set_tempo, tempo_change (TempoChange::Step / Ramp), meter_changesession
a loop rangesession::set_loop, then transport::loopingsession, transport
undo or redosession::undo, session::redosession
a tracktrack::add; archive / restore; rename, move_to, colortrack
mute, solo, arm, monitor, inputtrack::mute, solo, arm, monitor, input, midi_channeltrack
volume, pan, route, a metertrack::volume, pan, route, peaktrack
a clipclip::add, move_to, split, trim, gain, fade_in, fade_out, mute, rename, archive, restoreclip
notes in a MIDI clipclip::add_note, remove_note, change_noteclip
a markermarker::add, move_to, rename, removemarker
play, stop, locatetransport::start, stop, seek, rewind, looping, playhead, statetransport
a sendsend::add, remove, level, enablesend
play notes from codemidi::play_note, release_note, sendmidi
a hardware keyboarddevices::midi_inputs, midi::connect_inputdevices, midi
recordrecord::start, punch_in, punch_out, collect, stoprecord
a crash left filesrecord::unfinished, record::recoverrecord
the click, a count-inmetronome::enable, level, count_inmetronome
a mix, or stemsexport::bounce, export::stemsexport
speakers and inputsdevices::outputs, output, close_output, inputs, input, close_inputdevices
hear with no sound cardsession::steps::render_blockssession
rebuild the mixer nowsession::steps::rebuildsession

State (mute, solo, arm, monitor, input, clip mute, send on/off, looping, the click, the count-in, the playhead) is heard at the next block, is not an undo step, and is saved only after session::state_file. Volume, pan, send level and the other drags are edits: calls within Session::COALESCE_WINDOW (half a second) merge into one undo step.

Not a flow

These exist in the crate. A session does not apply them for you.

you wantcallheard when you use the flows?
an insert or a plugin on a trackstore it with AddInsert / RemoveInsert / MoveInsert / set_insert_bypass / set_insert_param on Memory. To hear it, load a PluginNode and call Mixer::add_insert on a mixer you builtno. build_mixer does not read insert chains
automationprimitives::automation: AutomationLane::apply_block, AutomationBankno. The memory does not own lanes
a compressor, limiter, gate, de-esser or levelerprimitives::graph::dynamicsonly if you place the node yourself
loudness, true peak, an offset, silenceprimitives::analysis::{meter, offset, silence}export::stems reports loudness of each file. The meters are yours to call
VST3primitives::plugins::vst3AVAILABLE is false. Every call returns unsupported()

Memory is the data (superb::primitives::session::Memory). Session is the open session (session::Session). Commands are Command<Memory>.

On this page