Skip to main content

Melodica Notes is a CLI tool to assist melodica players with musical scales, chords, and harmonics.

Project description

logo

Melodica Notes

Documentation Pipeline codecov PyPI version

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

melodica_notes-0.1.1.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

melodica_notes-0.1.1-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file melodica_notes-0.1.1.tar.gz.

File metadata

  • Download URL: melodica_notes-0.1.1.tar.gz
  • Upload date:
  • Size: 18.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.12

File hashes

Hashes for melodica_notes-0.1.1.tar.gz
Algorithm Hash digest
SHA256 734246ec5c41a7096239a6c0985976f01eeb0284b7195019ce671e6d928878d1
MD5 eca16cc4435ccb0eb251f8411f49aa3b
BLAKE2b-256 351fe63628f0d5c9f0fb7ec55c013a59e0bc6044271f28e450b1df0be5c7bb3a

See more details on using hashes here.

File details

Details for the file melodica_notes-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: melodica_notes-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.12

File hashes

Hashes for melodica_notes-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 65cbd6fc920006ea342dfd159028c3ccba095ec597bcf1c38228e7d3d98e69a5
MD5 ae8e82732adf8e3a3689dcf1441bab9b
BLAKE2b-256 56ae286d4b1ed4325f643d87cbdbc9fb0a2a94120867680389fa744008441304

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page