From 05a3406de3e26d21865db87960f80c5f40f9cd83 Mon Sep 17 00:00:00 2001 From: Eddy Pedroni Date: Tue, 13 Oct 2026 20:36:02 +0200 Subject: Add option to specify audio device (only applicable for metronome and recorder) --- solo-tool-project/src/solo_tool/recorder.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'solo-tool-project/src/solo_tool/recorder.py') diff --git a/solo-tool-project/src/solo_tool/recorder.py b/solo-tool-project/src/solo_tool/recorder.py index 71c8ac8..c628832 100644 --- a/solo-tool-project/src/solo_tool/recorder.py +++ b/solo-tool-project/src/solo_tool/recorder.py @@ -3,6 +3,8 @@ from pathlib import Path import pyaudio as pa from pydub import AudioSegment, effects +from solo_tool.utils import getAudioDeviceIndex + class Recording: def __init__(self, frames: list, channels: int, samplingRate: int, sampleFormat: int): self._segment = AudioSegment( @@ -23,9 +25,10 @@ class Recording: self._segment.export(str(file), format="mp3", bitrate="320k") class Recorder: - def __init__(self, bufferSize: int, samplingRate: int): + def __init__(self, bufferSize: int, samplingRate: int, deviceName: str): self._bufferSize = bufferSize self._samplingRate = samplingRate + self._deviceName = deviceName self._sampleFormat = pa.paInt16 self._channels = 2 self._pa = pa.PyAudio() @@ -56,6 +59,7 @@ class Recorder: rate=self._samplingRate, frames_per_buffer=self._bufferSize, input=True, + input_device_index=getAudioDeviceIndex(self._deviceName, self._pa), stream_callback=self._callback) def stopRecording(self) -> Recording: -- cgit v1.2.3