Відповіді:
Отримайте реальний синтез звуку для інтерактивних програм та завантажте інструментарій синтезу . Це дасть вам практичні введення та якісний вихідний код для більшості використовуваних цифрових методів синтезу. Потім виберіть той метод, який вам здається найцікавішим, і починайте змінювати відповідний код STK, щоб робити те, що вам потрібно. Потім спробуйте створити щось з нуля.
Крім того, як запропонував hotpaw2 , що-небудь із JOS також є чудовим вступним матеріалом. Зокрема, вступ до цифрових фільтрів із звуковими додатками та математикою дискретної трансформації Фур'є починається з основ, і не передбачає багато досвіду.
З точки зору цифрового фільтра / ефектів, ще однією гарною відправною точкою є перевірка Фауста . Вам навіть не доведеться вивчати мову обробки сигналів блок-діаграм, ви можете просто використовувати приклади для скидання коду шаблону VST, LADSPA тощо як швидкий спосіб отримати щось запущене [яке ви можете потім змінити].
Якщо говорити, починати звукопередачу ще простіше, що в основному те саме, але не турбуючись про роботу в режимі реального часу чи інтерактивність. Ви просто зберігаєте файли WAV на диску. Це прекрасний спосіб поекспериментувати з новими методами, перш ніж зіткнутися з проблемою змусити їх швидко працювати.
Я прочитав би вступну книгу про 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 і викочувати своє, коли нарешті підійдеш до стіни.