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):