X-Git-Url: https://scm.cri.minesparis.psl.eu/git/minwii.git/blobdiff_plain/c469bfe0b89e42f313651c097ac7bedd5cd0cae6..ee24fce216592a13d95977d7d4e3374692fd6924:/src/app/synth.py

diff --git a/src/app/synth.py b/src/app/synth.py
index fa65638..9fb4a3e 100755
--- a/src/app/synth.py
+++ b/src/app/synth.py
@@ -7,23 +7,37 @@ $URL$
 """
 from os.path import realpath, sep, exists
 from  fluidsynth import Synth as FSynth
+from log import console
 
 class Synth(FSynth) :
+    """
+    Interface fluidsynth avec les adaptations suivantes :
+    - la soundfont FluidR3_GM.sf2 est chargée par défaut
+    - le constructeur démarre le synthé
+    - octaviation
+    """
     
-    def __init__(self, gain=0.2, samplerate=44100) :
+    def __init__(self, gain=0.2, samplerate=44100, sfPath='') :
         FSynth.__init__(self, gain=gain, samplerate=samplerate)
         
-        sfPath = realpath(__file__).split(sep)
-        sfPath = sfPath[:-1]
-        sfPath.append('soundfonts')
+        if not sfPath :
+            sfPath = realpath(__file__).split(sep)
+            sfPath = sfPath[:-1]
+            sfPath.append('soundfonts')
+
+            sfPath.append('FluidR3_GM.sf2')
+            sfPath = sep.join(sfPath)
 
-        sfPath.append('FluidR3_GM.sf2')
-        sfPath = sep.join(sfPath)
         assert exists(sfPath)
 
         self.start()
         self.fsid = self.sfload(sfPath)
         self._octaveAjusts = {}
+        console.info('démarrage du synthétiseur\nsoundfont : %s', sfPath)
+    
+    def __del__(self) :
+        console.info('arrêt du synthétiseur.')
+        self.delete()
     
     def adjust_octave(self, chan, octave) :
         '''
@@ -47,7 +61,3 @@ class Synth(FSynth) :
     def noteoff(self, chan, key) :
         key = key + self._octaveAjusts.get(chan, 0) * 12
         FSynth.noteoff(self, chan, key)
-
-
-if __name__ == '__main__' :
-    initsynth()
\ No newline at end of file