Generador avanzado de progresiones de acordes MIDI con Dashboard TUI reactivo y visualizadores.
Project description
Chorderizer: Advanced Chord Orchestration & MIDI Analysis Dashboard
Chorderizer is a specialized Python-based orchestration tool and harmonic workstation designed for professional composers, theorists, and music producers. It provides a robust engine for exploring diatonic relationships across a wide array of musical scales, enabling precise customization of chord voicings and the generation of production-ready MIDI sequences.
Project Philosophy
The core objective of Chorderizer is to bridge the gap between abstract music theory and digital composition. By providing an interactive, low-latency TUI (Terminal User Interface) dashboard, the tool allows for rapid prototyping of harmonic progressions while maintaining strict adherence to diatonic principles and ergonomic voice leading.
Core Capabilities
Harmonic Engine & Theory Support
The underlying music theory engine has been expanded to support 11 distinct scales, covering the fundamental building blocks of Western and contemporary harmony:
- Diatonic Standards: Major (Ionian), Natural Minor (Aeolian).
- Modal Harmony: Full support for Greek Modes (Dorian, Phrygian, Lydian, Mixolydian, Locrian).
- Advanced Tonality: Harmonic Minor, Melodic Minor (Ascending).
- Pentatonic Structures: Major and Minor Pentatonic variations.
Reactive TUI Dashboard
The v0.2.x release introduces a comprehensive dashboard built on the Textual framework, facilitating real-time visualization and interaction:
- Piano Visualizer: A 2-octave responsive keyboard rendering active MIDI notes with precision.
- Guitar Fretboard: A 12-fret interactive diapasón highlighting scale tonics and specific chord positions.
- Guitar Tab Generator: Automated conversion of MIDI chord voicings into playable tablature notation.
- Diatonic Table: Real-time calculation of chord names, degrees (Roman Numeral Analysis), and MIDI note arrays based on selected extensions.
MIDI Export & Humanization
The MIDI engine (powered by mido) is designed to produce sequences that feel organic and professional:
- Note Extensions: Support for Triads, 6ths, 7ths, 9ths, 11ths, and 13ths.
- Inversion Logic: Precise control over 1st, 2nd, and 3rd inversions.
- Humanization Engine: Intelligent velocity randomization and micro-timing adjustments.
- Automated Basslines: Optional generation of root-based bass tracks for full harmonic context.
Installation & Execution
Prerequisites
- Python 3.8 or higher.
- Recommended: A terminal with support for true color and UTF-8 characters (e.g., Windows Terminal, iTerm2, Alacritty).
Setup
# Clone the repository
git clone https://github.com/julesklord/chorderizer.git
cd chorderizer
# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate # Or .venv\Scripts\activate on Windows
# Install development/production dependencies
pip install .
Running the Workstation
To launch the interactive dashboard, execute the module directly:
python -m chorderizer.chorderizer
Dashboard Interface Guide
The TUI is designed for keyboard-driven efficiency:
- [A] Add Chord: Commits the currently highlighted chord in the table to the progression list (Right Sidebar).
- [X] Clear List: Flushes the internal progression buffer.
- [E] Export MIDI: Serializes the current progression list into a standard MIDI file (SMF) in
~/chord_generator_midi_exports. - [H] Manual: Displays the comprehensive on-screen operation manual.
- [Q] Terminate: Safely closes the application.
Technical Standards & Quality Assurance
The codebase adheres to PEP 8 standards and utilizes modern tooling to ensure stability and maintainability:
- Linting & Formatting: Managed via Ruff and Trunk for lightning-fast quality control.
- Testing Suite: Comprehensive unit tests managed via
pytest, ensuring integrity of the theory engine and MIDI generation. - Architecture: Modular design separating theory logic (
theory_utils.py), MIDI generation (generators.py), and UI orchestration (tui_app.py).
Supplementary Documentation
For detailed technical specifications, refer to the following documents:
- User Guide — End-user operational details.
- Architecture — System design and module interactions.
- API Reference — Technical documentation for engine integration.
License
This project is licensed under the MIT License - see the LICENSE.md file for details.
Created with ❤️ for the musical community. Powered by Python, Textual, and Antigravity
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chorderizer-0.2.6.tar.gz.
File metadata
- Download URL: chorderizer-0.2.6.tar.gz
- Upload date:
- Size: 36.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6508a9afb1a0243b58b0d74293a3a352294c8f3b14b2364cc0c826515dcfb04
|
|
| MD5 |
5b336a34071c699b33730e5b8da9b7f6
|
|
| BLAKE2b-256 |
a02ba4ec924f3f50fe28dac9ab5cd6e98cd9704ab24cc324102ac78cfbc271d3
|
Provenance
The following attestation bundles were made for chorderizer-0.2.6.tar.gz:
Publisher:
python-publish.yml on julesklord/chorderizer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chorderizer-0.2.6.tar.gz -
Subject digest:
b6508a9afb1a0243b58b0d74293a3a352294c8f3b14b2364cc0c826515dcfb04 - Sigstore transparency entry: 1328157202
- Sigstore integration time:
-
Permalink:
julesklord/chorderizer@bf09ec8122f59dff0f60725b659e818b44c9ad60 -
Branch / Tag:
refs/tags/v0.2.6 - Owner: https://github.com/julesklord
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@bf09ec8122f59dff0f60725b659e818b44c9ad60 -
Trigger Event:
push
-
Statement type:
File details
Details for the file chorderizer-0.2.6-py3-none-any.whl.
File metadata
- Download URL: chorderizer-0.2.6-py3-none-any.whl
- Upload date:
- Size: 32.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6724b014671cb7970dbd88967c67c9cf0245844b939d6d0e589c72ff5c4856c
|
|
| MD5 |
963c4879ed2491810f6d0c00aeab35a6
|
|
| BLAKE2b-256 |
47218c942558673dad7eb452e95ade6748a2cf0e7f0705bae821193bdb3248cc
|
Provenance
The following attestation bundles were made for chorderizer-0.2.6-py3-none-any.whl:
Publisher:
python-publish.yml on julesklord/chorderizer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chorderizer-0.2.6-py3-none-any.whl -
Subject digest:
f6724b014671cb7970dbd88967c67c9cf0245844b939d6d0e589c72ff5c4856c - Sigstore transparency entry: 1328157207
- Sigstore integration time:
-
Permalink:
julesklord/chorderizer@bf09ec8122f59dff0f60725b659e818b44c9ad60 -
Branch / Tag:
refs/tags/v0.2.6 - Owner: https://github.com/julesklord
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@bf09ec8122f59dff0f60725b659e818b44c9ad60 -
Trigger Event:
push
-
Statement type: