Skip to main content

Abstract MIDI pitches into keys, chords, modes, scales, and notes.

Project description

midi_abstraction

Abstract midi pitches into keys, chords, modes, scales, and notes.

Installation

# From pip
pip install midi_abstraction

# From source
pip3 install --user --break-system-packages .
  • requires python 3.10 or newer

Usage

#!/usr/bin/env python3
import midi_abstraction as mab

# Get a midi note from a letter
octave = 4
middle_c = mab.NOTES["c"][octave]

# Get a letter note from a midi pitch
some_note = None
for k, v in mab.NOTES.items():
    if 48 in v:
        some_note = k
        break

# Get a pitch for a drum
side_stick = mab.Drum.SIDE_STICK.value

# Get a drum from a pitch
some_drum = mab.Drum(35)

# List all drums
list(mab.Drum)

# List all chord names
list(mab.Chord)

# Get the note names that a chord is made of
c_major_notes = mab.CHORDS['c_major']


# Get the notes and chords from any mode/key.
# These are a list of sets due to enharmonic equivalence.
c_major_chords = mab.MAJOR.chords('c')
eb_phrygian_notes = mab.PHRYGIAN.notes('eb')

# Get chords from scale degrees
third_degree_chord = next(iter(mab.MAJOR.chords('c')[2]))

# Get the notes for a chord in a particular octave
octave = 4
middle_c_major_notes = []
for note in mab.CHORDS['c_major']:
    middle_c_major_notes.append(mab.NOTES[note][octave])

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

midi-abstraction-2.0.2.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

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

midi_abstraction-2.0.2-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

Details for the file midi-abstraction-2.0.2.tar.gz.

File metadata

  • Download URL: midi-abstraction-2.0.2.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for midi-abstraction-2.0.2.tar.gz
Algorithm Hash digest
SHA256 0b1f5b8eca2b05867af82503e8e2ffb5faa88f45ec99fddcf535092b4d2459be
MD5 428f76b03ba0c84b321a91ca5b5abf6c
BLAKE2b-256 c4f1106e8000f9ec1de623d7ab2354e1df349de07b552cc4e5cc5ac4f108ca8e

See more details on using hashes here.

File details

Details for the file midi_abstraction-2.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for midi_abstraction-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f64e7e3d36d91b7007f2aad3429579f8a01a204535df669233d51a46dabe8307
MD5 0be21cdcf98c8bf88d2463e5f4616df1
BLAKE2b-256 404743e39defd4ed22ca11b4f82e6dd01ca496bc827a22eb5f4ef935cccae73c

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