Astral Portal
A modular instrument built on a native audio engine
Astral Portal started as a browser instrument and outgrew the browser. Web Audio cost us roughly 25 ms of latency, 190 ms of pitch lag, and a garbage collector that could interrupt a take. So we wrote the engine again — natively, in C++ on JUCE 8 — and kept the interface that people already knew.
The result is a host-agnostic core: a lock-free command queue between the control thread and the audio thread, a click-free mixer, and a node graph that the sequencer, the sampler and the effects all plug into. The same engine is the foundation for every other audio product we ship.
On top of that core sits the part you actually touch: a generative sequencer whose grid cells can be Euclidean, scaled, arpeggiated, probabilistic, ratcheted or polyrhythmic; a sampler where any sample plays in time by default; and a Scene Rack that holds sources, per-source EQ with live spectrum, key and BPM detection, circular macro controls, and automation recording.
At a glance
- Engine
- JUCE 8 · C++17
- Latency
- Native buffer, no worklet overhead
- Formats
- Standalone app
- Platforms
- macOS (universal), Windows x64
What it does
Native audio core
JUCE 8 / C++17 engine with a lock-free control→audio queue. No GC pauses, no worklet limits.
Generative sequencer
Euclidean, scale, arpeggiator, probability, ratchet and polyrhythm nodes — all placed directly on the step grid.
Sampler that stays in time
Every sample is beat-synced by default: the transport always runs, periods snap to powers of two, phase is locked. Switch it off per sample.
Scene Rack
Sources, per-source EQ with live spectrum, BPM and key detection, circular macro sliders, automation recording.
Built for both desktops
macOS and Windows are built from one tree — the Windows binary cross-compiles from a Mac.