Кто-нибудь знает о каких-либо библиотеках кода C/C++/C#, которые эмулируют аудио синтезатор?
Я пытаюсь написать программный синтезатор, который воссоздает звуки, сделанные классическими синтезаторами, такими как Moog и DX7. Кто-нибудь знает о каких-либо ресурсах кода для чего-то подобного? Спасибо.
12 ответов
существует очень много библиотек C/C++, большинство из которых больше не обновляется. Там не так много для C#, но я видел пару. Я действительно не использовал ни один из них в гневе, поэтому я не могу дать никаких рекомендаций.
Я бы начал с Гармония Центр и посмотрите, найдете ли вы там что-нибудь полезное.
альтернативно, поиск аналоговый синтез ВКЛ sourceforge.net имеет множество результатов.
CCRMA в Стэнфорде может быть хорошим ресурсом для аудио программного обеспечения. инструментарий синтеза в C++ (STK) похоже, это может помочь вам.
Moog и Yamaha DX7 кардинально отличаются. DX7 использует синтез FM, что очень странно. Очень отличается от обычных аналогов VCO/VCA/VCF, таких как Moog.
долгое время Yamaha судилась, чтобы защитить свои FM-патенты, но все они уже истекли, я считаю. Искажение фазы Casio было похоже на FM Yamaha и сумело избежать гнева Yamaha (насколько я знаю).
Я бы начал с выбора одного или другого. Виртуальный аналог (эмуляция аналоговые синтезаторы) - это все ярость, так как появился Nord Lead и вирус доступа. И намного легче созерцать. Так что я пойду туда, если ты хочешь идти с толпой.
начните с хороших полосовых генераторов, сделайте генератор огибающей, сделайте фильтр. Для вдохновения, проверьте валлийский синтезатор Поваренная книга чтобы увидеть, как все виды звуков могут быть сделаны с синтезатором двух осцилляторов. Я бы начал с реализации минимальных функций, необходимых для этих заплаты.
FM и PD дикие. Если вы идете по этому маршруту, все дело в цепочке достаточно FM-операторов вместе в интересных конфигурациях, чтобы получить спектр интересных звуков. Предупреждение: это много работы, чтобы избежать сглаживания в FM.
Synthmaker и SynthEdit будут генерировать VST-код для вас. SynthEdit определенно выводит несжатые исходные файлы C++ и является бесплатным.
ваш лучший выбор, чтобы проверить форумы разработчиков на KvR. Они смогут указать вам в направлении лучших двигателей DSP/синтеза с открытым исходным кодом, а также некоторых плагинов VSTi с открытым исходным кодом, которые вы можете взять вдохновение. Однако все это будет на C / C++. На данный момент в управляемом коде доступен только самый базовый синтез звука.
на musicdsp веб-сайт также имеет большой синтез библиотека. Много примеров кода на C / C++ о том, как делать вещи.
посмотрите на ответы на Музыкальная Библиотека Python вопрос. Хотя в вопросе говорится "Python", Python построен на C. Поэтому все, что можно использовать из Python, также будет иметь библиотеку C.
Я написал простую библиотеку синтезаторов как часть приложения для iPhone. Возможно, это сработает и для ваших нужд синтезатора. А может, и нет. http://mobilesynth.googlecode.com/svn/trunk/mobilesynth/Classes/synth/
учебники (особенно из части 8 и далее) охватывают Программирование всех частей классического субтрактивного синтезатора на C++: осцилляторы, конверты, фильтр и LFO.
У меня был некоторый успех с бас-библиотека, но поддержка .Net была немного грубой, когда я в последний раз играл с ней. Это в основном низкоуровневое кодирование потока и тому подобное, но у него есть поддержка некоторых эффектов DX8.
есть две статьи о CodeProject, которые вы можете проверить. Лесли Стэнфорд создал инструментарий синтезатора на C# (насколько я знаю, он полностью управляется).
C# Synth Toolkit-Часть I C# Synth Toolkit-Часть II
кроме того, я только что нашел этот вопрос StackOverflow который имеет некоторые хорошие ссылки, хотя это связано с Java