Для моего школьного проекта я хотел бы знать, может ли кто-нибудь помочь мне найти способ вывода звука в режиме реального времени через динамики моего ПК.
Это должно быть сделано через мою звуковую карту при одновременном воспроизведении параметров воспроизводимого сигнала, таких как фаза, амплитуда, форма волны и т. Д.?
Я бы предпочел библиотеку на языке C ++, если это возможно, и на платформе Windows по практическим соображениям. Конечно, Linux также возможен.
Наиболее важно, что я также хотел бы посылать различные формы волны через каждый динамик, чтобы создать стационарные волны, как можно видеть из этого эксперимента:
www.youtube.com/watch?v=T56waxJ7bB8
Одна интересная возможность заключается в использовании ДЖЕК. Он работает под Linux, Windows и OSX и обеспечивает доступ к аудиовыходу с низкой задержкой. Это также позволяет произвольно перенаправлять вывод в какую-либо другую программу.
Модель программирования JACK очень проста — поддерживается только один тип данных — 32-битный канал float
Таким образом, вместо ручного чередования каналов данных вы можете вместо этого предоставить отдельные экземпляры левого и правого синусоидальных генераторов звука и направить каждый из них к соответствующему выходному каналу.
Также, как второстепенный интерес, JACK2 написан на C ++ (хотя внешний API все еще C). Я бы рекомендовал начать с JACK Wiki и, возможно, изменив один из простых примеров клиентов, чтобы сделать то, что вы пытаетесь.
Для этого есть несколько API.
Поищите в сети несколько примеров. Поиграйте с этими API и примерами некоторое время и посмотрите, как у вас получается.