VINAIscope — Manual
A studio-grade, bit-transparent oscilloscope and waveform analyzer. See exactly what your signal is doing — to the sample — through the Phosphor Display Engine, with CRT-style persistence, focus glow and instant overflow detection. Zero latency, zero footprint. v1.0.1 · VST3 · AU.
01Overview
VINAIscope is an analysis tool, not a processor. It taps the signal and renders a real-time waveform through the Phosphor Display Engine — a CRT you'd actually want in the rack. Persistence trails paint a glowing afterimage of the waveform, FOCUS adds trace bloom, scanlines and phosphor decay give you the old-school read, and the moment a sample crosses full-scale the overflow indicator flares. Everything is redrawn at up to 120 Hz with none of the lag of real glass.
The audio leaves exactly as it arrived — bit-transparent, sample-accurate, zero added latency. Park it anywhere in the chain, leave it on the master, A/B with it inserted: the sound never changes, only your view of it does. One logarithmic TIME control sweeps the window from a single kick transient out to whole phrases, and a rising zero-cross trigger locks the trace dead still when you need to read fine detail.
02The interface

- Scope display (center) — the live phosphor waveform with persistence trails, focus bloom, scanlines and the CRT graticule.
- Overflow indicator — flares the instant a sample crosses full-scale, so you catch the clip the moment it happens.
- Control row (TRIM · TIME · PERSISTENCE · FOCUS) — the four knobs that scale, window and shape the trace.
- FREEZE — holds the current frame on screen so you can study a captured moment.
03Knobs & buttons
TRIM
Visual amplitude scaling, ±12 dB — display only, never touches the audio
TIME
Window length, 5 ms – 5 s on a logarithmic sweep — from a single transient to whole phrases
PERSISTENCE
Phosphor afterglow, 0–100% — how long the trail lingers behind the live trace
FOCUS
Glow / bloom on the live trace — tightens or softens the beam
FREEZE
Holds the current frame on screen for close study
Trigger
Rising zero-crossing locks the trace on windows ≤ 200 ms; above that it free-runs for long-form movement — automatic, no control needed
Overflow
Indicator flares on any full-scale crossing — instant clip detection
Signal path
Bit-transparent pass-through — analysis only, zero added latency, nothing to compensate
04Under the hood
VINAIscope is deliberately all display, no DSP. There is no filter, no gain stage, no oversampling and no processing of any kind on the audio path — the analyzer reads the signal and hands the original samples straight back to the host, bit-for-bit. Everything you see happens downstream, on the GUI thread, decoupled from audio entirely.
Signal flow
- Bit-transparent tap. On each audio block the input is copied — not routed — into a lock-free, single-producer / single-consumer FIFO and then passed through untouched. The output buffer is the input buffer: no summing, no scaling, no rounding, so the signal is bit-exact in and out.
- Power-of-two waveform FIFO. The capture ring holds 217 samples (131,072). A power-of-two length lets the read/write indices wrap with a single bitmask instead of a modulo, keeping the audio-thread write to a couple of branch-free instructions and zero locks.
- No audio-thread allocation or DSP. The render path never touches the audio callback — the FIFO is the only point of contact. Because nothing is filtered, resampled or smoothed, there is no group delay to report and nothing to latency-compensate: PDC is reported as zero.
- 120 Hz GUI redraw. The Phosphor Display Engine drains the FIFO and repaints at up to 120 Hz on the message thread, fully asynchronous to the audio block size — buffer changes in the host don't alter what you see, only how often it updates.
- Zero-cross triggering. For windows ≤ 200 ms the engine searches the captured buffer for a rising zero-crossing and aligns the draw origin to it, so periodic material stands dead still. Above 200 ms — where a static lock would fight long-form movement — it free-runs.
- Catmull-Rom trace. The sampled points are interpolated with a Catmull-Rom spline for a smooth, anti-aliased waveform rather than hard polylines between samples — the curve passes through every captured point with no overshoot artefacts on the displayed line.
- Phosphor-persistence ring. Previous frames are retained in a persistence ring buffer and decayed frame-over-frame, building the CRT afterimage; FOCUS drives a bloom pass on the live trace, scanlines and an overflow glow are composited on top — all purely visual.
- Metering / overflow. The overflow flag is raised whenever a captured sample reaches or crosses full-scale (|x| ≥ 1.0). It is a read-only observation of the tapped signal — VINAIscope never clamps, limits or otherwise alters the sample it flagged.
The net result: zero latency, zero coloration, zero self-noise. You can leave it inserted on the master through mixdown and bounce — the render is bit-identical with the analyzer in or out of the chain.
05Measured
Measured in-house (headless host + numpy/scipy), 48 kHz.
| Latency | 0 ms / 0 samples — zero-latency |
| Audio path | Bit-transparent pass-through (bit-exact) |
| Self-noise | None — analysis only, audio untouched |
| Sample rate tested | 48 kHz |
06Specifications
| Type | Oscilloscope / real-time waveform analyzer (Phosphor Display Engine) |
| Display | CRT-style — phosphor persistence, focus glow, scanlines, overflow detection |
| Trim | ±12 dB visual amplitude scaling — display only, no audio change |
| Time window | 5 ms – 5 s, logarithmic |
| Persistence | 0–100% phosphor afterglow |
| Trigger | Rising zero-crossing on windows ≤ 200 ms · free-run above · FREEZE |
| Latency | Zero — bit-transparent pass-through, analysis only |
| Formats | VST3 · AU |
| Systems | macOS (Universal) · 64-bit |
| Version | 1.0.1 |