X-Git-Url: https://scm.cri.mines-paristech.fr/git/minwii.git/blobdiff_plain/9ee138507f97c1dddedc10cb0d471bc201693e77..6e5711305d3bf1b264625072db77d471c686be03:/src/minwii/synth.py?ds=sidebyside diff --git a/src/minwii/synth.py b/src/minwii/synth.py index f8e8798..6d0034f 100755 --- a/src/minwii/synth.py +++ b/src/minwii/synth.py @@ -7,6 +7,7 @@ $URL$ """ from os.path import realpath, sep, exists from fluidsynth import Synth as FSynth +from fluidsynth import fluid_settings_setnum from log import console, envLogger, eventLogger import pygame import events @@ -26,6 +27,8 @@ class Synth(FSynth) : if not sfPath : sfPath = SOUND_FONT assert exists(sfPath) + + self._gain = gain self.start() self.fsid = self.sfload(sfPath) @@ -37,6 +40,22 @@ class Synth(FSynth) : console.debug('arrêt du synthétiseur') self.delete() + def gain(self, gain) : + self._gain = gain + fluid_settings_setnum(self.settings, 'synth.gain', self._gain) + + def inc_gain(self, step = 0.1) : + self._gain = self._gain + step + if self._gain > 5 : + self._gain = 5 + self.gain(self._gain) + + def dec_gain(self, step = 0.1) : + self._gain = self._gain - step + if self._gain < 0 : + self._gain = 0 + self.gain(self._gain) + def adjust_octave(self, chan, octave) : ''' Abaisse ou élève les notes de n octave