From d0939a86a1795f5d2328202dcecf1eca8ebaf914 Mon Sep 17 00:00:00 2001 From: pin Date: Thu, 8 Jul 2010 12:37:49 +0000 Subject: [PATCH 1/1] =?utf8?q?Ajout=20de=20m=C3=A9thodes=20et=20commentair?= =?utf8?q?es.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.cri.ensmp.fr/svn/minwii/trunk@279 fe552daf-6dbe-4428-90eb-1537e0879342 --- src/minwii/loganalyse.py | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) 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 + + + -- 2.20.1