discover · compare · collections · requirements · contribute · feed · watching · stats · help with your tokens
LongKelvin/midi-chord-detector-plugin · source
Snapshot 0 · 2026-11-04T12:47:28Z · C++ · MIT
Content fingerprint
8d387fd2c8fd718ab79be01304169cc10c160d04ce0da477be0b195b8138f6c7GitHub description at capture
A lightweight MIDI plugin for midi real-time chord detection in DAWs
README at capture
# MIDI Chord Detector A real-time MIDI chord detection VST3 plugin with **pattern-based interval matching** for jazz, live performance, and composition.    ## Overview MIDI Chord Detector analyzes incoming MIDI notes and identifies chords in real-time using a pattern-based interval matching algorithm with 60+ chord patterns.  **Key Features:** - 60+ chord patterns (triads, 7ths, 9ths, 11ths, 13ths, altered dominants) - Real-time detection with confidence scoring - Slash chord notation for inversions - Sustain pedal support - Zero latency MIDI pass-through - Toggleable panels: Keyboard, Notation (grand staff), Active Notes Monitor **Note:** This is a **VST3 Instrument** (not MIDI FX) for compatibility with Cubase AI/Elements and other DAWs. ## Features - **60+ Chord Patterns** - Triads, 7ths, 9ths, 11ths, 13ths, altered dominants, add chords - **Accurate Detection** - Pattern-based interval matching with weighted scoring - **Inversion Support** - Intelligent slash chord notation (Auto/Always/Never modes) - **Voicing Classification** - Close, open, drop-2, drop-3, rootless - **Real-Time Safe** - No allocations in audio thread, zero latency - **Sustain Pedal** - Respects CC64 for natural playing - **MIDI Pass-Through** - Forwards MIDI to downstream instruments ### Supported Chord Types **Basic:** Major, Minor, Diminished, Augmented, Sus2, Sus4, Power5 **7th Chords:** maj7, 7, m7, m(maj7), dim7, m7♭5, aug7, +maj7, 7sus4 **6th Chords:** 6, m6, 6/9, m6/9 **Extended:** maj9, 9, m9, maj11, 11, m11, maj13, 13, m13 **Altered Dominants:** 7♭5, 7♯5, 7♭9, 7♯9, 7♯11, 7alt, 9♯11, 13♭9, etc. **Add Chords:** add9, m(add9), add11, add♯11 **Special:** Quartal voicings ## How It Works 1. **MIDI Input** → Convert to pitch classes (0-11) 2. **Voicing Analysis** → Classify chord voicing type 3. **Root Testing** → Test all 12 possible roots 4. **Pattern Matching** → Score against 60+ chord patterns 5. **Confidence Calculation** → Multi-factor confidence scoring 6. **Output** → Display chord name with optional slash notation **Algorithm Details:** See [Docs/Algorithm-Explanation.md](Docs/Algorithm-Explanation.md) ## Quick Start 1. **Load Plugin** - Add "MIDI Chord Detector" as a VST3 Instrument 2. **Route MIDI** - Connect MIDI output to a sound-generating instrument 3. **Play** - Chord names display in real-time as you play **Tested with:** Cubase AI 13 **Should work with:** FL Studio, Reaper, Studio One, Ableton Live, Logic Pro (via bridging) ## Installation **From Release:** 1. Download from [Releases](../../releases) 2. Extract `MIDI Chord Detector.vst3` to `C:\Program Files\Common Files\VST3\` 3. Restart DAW and rescan plugins **From Source (Windows):** ```powershell .\build.ps1 # Plugin will be in: build\MidiChordDetector_artefacts\Release\VST3\ ``` **From Source (macOS / Linux):** ```bash ./setup.sh # fetches JUCE + Bravura font (one time) ./build.sh # configure + build + install VST3 # Plugin will be in: build/MidiChordDetector_artefacts/Release/VST3/ # and installed to: ~/Library/Audio/Plug-Ins/VST3/ (macOS) ``` For a universal binary: `./build.sh --universal`. See [Docs/Build-macOS.md](Docs/Build-macOS.md) for full details and troubleshooting. **Requirements (Windows):** Windows 10/11, Visual Studio 2022+, CMake 3.15+ **Requirements (macOS):** macOS 11+, Xcode Command Line Tools, CMake 3.15+ (`brew install cmake`) ## Known Limitations - **Ambiguous chords** - C6/Am7 share identical notes; algorithm uses scoring heuristics - **Sus chord ambiguity** - Csus2 vs Gsus4 without context - **Sparse voicings** - May misidentify incomplete voicings without harmonic context - **Platform** - Windows and macOS supported; primarily tested with Cubase (Windows) and Ableton Live (macOS) - **No user settings** - Engine parameters are hard-coded ## Troubleshooting **No MIDI detected:** Use as VST Instrument, not audio insert **No chord shown:** Play 2+ notes simultaneously **Plugin missing:** Check VST3 folder path, rescan plugins ## Documentation - [Algorithm Explanation](Docs/Algorithm-Explanation.md) - How the detection works - [Algorithm Implementation](Docs/Algorithm-Implementation.md) - Technical details for developers - [Technical Design](Docs/Technical-Design.md) - Architecture and contribution guide ## Contributing Contributions welcome! Areas for improvement: - Additional chord patterns and voicings - Scoring weight tuning - macOS support - User-configurable settings in UI See [Technical Design](Docs/Technical-Design.md) for contribution guidelines. ## License MIT License - see [LICENSE](LICENSE) ## Credits Built with [JUCE Framework](https://juce.com/) Author: Long Kelvin - [GitHub](https://github.com/LongKelvin) --- **Version:** 3.1.0 | **Platform:** Windows | macOS | **Last Updated:** May 2026