'G' : 67,
'A' : 69,
'B' : 71}
+
+FR_NOTES = {'C' : u'Do',
+ 'D' : u'Ré',
+ 'E' : u'Mi',
+ 'F' : u'Fa',
+ 'G' : u'Sol',
+ 'A' : u'La',
+ 'B' : u'Si'}
+
_marker = []
class Part(object) :
def iterNotes(self) :
"exécution de la chanson avec l'alternance couplets / refrains"
for verse in self.verses :
+ print "---partie---"
repeats = len(verse[0].lyrics)
if repeats > 1 :
for i in range(repeats) :
# couplet
+ print "---couplet%d---" % i
for note in verse :
yield note, i
# refrain
+ print "---refrain---"
for note in self.chorus :
yield note, 0
else :
def pprint(self) :
for note, verseIndex in self.iterNotes() :
- print note.name, note.midi, note.duration, note.lyrics[verseIndex]
+ print note.nom, note.name, note.midi, note.duration, note.lyrics[verseIndex]
name = '%s%s' % (name, abs(self.alter) * alterext)
return name
+ @property
+ def nom(self) :
+ name = FR_NOTES[self.step]
+ if self.alter < 0 :
+ alterext = 'b'
+ else :
+ alterext = '#'
+ name = '%s%s' % (name, abs(self.alter) * alterext)
+ return name
+
class Lyric(object) :
+
+ _syllabicModifiers = {
+ 'single' : '%s',
+ 'begin' : '%s -',
+ 'middle' : '- %s -',
+ 'end' : '- %s'
+ }
+
def __init__(self, node) :
self.node = node
self.syllabic = _getNodeValue(node, 'syllabic', 'single')
self.text = _getNodeValue(node, 'text')
def __str__(self) :
- return self.text.encode('utf-8')
+ text = self._syllabicModifiers[self.syllabic] % self.text
+ return text.encode('utf-8')
__repr__ = __str__