Chord Tree 4.2 by EZBOT (Patreon)
Videos
-
583394299.mp4
Downloads
Content
NEW theory explainer.
CHORD TREE v4.2 by EZBOT (Huge Update - Audio, MIDI, Mac OS support)
I have been wanting a chord assistant for a long time. This chord app (currently Windows only, though I will update with a macOS version soon) uses an algorithm tailored for jazz and neo-soul, but I think everyone will appreciate the musical results. It's simple: follow the instructions on the screen to build a tree of chords. You can start with a random chord or choose a starting chord. Either way, you will end up with branches of complex chord progressions you might never have thought of. This was designed specifically with the Digitone 2 in mind, and there will be a video explaining exactly why soon. Let me know what you think and please report any bugs below. Thanks! Mac OS Support added 12.22.25
-- Next Steps: Create a custom Icon (anyone up for that task?).
CHORD TREE v4.0 - CONSOLE EDITION User Manual & Technical Documentation
Chord Tree is a generative music theory tool designed to assist musicians in creating sophisticated Neo-Soul, Jazz, and R&B chord progressions. It operates in the terminal, providing a history of your progression while offering harmonically relevant suggestions to extend your chord branch.
It features a built-in polyphonic synthesizer for instant feedback and a MIDI engine to drive external hardware or DAWs.
========================================================================
INSTALLATION ========================================================================
NO INSTALLATION REQUIRED This application is a standalone executable.
HOW TO RUN
Download or locate the "ChordTree v4.exe" file.
Double-click the file to launch.
A console window will appear, indicating the app is ready.
Note: On some systems, you may see a "Windows protected your PC" popup because this is a custom tool. Click "More Info" -> "Run Anyway" to proceed.
======================================================================== 2. GETTING STARTED
Connect your MIDI interface (optional).
Launch the application.
Start a Progression:
Random: Press 'r' to let the engine pick a starting Neo-Soul chord (e.g., Cmaj7, Am7).
Manual: Type any chord name (e.g., Ebmaj9, Fm11) to begin in that key.
======================================================================== 3. COMMAND REFERENCE
CORE WORKFLOW
r: Random Start. Clears the history and picks a random "Seed Chord" to begin a new tree. Sets the song Key automatically based on the result.
1-8: Select Suggestion. Choose one of the 8 suggested chords to add to your branch.
0: Reset. Wipes the entire tree history and clears the Key signature.
Manual Input: Type a chord name (e.g., G7, Bbmaj7) at any time to manually force a chord into the progression.
MODES & PLAYBACK
play: Sequence Branch. Plays your entire chord history from start to finish with 1/4 note timing.
l: Enter Live Mode. Opens a focused view for auditioning chords.
Arrows: Navigate the cursor.
Spacebar: Audition (Play) the selected chord.
Enter: Lock/Unlock the selected chord.
Esc/Q: Exit to main menu.
s: Toggle Strum. Adds a 40ms delay between notes in a chord to simulate a guitar or piano strum (affects Audio & MIDI).
a: Toggle Audio. Turns the internal sine-wave synthesizer ON/OFF.
m: Toggle MIDI. Turns MIDI output ON/OFF.
VOICING CONTROLS (THE CONSOLE) These commands change how chords are voiced across the keyboard.
Center (Command: c [note]) Sets the "gravity center" of the voicing engine. All notes will try to cluster nearest to this note. Example: "c c4" sets standard middle voicings. Example: "c c3" sets low, dark voicings. Example: "c c5" sets high, shimmering voicings.
Bass (Command: b [number]) Adds a root note dropped by N octaves below the cluster. Example: "b 0" turns the bass off (Cluster only). Example: "b -1" adds a bass note 1 octave down. Example: "b -2" adds a bass note 2 octaves down (Deep bass).
Lock (Command: lock [number]) "Freezes" the voicing of the chord at a specific index number. Example: If you like how chord #2 sounds, type "lock 2". Now, if you change the Center or Bass settings, chord #2 will not change, but the others will.
MIDI SETUP
Ports (Command: mp) Lists all available MIDI output ports. Type the number next to the port to select it.
Channel (Command: mc [number]) Sets the MIDI Output Channel (1-16). Default is Channel 1.
======================================================================== 4. TECHNICAL ARCHITECTURE
The application is built on three distinct engines:
ChordTreeEngine (The Brain) Role: Handles music theory, chord generation, and voicing logic. Voicing Logic: It uses a "Center Gravity" algorithm. Instead of fixed inversions, it calculates the distance of every chord tone to a user-defined center note and picks the octave that is physically closest. This ensures smooth voice leading automatically.
Suggestion Logic:
Resolutions: Always offers the Tonic chord if available.
Diatonic: Guarantees 2 safe, in-key chords.
Exotic: Fills the remaining slots with Tritone subs, Secondary Dominants, and Borrowed chords (Modal Interchange) to provide the "Neo-Soul" flavor.
AudioEngine (The Sound) Role: Generates real-time audio internally. Synthesis: Uses high-precision sine wave synthesis with an exponential decay curve to simulate the natural pluck and fade of a piano string.
MidiEngine (The Connection) Role: Handles external communication. Driver Handling: Uses a "destroy-and-recreate" pattern for port switching to prevent MIDI ports from hanging or becoming unresponsive on Windows.
======================================================================== 5. COLOR CODING KEY
In the suggestion menu, chords are colored to indicate their harmonic function:
Green: Resolution (Home Key).
Purple: Diatonic (Strictly in Key).
Yellow: Secondary Dominant (V of V, etc.).
Blue: Borrowed Chord (from Parallel Minor/Major).
Red: Tritone Substitution / Exotic.
12.19.25 Added MIDI OUT, Audio Audition, Live Mode, Bass Note Offset, and Chord Centering
12.19.25 Fixed: MIDI channel was stuck on 1, ADDED more resolution types, increased suggestion max to 10 from 8.
12.20.25
Updated to 4.2
Improved logic to remove duplicate suggestions
changed bass lowering command from "b" to "bass"
in live mode it now explains in an abbreviated way why the next chord works
12.22.25
Added Mac OS Support