From: pin Date: Thu, 8 Jul 2010 12:37:49 +0000 (+0000) Subject: Ajout de méthodes et commentaires. X-Git-Url: https://svn.cri.ensmp.fr/git/minwii.git/commitdiff_plain/d0939a86a1795f5d2328202dcecf1eca8ebaf914?ds=inline Ajout de méthodes et commentaires. git-svn-id: https://svn.cri.ensmp.fr/svn/minwii/trunk@279 fe552daf-6dbe-4428-90eb-1537e0879342 --- diff --git a/src/minwii/loganalyse.py b/src/minwii/loganalyse.py index 1772849..551af7f 100755 --- a/src/minwii/loganalyse.py +++ b/src/minwii/loganalyse.py @@ -40,7 +40,8 @@ class LogFileAnalyser(LogFileReader) : POSSIBLE_ANALYSES = {'BEGINNER' : ('songDuration', 'playingDuration', - 'noteEndNoteOnLatency')} + 'noteEndNoteOnLatency', + 'noteOnCount')} def analyse(self) : mode = self.getMode() @@ -55,15 +56,22 @@ class LogFileAnalyser(LogFileReader) : pprint(results) def playingDuration(self) : + """ retourne la durée écoulée entre le premier et de dernier message + de type événement : correspond à la durée d'interprétation. + """ last = self.getLastEventTicks() first = self.getFirstEventTicks() return last - first def songDuration(self) : + """ retourne la durée de référence de la chanson + en prenant en compte le tempo présent dans la transcription + et en effectuant toutes les répétitions des couplets / refrains. + """ songFile = self.getSongFile() song = musicXml2Song(songFile) duration = 0 - for note, verseIndex in song.iterNotes(indefinitely=False) : + for note, verseIndex in song.iterNotes() : duration = duration + note.duration return duration * song.quarterNoteDuration @@ -81,6 +89,20 @@ class LogFileAnalyser(LogFileReader) : return latencies + def noteOnCount(self) : + "retourne le nombre d'événements NOTEON" + + eIter = self.getEventsIterator() + cpt = 0 + + for ticks, eventName, message in eIter : + if eventName == 'NOTEON' : + cpt = cpt + 1 + + return cpt + + +