musical_scales package¶
Module contents¶
Retrieve a scale based on a given mode and starting note.
- exception musical_scales.MusicException¶
Bases:
Exception
Base exception for the musical_scales module.
- class musical_scales.Note(name: Optional[str] = None, semitones_above_middle_c: Optional[int] = None)¶
Bases:
object
A single note in a given octave, e.g. C#3.
- Measured as a number of semitones above Middle C:
Note(0) # Middle C, i.e. C3
Note(2) # D3
- property midi¶
Note name and octave, e.g. C3.
- name: str¶
- octave: int¶
- semitones_above_middle_c: int¶
- musical_scales.interval_from_names = {'A': 9, 'A#': 10, 'Ab': 8, 'B': 11, 'B#': 0, 'Bb': 10, 'C': 0, 'C#': 1, 'Cb': 11, 'D': 2, 'D#': 3, 'Db': 1, 'E': 4, 'E#': 5, 'Eb': 3, 'F': 5, 'F#': 6, 'Fb': 4, 'G': 7, 'G#': 8, 'Gb': 6}¶
Dictionary from note names to number of semitones above C.
- musical_scales.names_from_interval = {0: 'C', 1: 'C#', 2: 'D', 3: 'D#', 4: 'E', 5: 'F', 6: 'F#', 7: 'G', 8: 'G#', 9: 'A', 10: 'A#', 11: 'B'}¶
From an interval give the note name, favouring sharps over flats.
- musical_scales.scale(starting_note, mode='ionian', octaves=1)¶
Return a sequence of Notes starting on the given note in the given mode.
Example
scale(“C”) # C major (ionian)
scale(Note(4), “harmonic minor”) # E harmonic minor