R2Project. Plugins

VST3 & Audio Unit · macOS

SpyBand

SpyBand

Band vocoder with a 22 × 22 patch matrix · Effect

Ported from the 2004 Cakewalk DXi, rebuilt from its own sources.

Download for macOS SpyBand-1.1.1.0.pkg · 2.2 MB · Universal · signed & notarised

Version 1.1.1.0. Installs a VST3 and an Audio Unit, each selectable separately. Quit your DAW first — a running host holds the old copy open.
Release notes and checksum · Source

The SpyBand plug-in window
The black SpyBand panel on the Classic 9-Band preset: the sample slots and envelope controls on the left, the BANDS page of the display in the middle — each band’s filter drawn as its real response, the modulator’s envelopes as amber bars, Bottom and Top as draggable markers — and on the right the input check, a 9 × 9 corner of the pin-board matrix (the diagonal plus two half-level pins off it) and the output. Drawn by the plug-in’s own editor code, not a mock-up.

SpyBand is a band vocoder, ported from the 2004 Cakewalk DXi to VST3 and Audio Unit for macOS and rebuilt from its own sources rather than reimplemented from its behaviour.

It runs the input through a bank of 9, 12, 18 or 22 bandpass filters, takes the envelope of each band of a second signal, and multiplies the two together through a 22 × 22 patch matrix — so any band of the modulator can drive any band of the carrier, not just its own. The diagonal is a plain vocoder. Everything off it is why the plug-in exists, and is what it is named after.

You can report bugs or request features on the project’s GitHub issues page.

New in 1.1.1.0

Flush-to-zero on the audio thread. Each processing block now runs with the CPU's flush-to-zero mode on, putting the host's setting back afterwards, so a signal decaying towards silence can never slow the plug-in down. SpyBand already cleared its own filters and envelopes of these tiny “denormal” numbers; this covers everything else, and anything added later.

Nothing you can hear has changed: the sound, the presets, the parameters and saved projects are exactly as in 1.1.0.0. The version number has moved so that hosts which cache Audio Units notice the new one.

New in 1.1.0.0

A new panel

The editor is no longer a copy of the DXi's dialog. It is a black hardware panel to match R2Synth: white printing on matte black, knurled knobs with printed scales, a rotary selector for every switch, small OLED-style screens and a little wear from years on a desk. All the lettering is drawn by the plug-in itself, so it is sharp at any size and the same in every host.

Eight factory presets

Classic 9-Band, Wide 12-Band, Fine 22-Band, Upside Down, Shifted Up, Interlace Live, Noise Whisper and DXi Defaults, chosen from the bar at the top of the panel. Classic 9-Band spans about 100 Hz to 8 kHz and is the quickest way past the near-silent defaults. Presets leave your loaded files alone. SAVE writes your own as .vstpreset files to ~/Library/Audio/Presets/AE Cobley/SpyBand, where hosts that browse that folder find them too, and a project reopens showing the preset it was on. The factory presets are built into the plug-in, so the installer still offers just the two formats.

Output Trim reaches +6 dB

It ran from −60 to 0 dB; it now runs to +6 dB. The default is still −20 dB, and projects and presets saved with earlier versions keep the trim they had. Nothing in the sound changed, and the identity codes are the same, so SpyBand stays in place in your projects.

One-way upgrade. Projects saved with 1.1.0.0 will not open their SpyBand settings in an earlier version — the saved state has a new version number for the trim's range. Earlier projects open in 1.1.0.0 unchanged.

New in 1.0.1.0

The maker is now “AE Cobley”, in both formats — it was “A. E. Cobley”. REAPER files an Audio Unit's presets under its name cut off at the first full stop, so every A. E. Cobley Audio Unit shared one REAPER preset list and showed the others' presets, which did nothing when chosen. The plug-in's identity codes are unchanged, so projects saved with earlier versions still open with SpyBand in place. Hosts that list plug-ins by maker now show it under AE Cobley. Nothing in the sound changed.

After upgrading. Presets you saved in a host that files them by maker are in ~/Library/Audio/Presets/A. E. Cobley/SpyBand — move them to ~/Library/Audio/Presets/AE Cobley/SpyBand to see them again. In REAPER, Audio Unit presets you saved earlier stay in its old shared list; the VST3 is unaffected.

Read this first, or it will seem broken

Three things about SpyBand are the opposite of what you would guess, and between them they account for every "this is faulty" moment during the port.

1. The live input is the CARRIER, not the modulator. In most vocoders you sing into the modulator and a synth is the carrier. Here it is the other way round: your input is the thing being shaped, and the loaded .wav files — or the right input channel — do the shaping. So the input is always audible in the output. That is the plug-in working, not leaking.

2. It is nearly silent at its factory defaults. Bottom Freq and Top Freq default to 1 % and 2 %, which puts all nine bands between 26.8 Hz and 51.8 Hz. These are the DXi's own defaults, kept deliberately as the DXi Defaults preset. Load Classic 9-Band instead, or move both controls before judging anything.

3. Interlace mode needs a genuinely stereo input. It makes the LEFT channel the carrier and the RIGHT channel the modulator. Feed it a mono source and the signal becomes its own modulator: every band gets multiplied by its own envelope, which is a per-band squaring that sounds like harsh distortion. Watch the SAME AUDIO ON L AND R lamp in Input Check. If it lights, you have a mono source and no plug-in setting will help.

Getting a sound out of it in thirty seconds

Quickest of all: put SpyBand on a track, load a .wav into a sample slot and choose the Classic 9-Band preset. The fastest route with no files at all:

For the intended workflow, load a .wav instead: drop it on a sample slot (or right-click the slot and Choose), make sure the slot's lamp is lit, leave Interlaced on Use Sample (Source on Samples), and set the two frequency controls as above. Your input is the carrier; the file is the modulator.

The controls

Levels

The bands

The envelope

Voiced / unvoiced

A vocoder gets its consonants from noise. This detector watches the modulator and opens a pink-noise substitute when it goes unvoiced.

Modes

The patch matrix

The 22 × 22 grid is the heart of it. Row runs across and is the modulator; column runs down and is the carrier. Set the diagonal and you have an ordinary vocoder. Every cell off the diagonal routes one part of the spectrum to control another — low bands opening high ones, spectral inversion, and anything else the grid allows.

On the panel it is a pin board: a red pin is 100 %, a white pin 50 %, and dragging a cell up or down sets any level between. DIAGONAL, REVERSE, SHIFT and CLEAR set the common patterns in one click, and the pattern survives a change of band count. The small matrix beside the display shows the corner in use; the display's MATRIX page shows all of it.

Known gaps

Signal routing

Carrier and modulator through the filter bank and the envelope followers, into the matrix, and out through the voiced/unvoiced substitution and the Through path. — open the drawing full size.

Specification

Technical specification for SpyBand
Formats VST3 (.vst3) and Audio Unit v2 (.component), built from one CMake project
KindEffect
Audio Unit identity aufx / SpyB / AECo — check it with auval -v aufx SpyB AECo
ArchitectureUniversal 2 — Apple Silicon and Intel
RequiresmacOS 10.13 or later
SigningDeveloper ID, notarised by Apple
Version1.1.1.0 (v1.1.1.0)
Installer SpyBand-1.1.1.0.pkg, 2.2 MB
Installs to /Library/Audio/Plug-Ins/VST3/ and /Library/Audio/Plug-Ins/Components/, each selectable separately in the installer
Licence Creative Commons Attribution-ShareAlike 4.0 (CC-BY-SA-4.0)
Source github.com/acobley/SpyBand-VSTi
Download for macOS SpyBand-1.1.1.0.pkg · 2.2 MB · Universal · signed & notarised

Version 1.1.1.0. Installs a VST3 and an Audio Unit, each selectable separately. Quit your DAW first — a running host holds the old copy open.
Release notes and checksum · Source