plyphon
SuperCollider's scsynth engine, rebuilt in pure Rust - the same engine and API
on native and wasm32-unknown-unknown. Each example below runs the engine live in
your browser; open it and click the page to start audio.
Synthesis
- sine - the simplest example: a continuous 440 Hz sine.
- motif - a looping motif of self-freeing notes.
- waveforms - cycles through the oscillators through a filter.
- operators - a ring-modulated, soft-clipped bell tone built from
BinaryOpUGen/UnaryOpUGenmath operators. - filters - a classic resonant low-pass sweep: a saw through an LFO-swept
RLPF. - moog - a resonant acid bassline: a saw through a
MoogFFladder filter with an LFO-swept cutoff and high feedback resonance. - noise - metallic rain:
Dust2impulses ring aRingzresonator over aPinkNoisebed. - wandering - a generative burble:
LFNoise1wanders the pitch,LFNoise2sweeps the filter,LFDNoise3shimmers the amplitude. - auto-wah - an envelope-following auto-wah: a
PeakFollowertracks a plucked source's amplitude and drives anRLPFcutoff. - scale-walk - a scale-quantised melodic walk: an
LFNoise1indexes a scale buffer throughIndex, always landing on in-scale notes. - bell - modal bell synthesis: an
Impulsestrikes aKlankbank of inharmonic resonators, ringing a struck-metal bell. - wavetable - a morphing wavetable drone: a
VOscsweeps through a bank of increasingly-bright wavetables, crossfading sine to saw. - vowel - a synthesized sung vowel: three
Formantoscillators voice the formants of an "ah" over a vibrato'd fundamental. - granular - a granular time-stretch:
Warp1smears a short synthesized arpeggio into a slowly-morphing stereo pad, holding pitch while a slow pointer stretches time. - reverb - a cavernous space: two Karplus-Strong plucked strings on drifting clocks smear through a large
GVerbfeedback-delay-network reverb. - sample-hold - a self-playing sequence: an
Impulseclock latches a pitch contour withLatchinto a plucked saw. - waveshaping - a wavefolder: a sine driven hard through
Foldwith an LFO-swept drive. - chaos - a chaotic drone: a
CuspNoscillator through a filter swept by a slowLatoocarfianNmap. - hard-sync - a hard-sync lead: a
SyncSawwhose saw frequency is swept by an LFO over a fixed pitch. - bouncing-ball - physical-model percussion: a
TBallbouncing on an oscillating floor rings aRingzresonator. - envelope - percussive plucks shaped by multi-segment
EnvGenenvelopes. - pan - a tone auto-panned across the stereo field with
Pan2. - feedback - feedback FM: voices modulate themselves through a one-block-delayed
LocalIn/LocalOutbus. - delay - a feedback echo: a plucked ping recirculated through a
DelayNdelay line sized from itsmaxdelaytime. - comb-string - Karplus-Strong plucked strings: noise bursts excite a tuned
CombLresonator, diffused by anAllpassC. - custom-unit - a custom unit generator (a
tanhsaturator) registered alongside the base set. - duty-seq - a self-driving melodic sequencer:
Duty.krpulls pitch and rhythm from demand-rateDseq/Dseries/Dwhitesources on the audio thread. - drunk-melody - a self-driving drunk-walk melody:
Duty.krclocks aDibrownrandom walk over MIDI notes, glided byLag.
Buses & control
- routing - an LFO-swept filter on noise, wired through audio and control buses.
- control - host-driven control buses: an arpeggio steered by
/n_map+/c_set. - node-control - in-graph node-to-node control: separate
gaternodes pause, resume, and free the drones by id withPause/Free. - glide - the control family: a portamento lead glides between notes via a
LagControlwhile aTrigControlticks each onset.
OSC & scheduling
- osc - drives the engine through encoded OSC packets; the command log prints to the console.
- schedule - sample-accurate rhythm: time-tagged OSC bundles scheduled ahead of the audio clock.
- triggers - a
SendTrigclock fires/trbeats the host turns into notes; voice groups self-free via a done action. - send-reply - audio→host emission: an amplitude follower reports its level via
SendReply(/amp), logged to the console.
Buffers & files
- scgf - loads a SuperCollider SCgf-compiled SynthDef and plays it.
- sampler - loads a WAV through a
BufferSource(fetched on the web) and loops it withPlayBuf. - stream - streams a WAV from storage in chunks and plays it with
DiskIn. - record - captures a pitch sweep into a buffer with
RecordBuf, then loops it back withPlayBuf.
Run any example natively with cargo run -p example-<name>. See the
repository for details.