Open-source VST3 / AU / Standalone MIDI controller plugin for the Sequential Take 5 polyphonic synthesizer.
Built with JUCE 8. Communicates over USB MIDI using the Take 5's NRPN implementation so every front-panel knob and parameter is automatable from your DAW.
- Panel-graphic UI — the plugin window shows the actual Take 5 front panel as a backdrop, with hardware-matching rotary knobs rendered in the correct positions
- Custom knob rendering — brushed-aluminium face, serrated black grip, white indicator line; orange accent ring on the Filter Cutoff knob
- Full NRPN mapping — all 42 hardware-confirmed parameters (oscillators, mixer, filter, envelopes, LFOs, effects, reverb, modulation matrix)
- Hardware → plugin — turns the hardware knob? The plugin updates automatically via incoming NRPN receive
- Push All — send every parameter to the Take 5 in one click (useful after loading a DAW preset)
- Auto-reconnect — polls for the USB device every 2 seconds; reconnects automatically if you power-cycle the synth
- State persistence — DAW saves/restores all parameter values in the normal plugin state
| Format | macOS |
|---|---|
| VST3 | ✅ |
| AU | ✅ |
| Standalone | ✅ |
Windows / Linux builds are not tested but should work with JUCE's cross-platform MIDI API.
- JUCE 8.0.6 — fetched automatically via CMake
FetchContent - CMake ≥ 3.22
- Ninja (
brew install ninja) - macOS 26 / Xcode CLT — if building on macOS 26, C++ stdlib headers require the SDK path workaround (handled by the Makefile automatically)
git clone https://github.com/HappyPathway/Take5-VST.git
cd Take5-VST
make # configure + build Debug (first build fetches JUCE ~2 min)
make run # build + launch Standalone
make install # install VST3 + AU + Standalone to ~/Library/...export CPLUS_INCLUDE_PATH=/Library/Developer/CommandLineTools/SDKs/MacOSX26.4.sdk/usr/include/c++/v1
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallelArtefacts land in build/Take5Plugin_artefacts/Release/.
- Connect the Take 5 via USB
- On the Take 5: GLOBAL → MIDI → MIDI Param Send → NRPN (enable)
- On the Take 5: GLOBAL → MIDI → MIDI Param Receive → NRPN (enable)
- Launch the plugin — the status bar shows ● Take 5 connected when detected
CMakeLists.txt JUCE 8 build definition
Makefile Convenience build/install/run targets
panel.png Take 5 front-panel image (2562×730, embedded as BinaryData)
src/
PluginProcessor.cpp/h AudioProcessor, APVTS, NRPN forwarding
PluginEditor.cpp/h Panel-backdrop UI, knob layout table
PluginParameters.h NRPN descriptor table (42 params, hardware-confirmed)
Take5LookAndFeel.h Custom rotary knob LookAndFeel
model/Take5State.h Data model (mod matrix, sequencer, patch state)
midi/
UsbMidiManager.cpp/h USB auto-connect, NRPN receive/decode
NrpnSender.cpp/h NRPN encode/send helper
proto/
take5_midi.py Python prototype — MIDI discovery, NRPN test, SysEx dump
nrpn_learn.py Interactive NRPN capture tool (used to build the map)
nrpn_map.json Hardware-confirmed NRPN→parameter map (42 entries)
All 42 NRPN values were captured directly from hardware using proto/nrpn_learn.py. See src/PluginParameters.h for the full table and proto/nrpn_map.json for the raw capture data.
- Knob alignment fine-tuning (positions verified against live hardware)
- Modulation matrix panel (16-slot table view)
- Program Menu parameters panel (hidden params: glide mode, key follow, pitch bend range, etc.)
- SysEx preset dump / load
- Step sequencer UI
- Windows / Linux CI
MIT — see LICENSE.
Sequential and Take 5 are trademarks of Sequential LLC. This project is not affiliated with or endorsed by Sequential.
