INNER CODE UNIT · Python
parse_melody
jisungk/deepjazz · grammar.py:125
def parse_melody(fullMeasureNotes, fullMeasureChords):
# Remove extraneous elements.x
measure = copy.deepcopy(fullMeasureNotes)
chords = copy.deepcopy(fullMeasureChords)
measure.removeByNotOfClass([note.Note, note.Rest])
chords.removeByNotOfClass([chord.Chord])
# Information for the start of the measure.
# 1) measureStartTime: the offset for measure's start, e.g. 476.0.
# 2) measureStartOffset: how long from the measure start to the first element.
measureStartTime = measure[0].offset - (measure[0].offset % 4)
measureStartOffset = measure[0].offset - measureStartTime
# Iterate over the notes and rests in measure, finding the grammar for each
# note in the measure and adding an abstract grammatical string for it.
fullGrammar = ""
prevNote = None # Store previous note. Need for interval.