X-Git-Url: https://scm.cri.minesparis.psl.eu/git/minwii.git/blobdiff_plain/41abf9e9670bd4ccd60c07ee7464509080bb7f8d..1ccd4f7141e49707ec82ef1fc39904951250d05c:/src/minwii/synth.py

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