Купил звуковую карту: Focusrite Scarlett 4i4 3rd Gen, с 4 выходными каналами. У меня также есть 4 динамика, и я свяжу каждый динамик со звуковой картой. Я хотел бы иметь возможность устанавливать отдельно громкость каждого динамика, возможно, с интерфейсом tkinter (в конечном счете, но это не главное).
Я видел, что у нас может быть много разных библиотек (я использую Windows 10 для этого проекта): те, которые кажутся интересными, это звуковое устройство и звуковая карта.
Я хотел бы выбрать звуковую карту в качестве устройства вывода и указать, какие каналы должны воспроизводить звук прямо сейчас. Хорошим использованием было бы иметь файл .wav в моно для реализации в 1,2,3 или 4 динамиках; или файл .wav в стерео реализовать таким же образом, но с первым каналом стерео в 2-х колонках и вторым каналом стерео в 2-х других колонках. Идеальное использование было бы для создания эффекта объемного звучания 4.0, создания квадрата динамиков и возможности поворачиваться вместе со звуком: вы можете представить, что я поставил звук поезда, и что этот звук вращается, как если бы поезд крутился вокруг тебя.
sounddevice.AsioSettings() позволяет нам контролировать, какой выход использовать для воспроизведения чего-либо, верно? (https://python-sounddevice.readthedocs.io/en/0.3.15/api/platform-specific-settings.html) Но когда я просматриваю документ в деталях, я также отмечаю, что sounddevice.play() позволяет нам чтобы указать аргумент mapping, который я действительно не понимаю. (https://python-sounddevice.readthedocs.io/en/0.3.15/api/convenience-functions.html#sounddevice.play) Предполагаю, что во всех случаях придется ставить Asio, что не проблема (надеюсь!) .
Поскольку моя цель — управлять каждым динамиком, что я могу указать и как этого добиться, используя библиотеку звукового устройства или другую? Кроме того, можно ли контролировать громкость каждого динамика, используя эти или другие библиотеки (например, pycaw)?
Большое спасибо!
Эльюрн
PS: Если с python не существует решения, было бы приятно, если у вас есть идеи для достижения этой цели другим способом (например, с помощью программного обеспечения, способного это сделать).