lib.rs |
Module list by theme; re-exports Session and vst3_host. |
model.rs |
The project document (serde), everything saved: ids, slot counts, default colours, and the re-exports of model/. |
model/track.rs |
Track, TrackKind, InputSel, PluginSlot, ChannelEq, sends, freeze info, track alternatives, Group, Vca. |
model/region.rs |
Region, RegionContent, Note, CcEvent and the arithmetic of looped regions. |
model/take_folder.rs |
TakeFolder, Take, Comp, CompSegment. |
model/automation.rs |
AutoParam, AutoPoint, AutoLane, AutoMode. |
model/project.rs |
Project, markers, punch, master, cycle. Tree and routing helpers: normalize_tree, process_order, output_of, feeds, reaches, prune_routes. |
dsp.rs |
The real-time graph’s front page: MAX_BLOCK and the other limits, Engine and Engine::new. |
dsp/process.rs |
Engine::process and process_block: the block loop, serial or on the pool, the master and the output. |
dsp/strip.rs |
run_strip: one strip’s whole block, on the serial loop or a worker. |
dsp/apply.rs |
Engine::apply: what each Cmd does, and finding strips and inserts, silencing, flushing and chasing. |
dsp/cmd.rs |
Cmd and Garbage. |
dsp/track.rs |
TrackDsp, InsertDsp, Plugin, RegionDsp, TrackParams, and containing a plug-in’s bad output. |
dsp/block.rs |
What a block shares: Scratch, BlockCtx, Outlets, Routes and Direct; the mixing functions (play_audio, mix_send). |
dsp/status.rs |
Meter, EngineStatus, BlockLoad (the CPU meter). |
dsp/click.rs |
ClickParams, the click and the count-in. |
dsp/tests.rs |
Unit tests on a small rig (rig()). |
dsp/offline.rs |
Engine::render and Isolate: offline rendering of the full mix or one track. |
dsp/graph.rs |
TaskGraph: which strips wait for which, built from the project off the audio thread. |
dsp/pool.rs |
Pool: the worker threads, running a graph’s tasks with no lock or queue. Knows nothing of audio. |
dsp/parallel.rs |
Strips on the pool: Parallel, Workers, Deferred (a strip’s routes there), covers. |
dsp/pdc.rs |
DelayLine (power-of-two ring with read taps), PdcParams, PdcGlobal. |
dsp/multi_out.rs |
OutputFeed: an aux reading its instrument’s output bus. |
dsp/builtin.rs |
BuiltinDsp (a built-in effect in an insert slot), FxShared, parameter normalization. |
dsp/auto.rs |
Automation past a track’s own strip: folder stacks’ volume and mute (FoldState) and Stereo Out’s lanes. |
fx/mod.rs |
The Effect trait, EffectInfo, ParamSpec, the registry and factory presets. |
fx/compressor/, limiter.rs, gate.rs, deesser.rs |
Compressor (five circuits: mod.rs, params.rs, curve.rs, tests.rs), Limiter, Noise Gate, De-Esser. |
fx/reverb/ |
Reverb: the effect (mod.rs), params.rs, all-passes and the decay filter (parts.rs), the 16-line FDN (fdn.rs), the Dattorro plate (plate.rs), tests.rs. |
fx/delay/ |
Delay (Stereo, Ping-Pong, Tape, Digital): mod.rs, params.rs, tests.rs, and primitives.rs (Line, Biquad, Osc, flush, note values), which other effects share. |
fx/tuner.rs, loudness.rs |
Tuner (McLeod pitch method) and Loudness Meter (BS.1770 / EBU R128). |
fx/chorus.rs, flanger.rs, phaser.rs, tremolo.rs |
Modulation: Chorus and Flanger (one swept delay, ModDelay, in chorus.rs), Phaser (all-pass chain), Tremolo (synced to the song position). |
fx/overdrive.rs, distortion.rs, gain.rs |
Overdrive and Distortion (DriveCore in distortion.rs: 4× oversampled waveshaper, compensated drive, tone, mix), Gain (a smoothed 2×2 channel matrix). |
fx/linear_phase_eq.rs, fir.rs |
Linear Phase EQ (the Channel EQ’s bands as one linear-phase FIR, designed on a worker thread); FIR design and partitioned FFT convolution. |
fx/lfo.rs, oversample.rs |
LFO and smoothing for the modulation effects; half-band FIR oversampling. |
fx/biquad.rs, dyn_common.rs |
Shared filter and dynamics building blocks. |
presets.rs |
Factory presets of the Channel EQ, user preset files. |
strip_settings.rs |
StripSetting and the saved channel strip setting files. |
tempo.rs |
TempoMap: samples to beats and bars and back, tempo ramps, signatures, grid. |
session.rs |
Session, Tick, TrackPatch, the module list and Session::new. |
session/engine_sync.rs |
Engine plumbing: send, track_params, regions_dsp, build_track, rebuild_graph, sync_globals, sync_tracks. |
session/undo.rs |
checkpoint, undo, redo, restore. |
session/transport.rs |
Play, stop, locate, record, placing a finished recording; cycle, tempo, signature, metronome. |
session/tracks.rs |
Adding, deleting, duplicating and moving tracks; stacks. |
session/groups.rs |
Groups and update_track, the Channel EQ, the analyzer’s target, the selected track. |
session/regions.rs |
Region edits and audio import. |
session/plugins.rs |
Insert slots: loading, removing, bypassing, editors, the plug-in list. |
session/periodic.rs |
idle and tick, and the warnings the tick carries. |
session/files.rs |
New, save and open. |
session/routing.rs |
Auxes, sends and outputs; feedback-loop checks. |
session/threads.rs |
Processing Threads: starting and stopping the workers, sending the task graph (sync_parallel). |
session/multi_out.rs |
Multi-output instruments: the instruments’ outputs for the UI, add_output_aux, sync_output_buses (called from update_pdc), what Freeze and Bounce in Place refuse. The design notes are at its top. |
session/crossfades.rs |
Fade shapes and types from the inspector, the Crossfade command, the X-Fade drag mode (auto_crossfade), Crossfade Time (crossfade_frames). |
session/drag_modes.rs |
Region edits as the Tracks area makes them: drag_move_regions, drag_nudge_regions, drag_resize_region, drag_delete_regions, drag_paste_regions, in the drag mode and with Move Automation with Regions. |
session/auto_lanes.rs |
Stereo Out’s lanes (strip_lanes), folder stacks’ volume and mute automation, the extra lanes shown under a track (set_auto_lanes). |
session/recovery.rs |
Crash safety: atomic project writes (write_atomic), recording journals, recovering interrupted takes, the fallback from a damaged project.json. |
session/bounce.rs |
Bounce, Export All (or Selected) Tracks, Export Region, Bounce in Place (render and place), normalize. |
session/range_edit.rs |
Audio Track Editor range edits (RangeEdit) and multi-point splits; clip info. |
session/marquee.rs |
The Tracks area’s marquee: split, delete (in the drag mode) and copy the parts of regions in a time range across tracks. |
session/arrange_cmds.rs |
Logic’s arranging commands: section edits between the locators or in the marquee (a time map applied to regions, automation, markers and arrangement sections, as session/arrangement.rs does), Insert Cut Section, the Trim commands, Remove Gaps, Delete and Shuffle, Paste Replace, Move to Playhead, Strip Silence, names and colours between tracks and regions. |
session/options.rs |
Applying Prefs, recording folder, default fades, overlapping-recording placement, MIDI merge, project options, nudge, autosave and recovery. |
session/midi_content.rs |
set_midi_content (Piano Roll edits) and Standard MIDI File import/export. |
session/pdc.rs |
Plug-in latency, the compensation solver, the PDC report. |
session/freeze.rs |
Track Freeze and frozen_guard. |
session/markers.rs |
Marker edits and the Autopunch range. |
session/arrangement.rs |
Arrangement track edits: add, rename, colour, resize, and moving, copying or deleting a section with its content. |
session/takes.rs |
Recording into take folders, Autopunch trimming, comp edits, Flatten, Merge, Pack, Unpack. |
session/auto_write.rs |
Automation writing (Touch, Latch, Write), plug-in editors following automation, lane edit commands. |
session/controllers.rs |
Controller assignments: the last touched parameter, learning, the saved list, applying controller moves through the normal edit paths (undo steps, automation touches that let go 0.5 s after the controller stops). Run from idle. |
session/builtin.rs |
Built-in effects in slots: instantiation, parameters, side-chains, meters for open panels. |
session/vst_key.rs |
VST3 side-chain inputs: keeping each plug-in’s aux bus in line with its slot’s key source. |
session/vst_undo.rs |
Undo steps for edits in a VST3’s own editor: the last known states, which edits make a step and when, and putting a plug-in back. |
session/presets.rs |
Copy and paste of plug-ins and Channel EQ; loading and saving presets. |
session/insert_order.rs |
Reordering Audio FX inserts; moving or copying a plug-in to another strip. |
session/strip_settings.rs |
Copy, paste, reset, save and load channel strip settings. |
session/strip_meters.rs |
The clip indicators’ peak holds (PeakHolds) and each strip’s gain reduction for the tick. |
session/vca.rs |
VCA edits: create, delete, level, mute, name, colour, assigning strips, nesting. |
session/region_moves.rs |
Moving several regions as one edit. |
session/musical_moves.rs |
Moves in bars and beats through the tempo map (musical_shift, nudges by a bar, beat or note value). |
session/zero_crossings.rs |
Snap Edits to Zero Crossings: where splits, trims and range edits of audio regions land. |
session/region_gain.rs |
Per-region gains from a gain drag (set_region_gains). |
session/tempo.rs |
Tempo and Signature track edits, Move MIDI Regions with Tempo. |
session/region_params.rs |
Region inspector parameter edits, Apply Region Parameters, the playback list entries of regions with parameters, the snapshot’s played notes. |
session/alternatives.rs |
Project alternatives: new, switch, rename, delete; name checks. |
session/backups.rs |
Backups on save, pruning, Revert to, Revert to Saved, the fallback on open. |
session/templates.rs |
User project templates: save, list, rename, delete, new project from one. |
session/track_alternatives.rs |
Track alternatives: new, duplicate, switch, rename, delete. |
session/patterns.rs |
Pattern regions: create, set_pattern, convert to and from MIDI regions, realizing them for regions_dsp. |
takes.rs |
Pure take-folder logic: comp editing, playback pieces and crossfades, RecPlan. |
arrangement.rs |
The Arrangement track’s arithmetic: tiling sections and the time maps (Piece, Plan) for moving, copying and deleting them; automation through a time map. Pure. |
arrange_cmds.rs |
The arranging commands’ arithmetic: section edits as time maps, edges and sections through them, Remove Gaps and Remove Overlaps on a lane. Pure. |
strip_silence.rs |
Strip Silence: the parts of a stretch of audio above a threshold, with minimum silence, pre-attack and post-release. Pure. |
automation.rs |
AutoTarget, LaneDsp, value_at, curves (shape), splice, thin, plug-in id remapping and take_plugin_lanes. |
auto_move.rs |
Move Automation with Regions on one lane: carrying a region’s stretch of automation to where it lands. Pure. |
drag_modes.rs |
The No Overlap, Shuffle L and Shuffle R drag modes on one track’s lane of spans. Pure. |
fades.rs |
Fade curves, Speed Up and Slow Down tables, the crossfade types, where crossfades go (crossfades, loop_seams). |
midi.rs |
Pure MIDI content helpers: split, trim, join with controller chasing; the notes held over a position (note chase); clearing a range (Record in Replace mode). |
region_params.rs |
Region playback parameters: the transforms (quantize with swing, gate, delay, transpose, dynamics, velocity), playback windows, bake for Apply. |
pattern.rs |
Step Sequencer patterns: the model, the notes a pattern plays (swing, ties, gates, per-row rates and lengths), realize and from_notes. |
smf.rs |
Standard MIDI File reader and writer. |
audio_io.rs |
Device enumeration and the duplex stream that drives the engine. |
denormals.rs |
NoDenormals: flush-to-zero on the audio thread (x86_64 and aarch64). |
recorder.rs |
The recording disk-writer thread and live previews. |
midi_io.rs |
MIDI inputs (midir), velocity curves, the MIDI activity log, assigned controllers taken off the live path (inject_from feeds a message in as a port would, for tests). |
plugin_db.rs |
Out-of-process plug-in scanning, the cache, the scan report, the config folder. |
prefs.rs |
Prefs (Settings) and the metronome and bit-depth types saved in projects. |
clip.rs |
Audio held in memory, the waveform overview, and the zero-crossing search. |
controllers.rs |
Controller assignments, the pure part: targets, reading CC and pitch bend, port names without ALSA’s numbers, the fader taper, ranges, Jump and Pickup. |
decode.rs |
Decoding audio files in any supported format, resampling, WAV writing. |
decode/gapless.rs |
MP4/M4A encoder delay and padding (iTunSMPB tag or edit list), trimmed after decoding. |
audio_file.rs |
Writing bounces: AudioFormat, BitDepth, the shared dithering Quantizer. |
audio_file/wav.rs, aiff.rs, flac.rs |
The writers: WAV through hound, AIFF and AIFF-C by hand, FLAC through flacenc. |
eq.rs |
Channel EQ biquads (f64), coefficient computation, the analyzer spectrum. |
synth.rs |
Marbble Synth, the original small polyphonic instrument. Unchanged since it was written: old projects depend on its every sample. |
instrument/ |
Built-in instruments: the Instrument contract and registry (mod.rs), Marbble Synth in the registry (basic.rs), Marbble Tre (tre/), Sei (sei/), Cinque (cinque/), Uno (uno/), Sedici (sedici/), Onda (onda/), what they share (common.rs) and test with (test_kit.rs). See Built-in instruments. |
synth_dsp/ |
Parts for synth models: osc, filter, env, lfo, alloc, analog, resample, smooth. |
transients.rs |
Onset detection for transient markers and Split at Transients. |
vca.rs |
VCA faders: the offset and mute a strip gets from its VCA chain, loop checks. |
sysvol.rs |
Linux only: the sound server’s input volume for the recording device (input level check). |
wav_repair.rs |
Repairing the headers of WAV files a crash left mid-recording. |