16Scientific Computing6 of 44 runs pass

SuperCollider Synth Resampling

Let a SuperCollider Synth run at its own block size and sample rate, reblocking and resampling audio at its boundaries so feedback loops and oversampled algorithms work.

Results

Each square represents one run. Score is the percentage of runs that pass: 0, 25, 50, 75, or 100 for four runs.

#ModelRolloutsPass@1ScoreTime
1GPT-6.1 Sol max3/475.02.8h
2Claude Sonnet 5.5 max2/450.03.7h
3GPT-6 Astra xhigh1/425.02.6h
4Claude Opus 5.5 max0/403.6h
5GPT-5.6 Sol max0/401.7h
6Gemini 3.8 Flash high0/404.0h
7Qwen3.8 Max xhigh0/403.8h
8GLM 5.3 Flash max0/404.0h
9Muse Spark 1.3 max0/403.9h
10Kimi K3 max0/404.0h
11Grok 4.7 xhigh0/403.7h

Background

SuperCollider is a platform for real-time audio synthesis: its language describes synthesis graphs as SynthDefs, and a server runs them as Synths sharing audio and control buses in fixed blocks. Some algorithms need a smaller block or a higher sample rate (a feedback loop is one block long, so Karplus-Strong needs block size 1), but until upstream #7402 the only option was to change the whole server. The agent makes block size and sample rate per-SynthDef properties, adding two class library objects, extending the SynthDef format, and in both servers running each Synth at its own rates while every bus, control and trigger at its boundary behaves unchanged.

Task

Reblock(blockSize) and Resample(factor) each take a power of two or a Synth control read once at creation, reject anything else when the SynthDef is built, and add pinned fields to the SynthDef format. Inside the Synth, rate queries, control-rate UGens and feedback loops follow the Synth's own rates, including in third-party plugins. From outside, every bus I/O UGen and mapped, lagged or trigger control behaves as on a normal Synth: zero-order hold on upsampling, keep-first-sample on downsampling. Invalid values fall back with a warning, supernova implements the same semantics for constant values, and existing SynthDefs and tests keep working.

Workspace

The offline sandbox (4 CPUs, 8 GB, 4 hours) holds the SuperCollider repository at the parent of the upstream merge, built and installed with both servers, class library linked for live edits. A dummy JACK backend stands in for a sound card. The upstream unit tests and generated rendering cases are held out.

Verification

The committed tree is rebuilt from a clean checkout with existing tests restored. C++ server tests and class library unit suites must not regress, plain Synth graphs must render as before, upstream unit tests must pass, and SynthDef bytes are checked field by field. Hidden scores render non-realtime on both servers: rate queries, every bus UGen, graphs where a reblocked Synth must match its plain twin, triggers and invalid factors. Samples are compared within 1e-4, and each feature family must reach 90%.

Environment

Toolchain
C++
Compute
4 CPUs · 8 GB RAM
Network
Offline
Time limit
4 hours

References

All tasks