Metadata-Version: 2.1
Name: midi-abstraction
Version: 0.9.2
Summary: Abstract MIDI pitches into keys, chords, modes, notes, and octaves.
Home-page: https://github.com/cyberrumor/midi_abstraction
Author: Marco Silva
Author-email: cyberrumor@gmail.com
License: UNKNOWN
Description: # midi_abstraction
        
        Abstract midi pitches into keys, chords, modes, scales, and notes.
        
        This, combined with a midi file creation package like 'mido', and maybe a little help from builtin 'random', is all you need to procedurally generate music.
        
        
        # Installation
        ```pip install midi_abstraction```
        
        # Usage
        
        ```
        #!/usr/bin/env python3
        import midi_abstraction
        
        # get a list of keys
        available_keys = midi_abstraction.list_keys()
        
        # get a list of available notes
        available_notes = midi_abstraction.list_notes()
        
        # get a list of available modes
        available_modes = midi_abstraction.list_modes()
        
        # create a musical key object
        songkey = midi_abstraction.Key('a_major')
        
        # list chords in the key
        songkey.list_chords()
        
        # list note names in mode
        songkey.list_notes_in_mode('mixolydian')
        
        # list midi note pitches in specific octave
        songkey.list_notes_in_octave(4)
        
        # access a dict of chords in songkey here.
        chords = songkey.chords
        
        # access pentatonic major and minor scales
        pentatonic_major = songkey.list_notes_in_pentatonic_major()
        pentatonic_minor = songkey.list_notes_in_pentatonic_minor()
        
        # iterate through the chords to get midi pitches.
        for key, value in songkey.chords.items():
        	print(f'{key}: {value})
        
        # print chord names and midi pitches of the notes in each chord, specifying octave.
        print(songkey.chords_in_octave(4))
        
        # turn any named note into a midi pitch
        notes = Notes()
        c_sharp_pitch = notes.all['cs']
        
        
        
        ```
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.9
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
