]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blobdiff - helpers/mixer.py
Coding styles
[perso/Immae/Projets/Python/MusicSampler.git] / helpers / mixer.py
index 9e8179a9a3989c692b3e97d7da1783a57c748e94..1d3f28fe21fb33e4986d829d154df822b81a6206 100644 (file)
@@ -2,19 +2,31 @@ import sounddevice as sd
 import audioop
 import time
 
-frame_rate   = 44100
-channels     = 2
-sample_width = 2
+from . import Config
+
+sample_width = Config.sample_width
+
+def sample_width_to_dtype(sample_width):
+    if sample_width == 1 or sample_width == 2 or sample_width == 4:
+        return 'int' + str(8*sample_width)
+    else:
+        raise "Unknown sample width"
+
+def _latency(latency):
+    if latency == "high" or latency == "low":
+        return latency
+    else:
+        return float(latency)
 
 class Mixer:
     def __init__(self):
-        self.stream = sd.RawOutputStream(samplerate=frame_rate,
-                        channels=channels,
-                        dtype='int' + str(8*sample_width), # FIXME: ?
-                        latency="high",
-                        blocksize=5000,
-                        callback=self.play_callback,
-                        )
+        self.stream = sd.RawOutputStream(
+                samplerate=Config.frame_rate,
+                channels=Config.channels,
+                dtype=sample_width_to_dtype(Config.sample_width),
+                latency=_latency(Config.latency),
+                blocksize=Config.blocksize,
+                callback=self.play_callback)
         self.open_files = []
 
     def add_file(self, music_file):