Skip to content

About

Explore smooth chord progressions by ear with instant piano preview and MIDI export for your DAW.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

3ChordTree logo

3ChordTree

Hear the next chord before you choose it.
A focused Windows VST3 instrument for building smooth chord progressions by ear.

Version 0.1.0 Windows 11 x64 VST3 instrument License AGPL-3.0-only

3ChordTree is made for beatmakers and songwriters who want useful harmonic choices without stopping to calculate music theory. Choose any major or minor triad, audition three closely related alternatives, and commit only the chord that feels right. An embedded piano makes every decision immediately audible; the finished progression can be played through another instrument or dragged into the DAW as MIDI.

C major branching to the P, R, and L audition choices C minor, A minor, and E minor

Download

Download the latest release

For version 0.1.0, download 3ChordTree-0.1.0-Windows-x64-Setup.exe from the release assets. The public installer contains the VST3 plug-in; the Standalone target is provided only as a development build.

The release also provides 3ChordTree-0.1.0-Source.zip with the corresponding source, pinned JUCE framework, and piano samples for an offline source checkout. Windows build tools are still required to compile it.

Requirements

  • Windows 11 x64
  • A 64-bit VST3 host
  • FL Studio 25.2.5 is the primary tested host

Install

  1. Download the installer and SHA256SUMS.txt from the same release.

  2. Verify the installer before running it:

    Get-FileHash .\3ChordTree-0.1.0-Windows-x64-Setup.exe -Algorithm SHA256
  3. Run the installer as an administrator.

  4. In FL Studio, rescan installed plug-ins if 3ChordTree does not appear immediately.

The plug-in is installed at:

C:\Program Files\Common Files\VST3\3ChordTree.vst3

Important

The Windows installer is not code-signed. Microsoft Defender SmartScreen may display an "unknown publisher" warning. Continue only after downloading from this repository's Releases page and confirming that the SHA-256 matches the published checksum. After verification, choose More info and Run anyway if SmartScreen blocks the installer.

Windows can remove the plug-in later from Settings > Apps > Installed apps.

How it works

3ChordTree uses the Neo-Riemannian P, R, and L transformations. Each one changes a single note of the current major or minor triad, leaving two shared pitch classes in place:

Choice Name What it offers
P Parallel The major/minor chord on the same root
R Relative The closely related relative major or minor
L Leading-tone exchange A one-note move to another nearby triad

You do not need to know the labels to use them. The intended workflow is simply listen, compare, and choose.

Quick start

  1. Choose one of the 24 major/minor starting chords. C major is focused first.
  2. Click a P, R, or L candidate once to audition the progression from the white timeline marker through that candidate.
  3. Double-click the candidate to commit it. Three new choices appear immediately.
  4. Click any committed chord in the lower timeline to move the white start marker.
  5. Use Play / Stop to hear the committed progression from that marker.
  6. Drag DRAG MIDI onto an FL Studio Piano Roll to export the committed progression.

An auditioned candidate is temporary: it is not saved or exported until it is committed.

Interface

  • Header: host BPM, global chord length, Piano and MIDI output toggles, piano gain, fallback BPM, Play, Stop, and Help.
  • Chord view: the current chord in the centre with colour-coded P, R, and L candidates around it.
  • Timeline: committed chords, the audition start marker, Undo, Redo, Clear, and the MIDI drag handle.

Keyboard shortcuts

Shortcut Action
Space Play or stop from the start marker
Ctrl+Z Undo the last committed chord
Ctrl+Y Redo the last undone chord
Enter Commit the focused candidate

Shortcuts require the plug-in editor to have keyboard focus and the host to pass the corresponding key event to the plug-in.

Features

  • All 12 roots as major and minor triads: 24 possible starting chords.
  • Exactly three P/R/L suggestions at every step.
  • Automatic inversions and octave placement within C3-C5, chosen to minimise movement from the previous voicing.
  • Embedded stereo Kawai grand-piano samples with 32-voice playback, a 2 ms attack, and a 350 ms release.
  • Independent Piano and real-time MIDI output switches.
  • Host tempo and time-signature support, captured when playback starts; 120 BPM and 4/4 are used when the host does not report them.
  • A global chord length of 1/2 bar, 1 bar, or 2 bars.
  • Undo, Redo, Clear, a movable audition marker, and progressions up to 128 committed chords.
  • Single-track Standard MIDI File export at 960 PPQ. Exported files contain no tempo event, so they follow the DAW project tempo.
  • Project-state recall for the progression, exact voicings, marker, controls, output settings, fallback BPM, and editor size.
  • Resizable interface from 760×520 to 1600×1000.

FL Studio

MIDI drag-and-drop

The most dependable workflow is to drag DRAG MIDI directly onto an FL Studio Piano Roll. The file contains only committed chords, preserves the voicings heard in 3ChordTree, and uses the current global chord length and time signature. Because no tempo event is written, FL Studio remains in control of the project tempo.

Real-time MIDI output

To play another instrument from 3ChordTree:

  1. Open the 3ChordTree Wrapper settings and assign a MIDI Output port.
  2. Assign the same port as the input port on the receiving instrument.
  3. Alternatively, load both plug-ins in Patcher and connect 3ChordTree's event output to the instrument's event input.
  4. Ensure MIDI output is enabled in FL Studio and in 3ChordTree.

Host and wrapper routing can vary. If real-time MIDI is unavailable, use MIDI drag-and-drop as the standard fallback. See Image-Line's MIDI output routing guide and MIDI import guide.

Current scope

Version 0.1.0 intentionally focuses on one fast workflow. It supports Windows 11 x64, VST3, major/minor triads, and a single global chord duration. It does not yet include macOS/AU, Windows 10 support, seventh or extended chords, per-chord lengths, free timeline rearrangement, MIDI-input chord recognition, arpeggiation, or a preset browser.

See CHANGELOG.md and the v0.1.0 release notes for release details and validation coverage.

Build from source

Requirements

  • Windows 11 x64
  • Visual Studio 2022 with the Desktop development with C++ workload
  • CMake 3.22 or newer
  • Git and network access when CMake needs to fetch JUCE
  • Compliance with the AGPL-3.0-only licence when redistributing covered builds

JUCE 9.0.2 is pinned to commit 72782788ce18c2d4d760b28e0921d6ffc6431102. Put a matching checkout at third_party/JUCE, or let CMake fetch it automatically.

From a Visual Studio 2022 Developer PowerShell:

cmake --preset vs2022-release
cmake --build --preset vs2022-release
ctest --preset vs2022-release

The Release VST3 bundle is generated at:

build\ThreeChordTree_artefacts\Release\VST3\3ChordTree.vst3

The same preset also builds a development Standalone application and the test executable. A Ninja Release preset is available in CMakePresets.json.

To create the Windows installer after installing Inno Setup 6:

& 'C:\Program Files (x86)\Inno Setup 6\ISCC.exe' `
  '/DBuildDir=..\build' 'Installer\3ChordTree.iss'

The installer is written to the ignored local dist directory. Release binaries should be published through GitHub Releases, not committed to the source tree.

Licensing and third-party material

3ChordTree is free and open-source software under AGPL-3.0-only. You may use it for personal or commercial music production, and may modify and redistribute it under that licence. See LICENSE.txt and NOTICE.md. The licence applies to the software; using the plug-in does not require you to license your music under AGPL.

This project uses JUCE 9.0.2 under its AGPLv3 option. Each release includes a corresponding-source archive with the pinned JUCE framework, build scripts, and prepared piano samples. The VST3 SDK notices, the VCSL piano-sample attribution, and the Inno Setup notice are collected in THIRD_PARTY_NOTICES.md. Exact sample provenance and hashes are recorded in Assets/PIANO_SOURCE.md.

VST is a trademark of Steinberg Media Technologies GmbH, registered in Europe and other countries.

Credits

  • Product and development: SyntaxDemorganArchitect
  • Built with JUCE
  • Piano samples derived from the Versilian Community Sample Library, created by Versilian Studios LLC and contributors and dedicated to the public domain under CC0 1.0
  • VST3 technology by Steinberg Media Technologies GmbH

Bug reports and focused feature requests are welcome through GitHub Issues.

About

Explore smooth chord progressions by ear with instant piano preview and MIDI export for your DAW.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages