possibilité de passer en paramètre un fichier .sf2 au constructeur (non testé)
log de la soundfont utilisée
ajout d'un déconstructeur pour arrêter correctement fluidsynth.
git-svn-id: https://svn.cri.ensmp.fr/svn/minwii/trunk@149
fe552daf-6dbe-4428-90eb-
1537e0879342
"""
from os.path import realpath, sep, exists
from fluidsynth import Synth as FSynth
"""
from os.path import realpath, sep, exists
from fluidsynth import Synth as 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)
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 = {}
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) :
'''
def adjust_octave(self, chan, octave) :
'''
def noteoff(self, chan, key) :
key = key + self._octaveAjusts.get(chan, 0) * 12
FSynth.noteoff(self, chan, key)
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