← All modules
AvailableInstrument

Oscillo

A synth controlled through a visual tuning display.

Engine preview

VST3

About

Oscillo starts from a fact about pictures rather than sound: feed an oscilloscope two tones and the figure only stands still when their frequencies are in a small-integer ratio. Equal temperament never is, its fifth is 2^(7/12), not 3/2, so a tempered interval draws a figure that slowly writhes. Just intonation is what makes the picture calm down, and that is why this synth is tuned the way it is.

OSC 2 is not a second note; it is an interval. Its pitch is derived from OSC 1 through the just ratio table, so +7 semitones means exactly 3:2 above whatever you play, on every key. The tuning key (C by default) anchors the scale itself, and a system toggle lets you switch the whole instrument to equal temperament to hear, and watch, the difference.

Oscillo's audible voice is one compiled persistent product: the same restricted-TypeScript implementation is used by plugin export and the website's optimized browser engine. MIDI and parameters enter through the SDK host contract; stereo output feeds the normal analyser and Lissajous surface.

The older browser-only drive, chorus, delay and reverb sidebar is intentionally not exposed in compiled mode: those stages were never part of the protected Oscillo kernel. They return only when their exact reusable graph factories can be composed without mixing browser DSP into this product.

System requirements.

The downloadable Oscillo release supports the hosts and systems listed below.

  • VST3macOS · arm64

    Works in Ableton Live, Reaper, Cubase, Studio One, Bitwig and FL Studio.

Version 0.0.0

Build evidence

Every row below is a recorded build row or the recorded absence of one. Nothing here is inferred from what this module is meant to support.

Module
music.codex.oscillo v0.0.0
Built at
Closure hash
d11d324e1a53…
Toolchain
  • scriptc 64acce1ae3b8…
  • moduleToolchainDist c621ffab721d…
  • pluginShellKitRuntime bca003784692…
  • faceShellGeneration 8533207ab81f…
  • uiPreservation cd28dbd7e3d6…
  • packagerVersion 3
Build result and download for each format
FormatResultDownload
Browser package (JS)
Builtweb

bundle sha256 2fa3ee318bfd… · 433 KB

Built, but no downloadable archive was recorded.
Browser package (WASM)
Builtweb

bundle sha256 499d653d45ee… · 2.0 MB

Built, but no downloadable archive was recorded.
VST3
Builtdarwin-arm64Steinberg validator + VST3 host render: passed

bundle sha256 8b7a2c9290e8… · 2.1 MB

CodexOscillo-vst3-darwin-arm64.zip

archive sha256 c73c6f1c3c3e… · 2.1 MB · darwin-arm64

Audio UnitNot built

no recorded artifact row for au; native-lane-report.json is absent or records no au row for this module

Not built for macOS
CLAPNot built

no recorded artifact row for clap; native-lane-report.json is absent or records no clap row for this module

Not built for macOS, Windows or Linux
Standalone appNot built

no recorded artifact row for standalone; native-lane-report.json is absent or records no standalone row for this module

Not built for macOS, Windows or Linux

Parity

browser-js = browser-wasm = vst3 qualified against their own recorded digests. Not recorded: au, clap, standalone.

Presets

Start from a named sound, then adjust the instrument to make it yours.

InitPure FifthGolden ThirdOctave BloomTritone WebUnison DriftDeep SirenCathedral Fourth

Popular presets for Oscillo

Open a sound shared by the community, then play it in this module.

Signal graph.

Experimental

Migration fallback: approximated from parameter groups, not a runtime wiring diagram.

How it works.

Every note resolves through the shared tuning library (lib/tuning.ts). In just mode a note's frequency is the key's equal-tempered anchor times the just ratio for its distance from the key, so intervals against the key are exact fractions like 3/2 and 5/4 rather than powers of 2^(1/12). OSC 2 goes one step further: its frequency is OSC 1's times the ratio for the configured interval, which guarantees the pair is pure on every key of the keyboard.

The scope is the module's center on purpose. It reads the engine's post-master analyser and draws in phase-shift Lissajous mode: X is the signal, Y is the same signal offset by a fraction of the analysis window. Two tones in ratio p:q trace a closed p:q figure that stands still; detune either oscillator by a few cents and the figure rotates at exactly the beat rate. Nothing about the drawing is decorative, it is the tuning, plotted.

The persistent host has 0 audio-input channels; note and control events arrive through the SDK at sample offsets, and its two planar outputs feed the website analyser and native host buses without a browser DSP stage in between.

One LFO runs free from module load, retriggering it per note would make it a second envelope. It has a single depth control and a single target selector; switching target moves the depth between three permanently-connected modulation stages (voice detune in cents, a tremolo gain, the stereo panner), so the switch itself is click-free.

Goes well with.

Preview

OSC Mini

A compact subtractive synth for learning the signal path.

Preview
Preview

Gamelan

Modelled bronze instruments with flexible tuning.

Preview
Preview

Wavetable

Single-cycle waves with continuous position morphing.

PreviewNot built for macOS, Windows or Linux