Які основні категорії операцій, що виконуються над звуковими сигналами для створення цікавих звуків?


10

Я не знаю, чи матиме це питання сенс, оскільки я дуже новачок у dsp.

У моєму обмеженому наході на аудіо dsp я натрапив:

  1. Частотна модуляція
  2. Амплітудна модуляція
  3. Адитивний синтез
  4. Субтрактивний синтез

Моє запитання: це основні основні категорії маніпулювання сигналом (спеціально для аудіо)?

Іншими словами, чи можна всі ефекти та химерні речі, які FL Studio з повним набором плагінів може зробити, розбити на серію та комбінацію вищевказаних 4 операцій? Або є ціла купа більше? Чи можна теоретично розкласти сучасний DAW із плагінами на будь-які категорії? Чи перераховані вище 4 категорії мають сенс самі по собі ?!

Трохи передісторії: По суті, я намагаюся зробити дуже базовий (але дуже гнучкий) аудіо синтезатор / редактор як проект для вивчення як програмування, так і аудіо dsp. Використовуючи java, я почав імітувати базові класичні синтезатори в реальному світі, називати такі речі, як Oscillator та LFO тощо, але кожного разу, коли я дізнаюся щось нове, мені здається, що потрібно переписати все, щоб відповідати новій концепції в програму.

Я зараз намагаюся почати заново і придумати основні об'єкти та структуру програми. Для цього я повинен знати, як я повинен дозволити цим об'єктам взаємодіяти тощо.

Дякую!

Редагувати * * *

Дякуємо за корисні коментарі та відповіді. Я усвідомлюю, що, ймовірно, недооцінював dsp сторону речей, і я не зможу просто створити базовий шаблон і структуру для простого синтезатора, а потім просто розширити його / побудувати на ньому. Мені, мабуть, доведеться неодноразово перебудовуватися знову і знову, коли я дізнаюся нові речі та "правильний" спосіб робити речі ... Це займе більше часу, але, можливо, я дізнаюся більше? Також вибачте, я, здається, ще не маю достатньої кількості репортажів, щоб когось відкликати ... як тільки можу, я зроблю.

Редагувати * редагувати ***

Варто додати, що трохи гуглінг виявив цей основний посібник щодо "типів синтезу", який мені здався актуальним та цікавим.


Ви хочете теоретичну основу методів синтезу чи хочете щось подібне (тобто загальні методи, які застосовуються на практиці)? dsp.stackexchange.com/questions/192/…
datageist

1
Якби я підсумував усі можливі звукові маніпуляції якомога менше категорій, я б назвав лінійні та нелінійні перетворення. Але вони занадто загальні та широкі, щоб їх можна було реалізувати.
Олексій Фрунзе

@datageist - я думаю, мені знадобляться обидва! Але це дуже корисне посилання, дякую.
кіман

@ Алекс Це дуже загально, але це концептуальна відправна точка, і я, принаймні, зараз знаю, що я начебто гавкнув неправильне дерево.
Кіман

Отримайте книгу Вілла Піркла, «Дизайн плагінів синтезатора програмного забезпечення в C ++: для RackAFX, VST3 та аудіоблоків». ви насправді будете робити синтезатор і навчатися по дорозі, а не намагатися все зрозуміти самостійно.
пантіон

Відповіді:


9

оут(т)iн(т)

Немає чарівного одноцільового двигуна в основі всіх аудіоефектів, що надаються музичним програмним забезпеченням. Але якщо ви подивитеся на вихідний код великого набору аудіоефектів від розробника DSP, ось деякі "будівельні блоки", які будуть розроблені у власних класах, і які мають багато різних ефектів. Я не маю на увазі, що це є хорошою основою для категоризації ефектів; але з точки зору реалізації, ці блоки є важливими:

  • Біквадні фільтри.
  • Дробові лінії затримки.
  • Двигун згортки для швидкого згортання вхідного сигналу з імпульсними реакціями довільного розміру.
  • Waveshaper (застосування нелінійної функції до вхідного сигналу в часовій області).
  • Синтезатор будівельних блоків: генератори, LFO, конверти ADSR.
  • Детектори сигналів: конверт-послідовник, витяжка f0.

За допомогою цих блоків ви могли побудувати:

  • Синт-подібні фільтри або wah-wah: одна-дві біквади
  • Авто-ва: послідовник конвертів + ​​конверт + біквад
  • Флангер / Фазер: LFO + лінія затримки
  • Приспів: LFO + лінії затримки
  • Алгоритмічна реверберація: лінії затримки (масив паралельних і послідовних гребінцевих фільтрів)
  • Реверберація згортки: згортка
  • Spatializer: згортання (з імпульсними відгуками HRTF)
  • Моделювання гітарного підсилювача: згортка, хвилешукачі
  • Викривлення, Fuzz: посилення + хвилеподібний перемикач
  • Bitcrusher (квантователь): особливий випадок хвильової форми
  • Кільцевий модулятор з синусоїдою: генератор
  • Шумні ворота та інші ефекти динаміки: конверт
  • Моделювання стрічки: згортка, хвилевідвідник, послідовник конверта (для обробки динаміки)
  • EQ: біквади
  • Тремоло: LFO
  • Емуляція Леслі: згортання + LFO
  • Вокодер: біквади + підписник конвертів

Хоча деякі з цих ефектів є лише питанням обклеювання різних блоків (флегер справді є LFO, що модулює лінію затримки), деякі інші ефекти потребують більш складного клею між деталями, що є достатньо конкретним, щоб не враховувати його в будівельний блок власних.

Це, загалом, цікавий набір ефектів, який охопить багато підґрунтя для виробництва музики, але це не є вичерпним, і дійсно є деякі ефекти, які не відповідають цій рамці ... Деякі приклади: * Брудне зменшення швидкості вибірки (у bitcrusher): правда, це множення на гребінець dirac, а потім згортання на прямокутне вікно ... але простіше записати це як щось, що дублює значення одного зразка над N наступними зразками, замість того, щоб латати амплітудну модуляцію і згортка! * Ефекти зміни нахилу (зміщення кроку, автоматична настройка) не відповідають цим рамкам. Вони потребують більш складного подання аудіосигналу, який слід виконувати (фазовий вокодер для методів частотної області; виявлення кроку та позначення тону для методів часової області).

Я пропоную вам пограти з програмними засобами "модульного стилю", такими як Pd, Reaktor, Plogue, SyntheEdit ... - і спробувати реалізувати ефекти з основних будівельних блоків, які вони вам надають.


2
Для того, що це варто, використовується модуляція частоти в синтезі FM. Це легко видно з випадку однотонної FM-модуляції, в результаті якої подається сигнал із рядом Фур'є, визначеним функціями Бесселя першого типу.
Брайан

1
"Синтез FM", реалізований у синтезаторах (таких як серія Yamaha DX, апаратне забезпечення на базі OPL та емуляція програмного забезпечення), є помилковим, оскільки це фактично робиться за допомогою фазової модуляції. en.wikipedia.org/wiki/Phase_modulation
пішенети

Я не бачу жодних джерел, що додаються до цього запису у Вікіпедії. Незважаючи на те, згідно з цим записом, він говорить про те, що вони звучать "схоже", і що ПМ використовується, тому що FM важче реалізувати. Я цього не купую, враховуючи, що ФМ - особливий випадок прем'єр-міністра. Тим не менше, теорія, яку я цитував за FM-модуляцією, що виробляє гармоніки, пов'язані з функціями Бесселя, є корисною.
Брайан

@Bryan. Див. Пункт 1 патенту на синтез "FM", US4018121. A sin (wt + I (t) sin w_m t) - це фазова модуляція. ПМ простіше реалізувати, тому що 1 / вам не потрібен додатковий акумулятор, щоб інтегрувати різну миттєву частоту у фазу - дивіться тут кілька публікацій, в яких люди намагалися генерувати тон з різною частотою, і відкусили назад 2 / перетворення з частоти у приріст фази передбачає поділ. За допомогою PM ви перераховуєте приріст фаз зі швидкістю модуляцій; за допомогою FM вам потрібно буде перерахувати приріст фаз за швидкістю вибірки.
пікенети

Дуже корисна відповідь, дякую. Я усвідомлюю, що я багато акцентував увагу на аспекті програмування (що я тільки навчаюсь) і не сприймаю dsp сторону досить серйозно. Це, мабуть, не буде проектом, який я можу просто почати з малого та нарощувати поступово, але такий, який мені доведеться відновлювати та відновлювати багато разів, коли я навчаюся.
Кіман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.