Audio
Global mix control and session recording, independent of whatever mode is
running. The mix is rate: state — sent on change, re-sent on /sys/sync,
safe to send twice.
Messages
Section titled “Messages”/audio/master/volume/audio/master/mute/audio/bus/volume/audio/speaker/volume/audio/record/start/audio/record/stop/audio/record/saved/audio/master/volume
Master output gain.
f -
gainf float32 0.0 – 1.0normalizeddefault 0.8 - Linear-perceptual gain: 0.0 is silence, 1.0 is the installation's calibrated maximum. SuperCollider applies its own curve, so send the fader position, not decibels.
/audio/master/volume 0.8 NetAddr("127.0.0.1", 57120).sendMsg('/audio/master/volume', 0.8); osc.Send(Osc.AudioMasterVolume, 0.8f); The calibrated maximum is set during installation and is the loudest the room should ever get — a classroom full of children, so set it with someone standing where they will stand.
/audio/master/mute
Mute or unmute all output, keeping the volume setting intact.
i -
mutedi int32 0 | 1default 0 - 1 mutes, 0 unmutes. A flag, hence an int and not a float.
/audio/master/mute 0 NetAddr("127.0.0.1", 57120).sendMsg('/audio/master/mute', 0); osc.Send(Osc.AudioMasterMute, 0); Mutes with a short fade to avoid a click. For an instant kill use /sys/panic.
/audio/bus/volume
Level of one category of sound.
sf -
buss string "voice" | "music" | "ambience" | "sfx" | "content" - voice = narration and spoken instructions. music = arpeggiator, background music. ambience = looping soundscapes. sfx = game feedback chosen by SuperCollider. content = teacher-uploaded audio.
-
gainf float32 0.0 – 1.0normalizeddefault 1.0 - Applied before the master gain.
/audio/bus/volume ambience 0.5 NetAddr("127.0.0.1", 57120).sendMsg('/audio/bus/volume', "ambience", 0.5); osc.Send(Osc.AudioBusVolume, "ambience", 0.5f); Every sound belongs to exactly one bus: /sample/play names its bus explicitly, and sounds SuperCollider generates itself go to sfx or music.
SuperCollider ducks music and ambience under voice automatically, so a narrated story stays intelligible without the engine managing levels line by line.
/audio/speaker/volume
Trim one speaker's output.
if -
speakerIndexi int32 speaker index - Speaker index, per the speaker map on the home page.
-
gainf float32 0.0 – 1.0normalizeddefault 1.0 - Per-speaker trim, applied after the master gain.
/audio/speaker/volume 2 0.9 NetAddr("127.0.0.1", 57120).sendMsg('/audio/speaker/volume', 2, 0.9); osc.Send(Osc.AudioSpeakerVolume, 2, 0.9f); For installation-time calibration, not for panning during play. SuperCollider places sounds from hold positions itself.
/audio/record/start
Start recording everything the wall plays to a file.
s -
sessionIds string - Name for the recording, e.g. "class-3b-2026-09-19-synth". Becomes the file name, so letters, digits and dashes only.
/audio/record/start class-3b-2026-09-19-synth NetAddr("127.0.0.1", 57120).sendMsg('/audio/record/start', "class-3b-2026-09-19-synth"); osc.Send(Osc.AudioRecordStart, "class-3b-2026-09-19-synth"); Records the master output — what the room heard — including every effect. This is what makes Climbing Synth sessions into a library: a saved recording can be played back later with /sample/load and /sample/play like any other file.
Starting while already recording stops and saves the current file first.
/audio/record/stop
Stop recording and save the file.
Acknowledged by /audio/record/saved.
/audio/record/stop NetAddr("127.0.0.1", 57120).sendMsg('/audio/record/stop'); osc.Send(Osc.AudioRecordStop); A no-op if nothing is recording.
/audio/record/saved
A recording has been written to disk.
sfs -
sessionIds string - The sessionId given to /audio/record/start.
-
durationf float32 seconds - Length of the saved recording.
-
paths string - Where the file landed, relative to the asset root, so it can be passed straight to /sample/load.
/audio/record/saved class-3b-2026-09-19-synth 184.2 recordings/class-3b-2026-09-19-synth.wav ~osc[\audioRecordSaved].value("class-3b-2026-09-19-synth", 184.2, "recordings/class-3b-2026-09-19-synth.wav"); // handler for Osc.AudioRecordSaved