|
|
Chord Orchestration & MIDI Analysis Dashboard |
Chorderizer provides an interactive TUI dashboard for chord progression prototyping. It ensures adherence to diatonic principles and ergonomic voice leading.
Chorderizer supports:
- Harmonic exploration for composers and producers.
- Diatonic and modal chord generation.
- MIDI export and tablature support.
- Terminal-based workflows using Textual.
It does not support:
- DAW functionality.
- General-purpose notation editing.
- Custom guitar fingering or non-standard tunings.
- Non-Western microtonal scales.
- Plugin hosting or real-time MIDI routing.
The engine supports 11 scales for Western and contemporary harmony:
- Diatonic: Major (Ionian), Natural Minor (Aeolian).
- Modes: Dorian, Phrygian, Lydian, Mixolydian, Locrian.
- Advanced: Harmonic Minor, Melodic Minor (Ascending).
- Pentatonic: Major and Minor variations.
The interface uses the Textual framework for real-time visualization:
- Piano Visualizer: 2-octave keyboard rendering active MIDI notes.
- Guitar Fretboard: 12-fret interactive display highlighting scale tonics and chord positions.
- Guitar Tab Generator: Converts MIDI voicings into tablature notation.
- Diatonic Table: Calculates chord names, degrees, and MIDI note arrays.
The engine (via mido) generates organic MIDI sequences:
- Extensions: Support for Triads, 6ths, 7ths, 9ths, 11ths, and 13ths.
- Inversions: Support for 1st, 2nd, and 3rd inversions.
- Humanization: Randomizes velocity and micro-timing.
- Basslines: Optional generation of root-based bass tracks.
- Python 3.8+.
- Terminal with true color and UTF-8 support.
Install via PyPI:
pip install chorderizergit clone https://github.com/TropicalDev/chorderizer.git
cd chorderizer
python -m venv .venv
source .venv/bin/activate
pip install .For development:
pip install -e ".[dev]"python -m chorderizer.chorderizer- [A] Add Chord: Commits the highlighted chord to the progression list.
- [X] Clear List: Flushes the progression buffer.
- [E] Export MIDI: Saves the progression as a MIDI file in
~/chord_generator_midi_exports. - [H] Manual: Displays the operation manual.
- [Q] Quit: Closes the application.
The codebase follows PEP 8 standards:
- Linting: Managed via Ruff and Trunk.
- Testing: Unit tests use
pytestfor the theory engine and MIDI generation. - Architecture: Modular design separates theory logic, MIDI generation, and the Textual dashboard.
The Wiki contains technical specifications and guides.
MIT License. See LICENSE.md.
Developed by TropicalDev.
