Realm
A luminous grand piano beneath audio light trails

From waveform to model.
One GPU pipeline.

Audio is not a side channel. It is first-class GPU data.

A live concert with performers, lights, and a large audience

Decode and capture

Load WAV, FLAC, or MP3, capture a live device, or read the audio track from a video into an explicit Float32 contract.

An audio engineer at a mixing console surrounded by studio equipment

Process on GPU

Mix, normalize, resample, saturate, and filter with block-parallel Biquad and 1–64-section SOS processing on the GPU.

A suspended speaker array in an acoustic installation

Extract features

STFT, mel spectrograms, and MFCCs produce ordinary Matrix values ready for the Ml stack.

A lush botanical conservatory with an immersive sound installation

Stream and encode

Play, seek, loop, or encode through the same stream contract used by Vision for synchronized media.

OA Viewer waveform output
OA Viewer spectrogram output
OA Viewer mel spectrogram output

Inspect the signal, not just the code.

Waveforms, spectra, and mel features are real OA values rendered for inspection. The same explicit data contract can move from ingest through GPU processing to a model or a human-readable diagnostic without an export detour.

One signal. Every stage. Same contract.

Decode, transform, synchronize, and deliver without breaking the data model between media, compute, and machine learning.

01

One tensor contract

Audio is Float32 Matrix data shaped [channels, samples], with sample rate and channel layout carried explicitly.
02

GPU-first DSP

Schema-owned waveform operations, saturation, block-parallel Biquad, SOS filtering, and Ml-ready features share explicit graph ownership and independent host oracles.
03

Real media I/O

File decode, device capture, playback, video audio tracks, WAV output, and AAC recording share one timeline.
04

Cross-module composition

Audio features feed Ml directly; audio and video share timestamps, completion, and container boundaries.
05

Rust-native composition

PascalCase values and snake_case operations live directly in oa::audio and compose with the same Matrix and Engine contracts.
06

Capability-gated Vulkan

The compute path uses the same vendor-neutral runtime as Core, Ml, and Vision; each device pack remains independently qualified.

One audio pipeline. Two matching surfaces.

A condensed view of the SDK pipeline: decode, collapse to mono, normalize, fade, reverberate, and save. Rust and Python follow the same sequence through the native OA runtime.

1use oa::{Engine, Path, audio};
2
3let engine = Engine::new()?;
4let path = Path::asset_rel("audio/oaNarration.wav");
5let source = audio::decode_file(&engine, &path)?;
6let mono = audio::to_mono(&source)?;
7let normalized = audio::normalize(&mono, audio::NormalizeAudioConfig {
8 target_db: -3.0, ..Default::default()
9})?;
10let faded = audio::fade(&normalized, 2400, 2400)?;
11let room = audio::reverb(&faded, 1.5, 0.4)?;
12audio::save_wav_f32(&Path::var_rel("audio/room.wav"), &room)?;

One library. Across the stack.

Follow the same Engine, values, and explicit execution contract into another module.