Что нужно знать, чтобы построить программный синтезатор?
19
Для кого-то, кто имеет некоторый опыт в разработке программного обеспечения, любит свои синтезаторы и знает [очень] основы представления цифрового аудио, каковы первые шаги, которым он должен следовать, чтобы запрограммировать музыкальный синтезатор, в отношении DSP?
Получите Real Sound Synthesis для интерактивных приложений и загрузите Synthesis Toolkit . Это даст вам практическое представление и качественный исходный код для большинства используемых методов цифрового синтеза. Затем выберите тот метод, который вам наиболее интересен, и начните изменять соответствующий код STK, чтобы сделать то, что вы хотите. Затем попробуйте создать нечто подобное с нуля.
С точки зрения цифрового фильтра / эффектов, другой хорошей отправной точкой является проверка Faust . Вам даже не нужно изучать их язык обработки сигналов блок-схем, вы можете просто использовать примеры, чтобы выгрузить код шаблона VST, LADSPA и т. Д., Как быстрый способ запустить что-то [что вы можете затем изменить].
При этом еще проще начать с рендеринга звука, что, в сущности, одно и то же, но не беспокоясь о работе в реальном времени или интерактивности. Вы просто сохраняете WAV файлы на диск. Это отличный способ поэкспериментировать с новыми техниками перед тем, как приступить к их быстрому запуску.
Идеальный ответ - он охватывает очень хорошо сбалансированное количество вопросов. Спасибо!
Vemv
6
Я прочитал бы вводную книгу по DSP плюс несколько книг на тему компьютерной музыки (Amazon и другие книжные магазины перечисляют несколько). Также есть множество материалов из Стэнфорда о DSP и синтезе звука. Книги по слуховой системе человека и психоакустике также могут быть полезны.
Сначала вам нужно решить, какой синтезатор вы хотите построить - аддитивный, FM, на основе семплов и т. Д. Вам также нужно решить, хотите ли вы эмулировать какой-либо существующий аналоговый синтезатор или просто спроектировать свой собственный.
Все остальное довольно просто - вам просто нужно внедрить различные строительные блоки синтезатора (например, генераторы, фильтры, генераторы шума, формирователи огибающей и т. Д.) В программном обеспечении, а затем реализовать способ их «соединения» и управления их параметрами.
Я очень удивлен, что никто еще не упомянул SynthMaker . Смехотворно прост в использовании, и хотя он затрудняет переход на низкоуровневый (обязательно используйте режим разработчика ), вы можете многое узнать об архитектуре Synthesizer с его помощью, а также об общем DSP. И вы можете использовать вещи, созданные с его помощью, на самом деле, я использую его для создания почти всех моих плагинов.
Как разработчик программного обеспечения, я всегда неохотно относился к волшебникам, но держу пари, что DSP - это глубокий мир, поэтому SynthMaker мог бы пригодиться. Кроме того, у пары
приятелей
Я собирался упомянуть SynthMaker сам. Это отличная программа.
Мэтт М.
4
Как уже упоминали некоторые другие участники, хороший учебник по DSP является обязательным. Это отличная книга> http://www.dspguide.com/, и автор любезно предоставил полную и бесплатную загрузку в формате PDF. Еще одна распространенная учебная программа по музыкальной технике, которая дает хорошее представление о различных методах синтеза на высоком уровне:> http://www.amazon.com/Computer-Music-Tutorial-Curtis-Roads/dp/0262680823 . Я также хотел бы повторить то, что предложил предыдущий участник, Synthmaker, который является очень удобной средой визуальной разработки для разработки плагинов VST. Наконец, если вы просто хотите экспериментировать, не углубляясь в это, вы можете попробовать использовать Csound, язык программирования, специально разработанный для синтеза звука.
Я просто хочу присоединиться, так как большинство ответов сосредоточены на проблемах DSP. Если вы не используете систему блочного дизайна, такую как SynthMaker, вы потратите много времени на разработку управления голосом. Если вы писали плагин VSTi для инструментов с нуля, кривая обучения намного длиннее, чем для плагинов эффектов. Вам придется управлять каждым объектом заметки, решить, что произойдет, когда на 20 нот будет, если ваш DSP достаточно быстр для 16 голосов, отреагировать на изменение высоты тона, портаменто, модуляцию и т. Д. Это непростая задача, и поэтому я очень рекомендую начинать с Buzz или SynthMaker и кататься самостоятельно, когда вы наконец натолкнетесь на стену.
Я прочитал бы вводную книгу по DSP плюс несколько книг на тему компьютерной музыки (Amazon и другие книжные магазины перечисляют несколько). Также есть множество материалов из Стэнфорда о DSP и синтезе звука. Книги по слуховой системе человека и психоакустике также могут быть полезны.
источник
Сначала вам нужно решить, какой синтезатор вы хотите построить - аддитивный, FM, на основе семплов и т. Д. Вам также нужно решить, хотите ли вы эмулировать какой-либо существующий аналоговый синтезатор или просто спроектировать свой собственный.
Все остальное довольно просто - вам просто нужно внедрить различные строительные блоки синтезатора (например, генераторы, фильтры, генераторы шума, формирователи огибающей и т. Д.) В программном обеспечении, а затем реализовать способ их «соединения» и управления их параметрами.
См. Книгу Хала Чемберлина « Музыкальные приложения микропроцессоров» , которая является хорошим введением во многие основы.
источник
Я очень удивлен, что никто еще не упомянул SynthMaker . Смехотворно прост в использовании, и хотя он затрудняет переход на низкоуровневый (обязательно используйте режим разработчика ), вы можете многое узнать об архитектуре Synthesizer с его помощью, а также об общем DSP. И вы можете использовать вещи, созданные с его помощью, на самом деле, я использую его для создания почти всех моих плагинов.
источник
Как уже упоминали некоторые другие участники, хороший учебник по DSP является обязательным. Это отличная книга> http://www.dspguide.com/, и автор любезно предоставил полную и бесплатную загрузку в формате PDF. Еще одна распространенная учебная программа по музыкальной технике, которая дает хорошее представление о различных методах синтеза на высоком уровне:> http://www.amazon.com/Computer-Music-Tutorial-Curtis-Roads/dp/0262680823 . Я также хотел бы повторить то, что предложил предыдущий участник, Synthmaker, который является очень удобной средой визуальной разработки для разработки плагинов VST. Наконец, если вы просто хотите экспериментировать, не углубляясь в это, вы можете попробовать использовать Csound, язык программирования, специально разработанный для синтеза звука.
источник
Я просто хочу присоединиться, так как большинство ответов сосредоточены на проблемах DSP. Если вы не используете систему блочного дизайна, такую как SynthMaker, вы потратите много времени на разработку управления голосом. Если вы писали плагин VSTi для инструментов с нуля, кривая обучения намного длиннее, чем для плагинов эффектов. Вам придется управлять каждым объектом заметки, решить, что произойдет, когда на 20 нот будет, если ваш DSP достаточно быстр для 16 голосов, отреагировать на изменение высоты тона, портаменто, модуляцию и т. Д. Это непростая задача, и поэтому я очень рекомендую начинать с Buzz или SynthMaker и кататься самостоятельно, когда вы наконец натолкнетесь на стену.
источник