]> CRI, Mines Paris - PSL - minwii.git/blobdiff - src/songs/synth.py
renommage.
[minwii.git] / src / songs / synth.py
diff --git a/src/songs/synth.py b/src/songs/synth.py
deleted file mode 100755 (executable)
index 0832b90..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-module pour jouer les chansons sur le fluidsynth
-
-$Id$
-$URL$
-"""
-import fluidsynth
-from app.musicxml import musicXml2Song
-from time import sleep
-import sys
-from optparse import OptionParser
-
-class SongPlayer(object) :
-    """ Lecteur audio d'une chanson """
-
-    def __init__(self, part, soundFont, quarterNoteDuration=400, bank=0, preset=0) :
-        self.part = part
-        self.quarterNoteDuration = quarterNoteDuration
-        self.fs = fs = fluidsynth.Synth()
-        fs.start()
-        self.fsid = fsid = fs.sfload(soundFont)
-        fs.program_select(0, fsid, bank, preset)
-    
-    def __del__(self) :
-        self.fs.delete()
-    
-    def play(self) :
-        fs = self.fs
-        for note, verseIndex in self.part.iterNotes(indefinitely=False) :
-            try :
-                print note, note.lyrics[verseIndex]
-            except IndexError :
-                print note, '?'
-            fs.noteon(0, note.midi, 64)
-            duration = note.duration * self.quarterNoteDuration / 1000
-            sleep(duration)
-            fs.noteoff(0, note.midi)
-            
-            
-            
-        
-
-def main() :
-    usage = "%prog musicXmlFile.xml [options]"
-    op = OptionParser(usage)
-    op.add_option("-i", "--part-index", dest="partIndex"
-                 , default = 0
-                 , help = "Index de la partie qui contient le champ.")
-
-    op.add_option("-c", '--no-chorus', dest='autoDetectChorus'
-             , action="store_false"
-             , default = True
-             , help = "désactive la détection du refrain")
-
-    op.add_option("-q", "--quarter-note-duration", dest="quarterNoteDuration"
-                  , type="int", default=400
-                  , help="Durée de la noire [default] (en millisecondes)"
-                  )
-
-    op.add_option("-b", "--bank", dest="bank"
-                  , type="int", default="0"
-                  , help="midi bank [default]")
-
-    op.add_option("-p", "--preset", dest="preset"
-                , type="int", default="0"
-                , help="midi preset [default]")
-        
-    options, args = op.parse_args()
-    
-    if len(args) != 1 :
-        raise SystemExit(op.format_help())
-    
-    song = musicXml2Song(args[0],
-                         partIndex=options.partIndex,
-                         autoDetectChorus=options.autoDetectChorus)
-    sp = SongPlayer(song,
-                    '/Users/pinbe/dev/minwii/fluid-soundfont-3.1/FluidR3_GM.sf2',
-                    quarterNoteDuration=options.quarterNoteDuration,
-                    bank = options.bank,
-                    preset = options.preset)
-    sp.play()
-
-
-if __name__ == '__main__' :
-    sys.exit(main())