def __get_abstract_grammars(measures, chords): # extract grammars abstract_grammars = [] for ix in range(0, len(measures) - 1): m = stream.Voice() # Avoid repetitions that results in an insersion error testSet = set() for i in measures[ix]: testStr = str(i.offset) + str(i) if testStr in testSet: continue m.insert(i.offset, i) testSet.add(testStr) c = stream.Voice() testSet = set() for j in chords[ix]: testStr = str(j.offset) + str(j) if testStr in testSet: continue c.insert(j.offset, j) testSet.add(testStr) parsed = parse_melody(m, c) # Ignore zero-length measure / chords if parsed != None: abstract_grammars.append(parsed) return abstract_grammars
def __get_abstract_grammars(measures, chords): # extract grammars abstract_grammars = [] for ix in range(1, len(measures)): m = stream.Voice() for i in measures[ix]: m.insert(i.offset, i) c = stream.Voice() for j in chords[ix]: c.insert(j.offset, j) parsed = parse_melody(m, c) abstract_grammars.append(parsed) return abstract_grammars
def __get_abstract_grammars(measures, chords): # extract grammars abstract_grammars = [] for ix in range(1, len(measures)): m = stream.Voice() for i in measures[ix]: m.insert(i.offset, i) c = stream.Voice() for j in chords[ix]: c.insert(j.offset, j) parsed = parse_melody(m, c) abstract_grammars.append(parsed) return abstract_grammars