A free, open-source software arranger workstation for Windows.
Play chords with your left hand and Cadenza plays a full backing band — drums, bass, chords, and more — in real time, following your chords. Play a melody on top. It's the software equivalent of a hardware "arranger keyboard," built with JUCE and C++.
Status: actively developed, builds and runs on Windows. Contributors welcome — especially musicians who know music theory (see Contributing).
- 🎹 Live auto-accompaniment — play chords, hear a styled backing band that transposes to follow you in real time.
- 🎛️ Arranger sections — Intro / Main A–D / Fills / Ending, with transition fills, One Touch Settings, registrations, and a mixer.
- 🎼 Style editor — a full piano-roll editor (zoom, undo/redo, velocity lane,
drag-to-duplicate, live tooltips) for authoring/tweaking native
.cstylestyles. - 🎵 MIDI → Style converter — import any General-MIDI
.midfile and turn it into a playable, chord-transposable style:- Auto-split detects sections (Main A/B, Intro, Ending) from the song,
- preview lets you audition sections by ear before converting,
- "Play in C" normalizes a style so you can play it on easy white keys and use Transpose to reach the real key,
- one-chord-per-section detection keeps imported styles in key.
- 🤖 AI assist (optional, bring-your-own Anthropic API key) — generate fills / intros / endings and "polish" a style's notes, using the Claude API. Fully opt-in.
- 🔊 General-MIDI playback via FluidSynth + a SoundFont; loads Yamaha
.sty/.prsstyles and the native JSON-based.cstyleformat.
Import any MIDI → a playable, chord-following style — Cadenza auto-detects the chord, auto-splits the song into sections, normalizes to C for easy white-key play, and can generate fills with AI:
Style page — sections (Main A–D, fills, ending), the per-part mixer, and the AI assist actions (Add Fills / Polish):
Requirements: Visual Studio 2022/2026 (MSVC), CMake, Ninja, and JUCE
(cloned into lib/JUCE). FluidSynth is provided via vcpkg.
# Clone JUCE into lib/ (not committed to this repo)
git clone https://github.com/juce-framework/JUCE.git lib/JUCE
# Configure + build (from a Visual Studio Developer shell, or after vcvars64)
cmake -S . -B build-msvc -G Ninja
cmake --build build-msvc
ctest --test-dir build-msvc --output-on-failureOutput: build-msvc/Cadenza_artefacts/Debug/Cadenza Workstation.exe.
A SoundFont is required for sound — drop a GM .sf2 into resources/sf2/
(e.g. the freely-redistributable GeneralUser GS). Cadenza loads the one you
select, or the largest it finds there.
Contributions are very welcome — code, bug reports, and especially music-theory expertise. The hardest and most valuable open problems are musical:
- chord voicing / voice-leading when transposing a style to the played chord,
- Yamaha NTR/NTT transposition fidelity and color/scale-tone handling,
- drum-fill and section-flow musicality.
See CONTRIBUTING.md for build/PR details and the contributor agreement. Good first issues will be tagged in the issue tracker.
Cadenza is licensed under the GNU General Public License v3.0 — see LICENSE. You're free to use, study, modify, and share it; derivative works must also be GPLv3 and retain attribution.
Commercial licensing: the project is © its author (Cadenza). If you want to use Cadenza in a closed-source or commercial product, that's not permitted under the GPL — please contact suko5rp2@gmail.com to discuss a commercial license.
Built on JUCE (used under its GPLv3 option) and FluidSynth (LGPL). See NOTICE for third-party acknowledgements.


