Я создал звуковой движок C++ под названием «Crosstalk».
Хотя это называется «звуковой движок», это действительно просто процессор обработки данных C++ (в режиме реального времени). Перекрестные помехи позволяют создавать и маршрутизировать системы во время разработки и в режиме реального времени. В основном, двигатель заботится обо всех маршрутах данных и дает вам простую платформу для создания компонентов, через которые обрабатываются данные (например, ваш компонент «Аудио-канал», подключенный параллельно с компонентом «Видеопоток»). Пока ваши ветви имеют равную общую длину буфера, они будут идеально синхронизированы.
Это очень простой в использовании. Вот пример того, как настроить систему для воспроизведения mp3-файл (Компоненты, используемые здесь снабжены двигателем):
XtSystem system;
XtMp3Decoder mp3Decoder;
XtAudioDevice audioDevice;
long md = system.addComponent(&mp3Decoder);
long ad = system.addComponent(&audioDevice);
system.connOutToIn(md,0,ad,0);
system.connOutToIn(md,1,ad,1);
mp3Decoder.loadFile("../05 Tchaikovski-Swan Lake-Scene.mp3");
mp3Decoder.play();
Вы можете проверить API документацию и лицензионные детали здесь: http://www.adaptaudio.com/Crosstalk
EDIT (12.01.2012):
Перекрестные помехи заменены проектом с открытым исходным кодом под названием «DSPatch». DSPatch - это, по сути, обновленная версия движка маршрутизации Crosstalk, которая больше не ограничивается только обработкой звука. DSPatch позволяет вам создавать и направлять практически любые типы цепочек процессов, которые можно себе представить, и бесплатно для личного и частного использования :)
Должен ли я добавить более подробную информацию? – Eric