Skip to content
MASTER OF RHYTHM
COMPLETE 16-CH GROOVEBOX10€ / $11 / 40zł
OMNi Studio Workspace
OMNi DAW workspace: session matrix with nine tracks and scenes, mixer strips, and a device chain with modal resonator, filter, delay and sequenced FX
  • CLAP
  • VST3
  • LV2
  • VST2
  • JACK
  • PipeWire
  • ALSA
  • ASIO
  • Linux
  • Windows
  • 0.8 ms roundtrip
  • Free forever

What’s inside

Everything below ships in the free download. Nothing is a demo, a tier or an add-on.

Session andarrangement

Launch clips in a quantized session grid, then lay them out on a sample-accurate timeline. Both views share one engine, one mixer and one piano roll.

  • Scale-aware piano roll with note audition
  • 64-step sequencer: probability, ratchets, conditional trigs
  • Euclidean polyrhythm matrix
  • Clip launcher with scenes and follow actions
  • Timeline with five warp modes and Hermite fades
  • Console mixer with return buses and K-metering
OMNi session matrix with coloured clips across tracks and scenes

Fourteensynthesizers

Every voice is computed, never played back: waveguide pianos and violins, a physically modelled drum engine, spectral image synthesis and a synth driven by the periodic table.

Waveguide

Sympathetic string resonance, hammer-strike impulse noise and a continuous damper pedal model.

Concert piano01 / 14

Sampler

Drop a loop, slice it on transients, warp it to tempo and modulate every hit. Polyphonic, and free of clicks.

  • Slice to MIDI on detected transients
  • Five warp algorithms
  • Per-voice SVF filter and saturation
  • Two tempo-synced LFOs per sample
  • Voice-level modulation matrix
  • Non-destructive slicing, no clicks
OMNi sampler with waveform, slice markers and per-voice filter

Eighteeneffects

Hardware-grade processing on every track at 64-bit float: neural amp modelling, recurrent noise suppression, linear-phase limiting and zero-latency convolution.

Amp capture

Loads NAM profiles of real amps and pedals, from clean combos to high-gain stacks.

Neural Amp Modeler01 / 18

Fifteenmodulators

Drawer-based modulation. Classic LFOs and envelopes sit next to cellular automata, chaotic attractors, orbital mechanics and audio followers, and everything can patch to anything.

LFO

Tempo-synced LFO with Hermite interpolation and a hand-drawn shape editor.

Classic LFO, 7 shapes01 / 15

NineteenMIDI tools

Shape notes before they reach the synth: arpeggiators, chord stacks, scale quantizers, generative systems and processors you write yourself in OmniScript.

Arpeggio

Multi-pattern arpeggiation with octave range, swing and synced rate dividers.

Arpeggiator01 / 12

AI stemsplit

Split any clip into vocals, drums, bass and other with htdemucs on the GPU, without leaving the arranger. Warp settings and fades carry over to the new tracks.

  1. Vocals
  2. Drums
  3. Bass
  4. Other

Also from OMNi Audio

TOMiCA groovebox for €10

Master of rhythm. TOMiC 0.6 is a hardware-style groovebox workstation for beats, basslines, melodic synthesis, and modular sound design you play like an instrument, not a plugin. Bought once, updated for life.

  • 16 channels, each with two morphing layers
  • 12 synthesis architectures incl. Mesh 2D physical modelling
  • 40 modulators per layer, 450+ targets
  • 64-step polymetric sequencer, 13 banks, Song Mode
  • 16 studio effects per chain
  • VST3, CLAP and standalone. Windows and Linux.
TOMiC 0.6 workstation: channel list, dual oscillator and noise panels, LFO visualiser, 64-step sequencer and console

Why Rust

A workstation should never drop a buffer because a plugin misbehaved or the UI redrew. These are the four hard problems of a real-time audio engine, and how OMNi solves each one.

01Lock-Free Messaging

The problem

Standard multi-threaded communication relies on Mutexes or channels that allocate heap memory. In an audio thread, acquiring a lock or triggering an allocation will cause priority inversion or garbage collection pauses, producing audible dropouts (buffer underruns).

How OMNi does it

All UI control changes and MIDI triggers are serialized into fixed-size enums and passed to the audio thread via lock-free ringbuffers (crossbeam-channel). The audio thread polls these queues using non-blocking calls (try_recv), guaranteeing zero locks and zero allocations.

pub struct AudioQueue {
    sender: crossbeam_channel::Sender<AudioCommand>,
    receiver: crossbeam_channel::Receiver<AudioCommand>,
}

impl AudioQueue {
    // Called on the audio thread — zero alloc, zero locks
    pub fn process_commands(&self, state: &mut AudioThreadState) {
        while let Ok(cmd) = self.receiver.try_recv() {
            match cmd {
                AudioCommand::SetParam(id, val) => {
                    state.set_parameter(id, val);
                },
                AudioCommand::TriggerNote(note) => {
                    state.trigger_voice(note);
                },
            }
        }
    }
}
02Parallel Graph Routing

The problem

Standard thread pools (like Rayon) use work-stealing algorithms. While highly efficient for batch operations, they introduce severe scheduling jitter (100μs+) due to OS thread sleeping, which ruins low-latency audio processing cycles.

How OMNi does it

A custom thread pool (RtThreadPool) using spinning barriers. Worker threads never sleep or yield during buffer calculation; they spin-wait on a shared atomic sequence counter. This keeps threads awake and synchronized, achieving near-zero scheduling overhead.

pub struct SpinBarrier {
    counter: AtomicUsize,
    target: usize,
}

impl SpinBarrier {
    // Spin-wait prevents OS thread sleeping
    pub fn wait(&self) {
        let mut spins = 0;
        while self.counter.load(Ordering::Acquire) < self.target {
            if spins < 1000 {
                std::hint::spin_loop();
                spins += 1;
            } else {
                std::thread::yield_now();
                spins = 0;
            }
        }
    }
}
03Subprocess Sandboxing

The problem

Third-party plugins are notorious for memory leaks, null pointer dereferences, and access violations. Because plugins conventionally run in the host process, a single plugin crash will instantly terminate the DAW, causing projects to be lost.

How OMNi does it

Omni isolates external plugins into a separate, sandboxed subprocess or protects the audio thread with a sub-millisecond Circuit-Breaker. Audio and MIDI blocks are streamed via shared memory (mmap) and IPC ringbuffers. A plugin crash merely bypasses that node, maintaining DAW stability.

pub struct SandboxedPlugin {
    ipc_channel: IpcConnection,
    shared_memory: MmapMut,
}

impl SandboxedPlugin {
    pub fn process_block(&mut self, input: &[f32], output: &mut [f32]) {
        self.shared_memory.write_input(input);
        self.ipc_channel.send(IpcSignal::ProcessBlock);
        // Wait for signal from sandboxed process
        self.ipc_channel.wait_for_signal(IpcSignal::ProcessComplete);
        self.shared_memory.read_output(output);
    }
}
04OS Page & CPU Pinning

The problem

The operating system dynamically swaps RAM pages to disk. If the audio thread requests memory that has been swapped out, a page fault occurs, causing a massive CPU stall. Additionally, denormal floats slow down calculations by 100x.

How OMNi does it

During engine initialization, we call mlockall to lock all current and future DAW memory pages in physical RAM. Simultaneously, we modify the MXCSR CPU register to enable Flush-To-Zero (FTZ) and Denormals-Are-Zero (DAZ) states on the audio thread.

pub fn configure_realtime_thread() {
    // 1. Lock memory pages against swap
    #[cfg(target_os = "linux")]
    unsafe {
        libc::mlockall(libc::MCL_CURRENT | libc::MCL_FUTURE);
    }

    // 2. Configure MXCSR register (FTZ + DAZ)
    #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
    unsafe {
        use std::arch::x86_64::*;
        let mxcsr = _mm_getcsr();
        _mm_setcsr(mxcsr | 0x8040);
    }
}
Language
100% Rust, no garbage collector, zero allocations on the audio path
Audio backends
JACK and PipeWire with transport sync, ALSA, ASIO, cpal
Plugin hosting
CLAP, VST3, LV2, VST2 in sandboxed subprocesses with a circuit breaker
Audio thread
SCHED_FIFO priority, mlockall, FTZ/DAZ denormal protection
Concurrency
Lock-free crossbeam queues and a spinning-barrier realtime thread pool
SIMD
f32x4 vectorised DSP via the wide crate
Interface
egui / eframe, GPU-accelerated immediate mode
Release
Linux AppImage and Flatpak, Windows installer

Download OMNi

Linux AppImage and Flatpak, or a Windows installer. About a minute from here to your first clip.

Free forever. Pre-alpha builds ship every few weeks.

Say hello

Questions, bug reports, feature ideas or a track you made in OMNi. Every message is read by the person who wrote the DAW.

Or join the Discord