Skip to content

Rendering

This content is for v0.7. Switch to the latest version for up-to-date documentation.

Resonon renders audio offline to stereo WAV files at maximum speed. Pattern loops can be bounced to disk for use in DAWs or distribution.

Set project metadata before rendering. The title determines the output folder name (falls back to “untitled” if unset):

project_title("House Beat");
project_artist("RESONON");

Use render() to bounce pattern loops for a given number of cycles:

CallOutput
render(cycles)Master mix
render(track, cycles)Single track
render(master, cycles)Master mix (explicit)
render(#[tracks], cycles)Each track as separate WAV
render(#[tracks, master], cycles)Tracks + master mixdown
render_master(cycles)Master mix (convenience)
render(4); // Master mix, 4 cycles
render(drums, 4); // Single track
render(#[drums, hats, bass], 4); // Multiple tracks
render(#[drums, hats, bass, master], 4); // Tracks + master mix
render_master(4); // Master mix shorthand
PropertyValue
FormatWAV (PCM)
ChannelsStereo
Sample rate48,000 Hz
Bit depth24-bit integer

These are fixed defaults.

Renders are written to:

renders/{project}/{project}_{YYYY-MM-DD_HH-MM-SS}/
kicks.wav
snares.wav
hats.wav
master.wav

The project name is sanitized from project_title(): lowercased, special characters replaced with underscores, consecutive underscores collapsed, trimmed, and capped at 50 characters. Empty or all-special-character titles fall back to “untitled”.

Example: "Track #1 (Final)" becomes track_1_final.

  • Offline speed — rendering runs at maximum speed, not constrained to real-time
  • Audio paused — live audio output is paused during a render and resumes automatically when it finishes
  • Progress — a progress bar shows the current cycle, total cycles, and estimated time remaining
project_title("House Beat");
project_artist("RESONON");
use "std/instruments" { Sampler, Kit };
// Tracks
let kicks = AudioTrack("kicks");
kicks.load_instrument(Sampler(Kit("cr78")));
kicks << [bd*4];
let snares = AudioTrack("snares");
snares.load_instrument(Sampler(Kit("cr78")));
snares << [_ cp].fast(2);
let hats = AudioTrack("hats");
hats.load_instrument(Sampler(Kit("cr78")));
hats << [_ hh].fast(4);
// Effects
kicks.load_effect(Lowpass(600));
snares.load_effect(Delay(0.2, 0.3));
hats.load_effect(Highpass(3000));
// Render 4 cycles with all stems + master
render(#[kicks, snares, hats, master], 4);