Simple arithmetic on musical notes
This module provides representations for musical notes and intervals in the basic 12-note even tempered system that is typically used in western music. It provides basic arithmetic and conversion to and from midi numbers.
This module provides the following classes:
Note
: represents a musical note
Interval
: represents the interval between two notes
It also provides the following utility functions:
get_midi_number(note_string)
-> midi number
in_chord(note, root, chord)
-> boolean
The following intervals are predefined:
P1 = unison = Interval(0) m2 = semitone = Interval(1) M2 = Interval(2) m3 = Interval(3) M3 = Interval(4) P4 = Interval(5) aug4 = dim5 = Interval(6) P5 = Interval(7) m6 = Interval(8) M6 = Interval(9) m7 = Interval(10) M7 = Interval(11) P8 = octave = Interval(12)
The following chord types are predefined:
MAJOR = (unison, M3, P5) MINOR = (unison, m3, P5) SEVENTH = (unison, M3, P5, m7)
Some examples of use:
>>> Note('c') - Note('a-2') Interval(16) >>> Note('c') + M3 Note(64) >>> (Note('c3') + P5).get_note_string() 'G3' >>> in_chord(Note('c5'), Note('a'), MINOR) True >>> in_chord(Note('c5'), Note('a'), MAJOR) False
To install pyscales, use pip install pyscales
.