X-Git-Url: https://scm.cri.mines-paristech.fr/git/minwii.git/blobdiff_plain/dc8216d3cd94fe2a5d89c6e8a4fae5de2f25bc9b..baf4f2fe0e04d6b95c428813dd920b597031ec04:/src/app/synth.py diff --git a/src/app/synth.py b/src/app/synth.py index 71fa126..469fd04 100755 --- a/src/app/synth.py +++ b/src/app/synth.py @@ -7,7 +7,7 @@ $URL$ """ from os.path import realpath, sep, exists from fluidsynth import Synth as FSynth -from log import console +from log import console, envLogger, eventLogger import pygame import events @@ -35,10 +35,11 @@ class Synth(FSynth) : self.start() self.fsid = self.sfload(sfPath) self._octaveAjusts = {} - console.info('démarrage du synthétiseur\nsoundfont : %s', sfPath) + console.info('démarrage du synthétiseur') + envLogger.info('soundfont : %s', sfPath) def __del__(self) : - console.info('arrêt du synthétiseur.') + console.info('arrêt du synthétiseur') self.delete() def adjust_octave(self, chan, octave) : @@ -56,14 +57,22 @@ class Synth(FSynth) : def sfont_select(self, chan): FSynth.sfont_select(self, chan, self.fsid) + + # on loggue les noteon / noteoff en utilisant les événements pygame + # mais ils ne sont pas postés -> on fait ça pour que le log de l'événement + # et l'exécution du noteon/off soit effectué au sein de la même itération + # de la boucle principale. + def noteon(self, chan, key, vel): key = key + self._octaveAjusts.get(chan, 0) * 12 FSynth.noteon(self, chan, key, vel) evt = pygame.event.Event(events.NOTEON, chan=chan, key=key, vel=vel) - pygame.event.post(evt) + eventLogger.info(evt) + #pygame.event.post(evt) def noteoff(self, chan, key) : key = key + self._octaveAjusts.get(chan, 0) * 12 FSynth.noteoff(self, chan, key) evt = pygame.event.Event(events.NOTEOFF, chan=chan, key=key) - pygame.event.post(evt) + eventLogger.info(evt) + #pygame.event.post(evt)