VINAIscope Manual
A studio-grade, bit-transparent oscilloscope and waveform analyzer. See exactly what your signal is doing (down to the sample) through the Phosphor Display Engine, with CRT-style persistence, focus glow and instant overflow detection. Zero latency, zero footprint. v1.0.0 · 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, phosphor decay gives 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 (left): the live phosphor waveform with persistence trails and focus bloom on a clean 10 × 8 graticule, with a lava trigger marker on the left edge on every window up to 200 ms, fully lit while the trigger holds the trace and dimmed while it waits for one.
- Overflow indicator: flares the instant a sample crosses full-scale, so you catch the clip the moment it happens.
- Knob strip (TRIM · TIME · PERSIST): the three knobs on the right 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, spanning a single transient to whole phrases
PERSIST
Phosphor afterglow, 0–100%: how long the trail lingers behind the live trace, from a 30 ms to a 1.5 s half-life. Trigger windows only: in free-run the scrolling picture is the history
FOCUS
Glow / bloom on the live trace, tightening or softening the beam. It has no knob on the panel: set it from your host's automation or generic plugin view (default 40%)
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. All automatic, no control needed
Overflow
Indicator flares on any full-scale crossing, giving you 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 read (never routed) into a lock-free, single-producer / single-consumer FIFO as one mono trace, half of each channel, and the audio itself passes 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 220 samples (1,048,576). 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.
- Physical-resolution beam. The trace is built at the screen's physical resolution straight from the captured samples: a line through every sample while there are at most two samples per pixel, and a per-column min/max band above that, so dense material paints a solid band instead of a scribble. In a triggered window the band follows that same line on the crossing's sub-sample time, so a steady signal paints a band that stands still.
- Phosphor at screen resolution. In trigger windows the beam lights its pixels every frame and the light fades exponentially, with a half-life from 30 ms to 1.5 s across PERSIST. A still trace looks exactly as it does with PERSIST at zero; only movement leaves a trail. Free-run windows have no phosphor, because their scrolling picture is already the history. FOCUS scales the glow around the beam's core and the overflow glow is composited on top. All of it is purely visual.
- Metering / overflow. The overflow flag is raised whenever either input channel goes beyond full scale (|x| > 1.0), checked on each channel before TRIM and before the two channels are summed into the single mono trace, so a clip on one side still lights OVER; a non-finite sample counts as a clip. 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, overflow detection · 10 × 8 graticule |
| 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 12+ (Universal) · Windows 10+ · 64-bit |
| Version | 1.0.0 |