Как написать приложения для обработки звука на С++?
Я студент электроники и телекоммуникаций, рядом с моим выпускным экзаменом. Я буду работать над проектом, который включает в себя мои знания о DSP, музыке и аудио в целом. Я все знаю все основные математические инструменты и все, что мне нужно для управления, таких как FFT, круговая свертка ecc ecc.
Я хочу научиться программированию на С++ в основном по одной причине: это очень важно в профессиональном мире!!! И я думаю, что это один из самых популярных приложений, работающих со звуком, особенно когда речь идет о обработке в реальном времени.
Хорошо, после этого небольшого введения я хотел бы знать сначала, какие из наиболее часто используемых библиотек работают с обработкой аудио в С++?? Я больше смотрел в Интернете, но я не мог найти работу. (Я работаю под Linux с окружающей средой затмения CDT).
Затем я хотел бы знать, есть ли хорошие источники, чтобы узнать, как написать какой-то рабочий код, например, как написать простой фильтр нижних частот. В основном сейчас я не буду писать приложения в реальном времени, я бы хотел начать с обработки WAV файла или даже лучше файла MP3, так что в основном на векторы образцов.
Скажем, что в настоящее время я хотел бы извлечь форму волны из аудиофайла и сохранить ее в миниатюре или в PNG-изображении.
Хорошо, теперь я думаю, что все, что мне понадобится.
Любые идеи, советы, библиотеки, книги, интересные источники об этом?
Большое спасибо за любой ответ.
Giovanni.
Ответы
Ответ 1
Ознакомьтесь с этой ссылкой , которая предоставит вам некоторую информацию о программном обеспечении для редактирования аудио (коммерческих и открытых исходных текстов).
Некоторые интересные инструменты редактирования звука с открытым исходным кодом, написанные на С++,
Библиотека С++ для обработки звука.
С++ Код и ссылки, связанные с фильтрами и обработкой звука..
код С++ для фильтра, аудио обработки
Code Guru, фильтр нижних частот
Ответ 2
Я предложил бы вам написать собственный WAVE-ридер и писатель на С++, не полагаясь на внешние библиотеки. Формат WAVE довольно прямолинейный, по крайней мере, если вы только собираетесь поддерживать наиболее распространенные волновые файлы.
Затем вы получите доступ к аудиоданным, с которыми вы можете легко манипулировать на С++. Я бы рекомендовал начать с изменения объема, количества каналов для расчета статистики на аудио. Создание PNG звукового сигнала требует более продвинутых навыков С++...
Ответ 3
Я использовал BASS с хорошими результатами (там можно использовать C/С++ API).