
Melodica Notes
Melodica Notes is a CLI tool to assist melodica players with musical scales, chords, and harmonics.
How to Install
For the best experience, we recommend installing the project's CLI using pipx:
pipx install melodica-notes
However, this is just a recommendation. You can also install the project using your preferred package manager, such as pip:
pip install melodica-notes
How to Use
The core of the application revolves around a command called melodica-notes.
Melodica Notes offers three subcommands: scale, chord, and harmonic.
Scale
The scale subcommand followed by a musical note, displays the scale for that specific note.
By default, if called without any parameters, it returns the C major scale.
At present, Melodica Notes supports major and minor scale modes.
Major Scale
melodica-notes scale C
┏━━━┳━━━━┳━━━━━┳━━━━┳━━━┳━━━━┳━━━━━┓
┃ I ┃ II ┃ III ┃ IV ┃ V ┃ VI ┃ VII ┃
┡━━━╇━━━━╇━━━━━╇━━━━╇━━━╇━━━━╇━━━━━┩
│ C │ D │ E │ F │ G │ A │ B │
└───┴────┴─────┴────┴───┴────┴─────┘
Minor Scale
melodica-notes scales F# minor
┏━━━━┳━━━━┳━━━━━┳━━━━┳━━━━┳━━━━┳━━━━━┓
┃ I ┃ II ┃ III ┃ IV ┃ V ┃ VI ┃ VII ┃
┡━━━━╇━━━━╇━━━━━╇━━━━╇━━━━╇━━━━╇━━━━━┩
│ F# │ G# │ A# │ B │ C# │ D │ E │
└────┴────┴─────┴────┴────┴────┴─────┘
Chord
The chord subcommand operates by identifying the degrees associated within the major scale. When you input a chord, it determines the notes comprising that chord and their corresponding degrees within the scale.
Melodica Notes supports the following chord types: major (default), m (minor), dim (diminished), + (augmented) and m+ (minor augmented). For example:
Major Chord
melodica-notes chord A
┏━━━┳━━━━━┳━━━┓
┃ I ┃ III ┃ V ┃
┡━━━╇━━━━━╇━━━┩
│ A │ C# │ E │
└───┴─────┴───┘
Minor Chord
melodica-notes chord Em
┏━━━┳━━━━━━┳━━━┓
┃ I ┃ III- ┃ V ┃
┡━━━╇━━━━━━╇━━━┩
│ E │ G │ B │
└───┴──────┴───┘
Diminished Chord
melodica-notes chord Fdim
┏━━━┳━━━━━━┳━━━━┓
┃ I ┃ III- ┃ V- ┃
┡━━━╇━━━━━━╇━━━━┩
│ F │ G# │ B │
└───┴──────┴────┘
Minor Augmented Chord
melodica-notes chord Gm+
┏━━━┳━━━━━━┳━━━━┓
┃ I ┃ III- ┃ V+ ┃
┡━━━╇━━━━━━╇━━━━┩
│ G │ A# │ D# │
└───┴──────┴────┘
The - symbolizes a decrease of one semitone, indicating that to form the major chord, F would need to be F#.
The + symbolizes an increase of one semitone, suggesting that to form the major chord, A# would need to be A.
Harmonic
The harmonic represent scales using chords.
You can access the harmonic using the harmonic subcommand followed by a musical note.
Melodica Notes supports major (default) and minor harmonic modes. For example:
Harmonic Major
melodica-notes harmonic E
┏━━━┳━━━━━┳━━━━━┳━━━━┳━━━┳━━━━━┳━━━━━━━┓
┃ I ┃ ii ┃ iii ┃ IV ┃ V ┃ vi ┃ vii° ┃
┡━━━╇━━━━━╇━━━━━╇━━━━╇━━━╇━━━━━╇━━━━━━━┩
│ E │ F#m │ G#m │ A │ B │ C#m │ D#dim │
└───┴─────┴─────┴────┴───┴─────┴───────┘
Harmonic Minor
melodica-notes harmonic F# minor
┏━━━━━┳━━━━━━━┳━━━━━┳━━━━┳━━━━━┳━━━━┳━━━━━┓
┃ i ┃ ii° ┃ III ┃ iv ┃ v ┃ VI ┃ VII ┃
┡━━━━━╇━━━━━━━╇━━━━━╇━━━━╇━━━━━╇━━━━╇━━━━━┩
│ F#m │ G#dim │ A │ Bm │ C#m │ D │ E │
└─────┴───────┴─────┴────┴─────┴────┴─────┘
Additional Information
For additional options and help, use the --help flag with any command:
melodica-notes [COMMANDS] --help
╭─ Commands ─────────────────────────────────────────────────────╮
│ chord │
│ harmonic │
│ scale │
╰────────────────────────────────────────────────────────────────╯
This will provide you with detailed information on available commands and options.
Enjoy exploring different musical scales and chords effortlessly with Melodica Notes!
How to Contribute
To contribute to the project, follow these steps and create a pull request.
Clone the Repository
Clone the project repository to your local machine using the following command:
git clone https://github.com/vhsenna/melodica-notes.git
Install Poetry
Ensure you have Poetry installed by running the following command:
pipx install poetry
Install Dependencies
Navigate to the project directory and install the required dependencies with Poetry:
cd melodica-notes
poetry install
Run the CLI
Execute the CLI by running the following command, replacing [subcommand] with the desired subcommand:
melodica-notes [subcommand]
Run Tests
Run the tests to ensure everything is functioning correctly:
task test
Run Documentation
Generate the project documentation using the following command:
task docs
Upcoming Features
- Add support for additional scales
- Develop a feature for harmonic progressions
- Add support for suspended chords
- Implement a feature for tetrads, including:
- 7th chords (dominant, major, minor)
- 9th chords (dominant, major, minor)
- Develop a feature for harmonic functions
- Implement custom error classes for improved error handling and clarity