From: pin <pin@fe552daf-6dbe-4428-90eb-1537e0879342>
Date: Tue, 27 Sep 2011 11:47:20 +0000 (+0000)
Subject: Ajout de la propriété « duration » sur l'objet musicxml.Part. Modification dans le... 
X-Git-Url: https://scm.cri.minesparis.psl.eu/git/minwii.git/commitdiff_plain/94e7b3f13f4247613609d53c95d0ba59a1eee9d1?ds=inline

Ajout de la propriété « duration » sur l'objet musicxml.Part. Modification dans le code d'analyse pour prendre en charge cette propriété.


git-svn-id: https://svn.cri.ensmp.fr/svn/minwii/trunk@394 fe552daf-6dbe-4428-90eb-1537e0879342
---

diff --git a/src/minwii/loganalyse.py b/src/minwii/loganalyse.py
index f3e5e32..61b0382 100755
--- a/src/minwii/loganalyse.py
+++ b/src/minwii/loganalyse.py
@@ -139,10 +139,7 @@ class LogFileAnalyser(LogFileReader) :
         
         songFile = self.getSongFile()
         song = musicXml2Song(songFile)
-        duration = 0
-        for note, verseIndex in song.iterNotes() :
-            duration = duration + note.duration
-        duration = duration * song.quarterNoteDuration # en milisecondes
+        duration = song.duration
         return self._toTimeDelta(duration)
     
     @statsresults
diff --git a/src/minwii/musicxml.py b/src/minwii/musicxml.py
index 7468eca..54d859f 100755
--- a/src/minwii/musicxml.py
+++ b/src/minwii/musicxml.py
@@ -176,6 +176,17 @@ class Part(object) :
                 histogram[interval] = 1
             previousNote = note
         return histogram
+    
+    @property
+    def duration(self) :
+        'Durée de référence du morceau en milisecondes'
+        it = self.iterNotes()
+        duration = 0
+        for note, verseIndex in it :
+            duration = duration + note.duration
+        duration = duration * self.quarterNoteDuration # en milisecondes
+        return duration
+        
         
     def pprint(self) :
         for note, verseIndex in self.iterNotes(indefinitely=False) :
@@ -423,6 +434,7 @@ def main() :
                   printNotes=options.printNotes)
     from pprint import pprint
     pprint(song.intervalsHistogram)
+    print song.duration
 
 
 if __name__ == '__main__' :