Intention is all there is. The work is just a reminder.
The Fairlight Audio Visualizer is a real-time audio plugin for Logic Pro, built as an Audio Unit with JUCE and C++. It draws two reference points together into a single display: the stacked waveform lines of Joy Division's Unknown Pleasures cover and the Page R sample display of the Fairlight CMI — the legendary 80s synthesizer workstation that redefined what music production hardware could look like.
The result is a waterfall visualizer that updates in tempo-synced steps, building a history of frequency snapshots as audio plays through it. The intent is not technical analysis but visual art: playing a synthesizer through the plugin and sweeping frequencies paints evolving waveform landscapes that can be captured as poster-ready stills.
Tempo-Synced Waterfall
The display cycles through 32 horizontal slices, advancing one slice per 8th note as locked to Logic Pro's transport. Each slice is a 64-band frequency snapshot of the incoming audio, mapped linearly from 20 Hz to 8 kHz — a deliberate choice that spreads bass and mid content across the full width rather than compressing it into the left edge. High frequencies above 8 kHz are cut entirely. A mid-high boost of up to 12× exaggerates peaks on the right side for more dramatic visual contour. The stepped animation creates a stop-motion rhythm that is as much about timing as it is about frequency content.
Aesthetic and Color
The duotone palette is fixed: #262626 background, #E8DAC8 warm cream for waveforms and text. No fills — outline only, each waveform a single continuous line. Timecode (bars:beats:ticks) appears in the top left in a monospace terminal font, BPM in the top right, raw frequency values along the bottom. The UI is fully resizable from 400×300 to 1920×1080, so the display scales to fill a monitor or a corner of a session.
Plugin Architecture
JUCE (Jules' Utility Class Extensions) is a C++ framework purpose-built for audio software. It is the industry standard for developing audio plugins and applications — used by Focusrite, Native Instruments, and hundreds of independent plugin developers. What makes it relevant here is that it abstracts the deeply platform-specific work of building an Audio Unit for macOS: the low-latency audio callback, DAW host communication (transport sync, BPM, timecode), the resizable plugin window, and the graphics rendering layer all come from JUCE, leaving the actual creative logic — the FFT analysis, waterfall geometry, and visual design — as the focus of the work.
The plugin is a stereo Audio Unit (2-in, 2-out), built as a Universal Binary targeting both ARM64 and x86_64 — running natively on Apple Silicon and Intel Macs. FFT analysis runs at 2048 samples per block via JUCE's dsp::FFT. The core is split across three components: PluginProcessor handles audio and FFT, WaterfallVisualizer owns the display geometry and rendering, and PluginEditor coordinates the two. Two experimental visual styles — a 3D perspective version and an isometric projection — are preserved as backup files in the project.
Creative Use
The plugin is designed to be played like an instrument. A synthesizer patched into the input becomes a drawing tool: slow filter sweeps trace mountain ridges, sharp transients carve peaks, sustained chords build textured plateaus. Screenshots taken at the right moment produce artwork that reads as autonomous composition rather than signal analysis.
Tools
- JUCE
- C++
- Xcode
- Logic Pro
- Web Audio API