EasyMIDI¶
A simple, easy to use algorithmic composition MIDI creator for Python, based on midiutil.
Creating a MIDI file can be as simple as this:
from EasyMIDI import EasyMIDI,Track,Note,Chord,RomanChord
from random import choice
easyMIDI = EasyMIDI()
track1 = Track("acoustic grand pino") # oops
c = Note('C', octave = 5, duration = 1/4, volume = 100)
e = Note('E', 5)
g = Note('G', 5)
chord = Chord([c,e,g]) # a chord of notes C, E and G
track1.addNotes([c, e, g, chord])
# roman numeral chord, first inversion (defaults to key of C)
track1.addNotes(RomanChord('I*', octave = 5, duration = 1))
easyMIDI.addTrack(track1)
easyMIDI.writeMIDI("output.mid")
Documentation¶
EasyMIDI.EasyMIDI () |
EasyMIDI handles MIDI files with the help of midiutil. |
EasyMIDI.MusicTheory () |
MusicTheory contains some helpful music theory data, like the major and minor scales based on the circle of fifths. |
EasyMIDI.Track (instrument[, tempo]) |
Simple Track class which keeps the list of Notes/Chords, the instrument and the tempo. |
EasyMIDI.Note (name[, octave, duration, volume]) |
The Note class contains musical notes and their properties, like octave, duration and volume. |
EasyMIDI.Chord ([noteList]) |
The Chord is a simple class that contains lists of Notes. |
EasyMIDI.RomanChord ([numeral, octave, ...]) |
The RomanChord class supports Roman chord numerals for creating chord progressions in a relatively easy way. |