A-Spectrogram
Fwuzeem Audio A-Series
What it is
A-Spectrogram is a real-time scrolling frequency display for inspecting spectral energy and harmonic content over time. It reads the most recent captured samples, applies a Hann-windowed FFT, converts the magnitudes to dB, and paints a scrolling spectrogram image. The audio path is bit-perfect pass-through: FFT analysis and every display control run outside the audio output path. V-Shift changes only the visual analysis level.
Controls & parameters
| Parameter ID | Display name | Range | Default | What it does |
|---|---|---|---|---|
gain | V-Shift | -20.0 to +20.0, step 1.0 | 0.0 | Provides the pre-plot visual gain zoom: 2^shift, equivalent to about +/-6.0206 dB per step in the displayed magnitude. It does not change audio. |
fftsize | FFT Size | 512, 1024, 2048 | 1024 | Sets the number of samples in each FFT analysis window. |
range | Range | 60 dB, 80 dB, 100 dB, 120 dB | 80 dB | Sets the displayed colour dynamic range from the visual floor to 0 dB. |
scale | Scale | Log, Linear | Log | Selects logarithmic or linear frequency mapping. |
The V-Shift knob uses the house rotary range of pi*0.82 to pi*2.18 with a stop at the ends. At 0, no visual level offset is applied. Positive shifts make quiet spectral content more visible; negative shifts make hot content easier to view within the display range. The implementation applies this as the equivalent dB offset to FFT magnitudes; these changes affect the spectrogram image only.
FFT size controls the analysis window used for each frame. A larger size provides more frequency bins but represents a longer time window. Range controls colour mapping, not the level of the audio or the dynamic range of the output. In Log mode the display maps from 20 Hz to the host Nyquist frequency. In Linear mode it maps from 0 Hz to Nyquist.
Workflow / how to use it
- Insert A-Spectrogram on the track, return, or bus you want to observe.
- Leave V-Shift at
0for the unoffset visual level. Use it as a visual zoom when quiet or hot material is difficult to see. - Start with
1024FFT Size and80 dBRange. Choose512when a shorter analysis window is useful, or2048when more frequency detail is useful. - Use
Logto inspect the spectrum in a pitch-oriented view from 20 Hz upward. UseLinearwhen equal frequency spacing is more useful. - Read persistent horizontal features as ongoing spectral content and brief vertical features as events over time, while remembering that no setting changes the pass-through audio.
Use cases
- Spectral balancing. Place A-Spectrogram on a track or subgroup and compare broad low, mid, and high-frequency energy while making mix decisions. Use Log scale for a view closer to musical frequency spacing and choose the FFT size that gives the needed time detail.
- Resonance hunting. Use
2048and a suitable range to inspect narrow, persistent bands. Sweep or edit the source while watching whether a frequency stays present or appears only on a transient. - Mix-bus checking. Put the plugin on the mix bus to watch spectral changes across sections, fills, and transitions without adding processing or latency to the bus. Switch to Linear scale when a frequency-by-frequency view is more informative.
- Quiet-detail inspection. Use a positive V-Shift setting to bring low-level harmonics or tails into the visible colour range. The boost is a display-side ratio of x2 per step, not a bus gain change.
Specs & requirements
- Formats: AU and VST3.
- Audio layouts: matching mono or stereo input and output layouts; the normal configuration is stereo.
- Processing: FP32 and FP64 audio processing are supported.
- Audio latency: no intentional audio delay; FFT capture and image rendering are outside the audio path. Tail length is 0 seconds.
- MIDI: no MIDI input or output; this is not a MIDI effect.
- Programs and state: one host program; parameter state is stored as APVTS XML.
- Platform target: macOS 10.15 or later.
- Build: use the shared CMake pipeline from the A-Spectrogram folder (
cmake -B build, thencmake --build build).
Notes / caveats
- A-Spectrogram performs no audio DSP. Its output is the input passed through unchanged, apart from normal host bus-layout handling.
- FFT processing and image updates run on the GUI side at 30 Hz. The display reads the most recent samples from a fixed 32,768-sample ring buffer and averages the left and right channels before analysis.
- The FFT uses a Hann window. The visual range is a colour-map floor of 60, 80, 100, or 120 dB relative to the display’s 0 dB reference; it is not a calibrated loudness or LUFS measurement.
- The visual analysis is stored and processed as float samples after capture, even when the host selects the FP64 audio process path. This does not alter the FP64 audio output path.
- V-Shift changes only the magnitude values used to colour the image. It cannot increase headroom, reduce clipping, or change the audio sent to the host.