_marker = []
class Part(object) :
-
- requiresExtendedScale = False
- scale = [55, 57, 59, 60, 62, 64, 65, 67, 69, 71, 72]
- quarterNoteLength = 400
-
+
def __init__(self, node, autoDetectChorus=True) :
self.node = node
self.notes = []
self.repeats = []
+ self.distinctNotes = []
self._parseMusic()
self.verses = [[]]
self.chorus = []
def _parseMusic(self) :
divisions = 0
previous = None
+ distinctNotesDict = {}
for measureNode in self.node.getElementsByTagName('measure') :
measureNotes = []
previous.addDuration(note)
continue
previous = note
+
self.notes.extend(measureNotes)
+
+ for note in measureNotes :
+ if not distinctNotesDict.has_key(note.midi) :
+ distinctNotesDict[note.midi] = True
+ self.distinctNotes.append(note)
# barres de reprises
try :
barline = Barline(barlineNode, measureNotes)
if barline.repeat :
self.repeats.append(barline)
+
+ self.distinctNotes.sort(lambda a, b : cmp(a.midi, b.midi))
+
def _findChorus(self):
""" le refrain correspond aux notes pour lesquelles