Какие основные категории операций выполняются над звуковыми сигналами для создания интересных звуков?


10

Я не знаю, будет ли этот вопрос иметь смысл, так как я новичок в dsp.

В моем ограниченном наборе в аудио dsp я сталкивался:

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

Мой вопрос: являются ли это основными фундаментальными категориями обработки сигналов (особенно для аудио)?

Другими словами, можно ли разбить все эффекты и причудливые вещи, которые может сделать FL Studio с полным набором плагинов, на серию и комбинацию из 4 вышеуказанных операций? Или есть еще целая куча? Можно ли теоретически разбить современную DAW с плагинами на какие-либо категории? Имеют ли смысл перечисленные выше 4 категории сами по себе ?!

Немного предыстории: по сути, я пытаюсь сделать очень простой (но очень гибкий) аудио синтезатор / редактор в качестве проекта для изучения программирования и аудио dsp. Я начал использовать java, имитируя базовые классы синтезатора реального мира, вызывая такие вещи, как Oscillator, LFO и тому подобное, но каждый раз, когда я узнаю что-то новое, мне приходится переписывать все, чтобы соответствовать новой концепции в программе.

Я пытаюсь начать снова сейчас и придумать основные объекты и структуру программы. Для того, чтобы это правильно, мне нужно знать, как я должен позволить этим объектам взаимодействовать и т.д ...

Спасибо!

РЕДАКТИРОВАТЬ * * *

Спасибо за полезные комментарии и ответы. Я понимаю, что, вероятно, недооцениваю сторону dsp, и я не смогу просто создать базовый шаблон и структуру для простого синтезатора, а затем просто развернуть его / построить на нем. Мне, вероятно, придется многократно перестраивать снова и снова, когда я изучаю новые вещи и "правильный" способ делать вещи ... Это займет больше времени, но, возможно, я узнаю больше? Кроме того, извините, у меня, кажется, еще недостаточно представителей, чтобы отозвать кого-либо еще ... как только я смогу.

EDIT * EDIT ***

Я должен добавить, что небольшое количество поисков в Google выявило это основное руководство по «типам синтеза», которое я нашел актуальным и интересным.


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

1
Если бы я суммировал все возможные звуковые манипуляции в как можно меньшем количестве категорий, я бы назвал линейные и нелинейные преобразования. Но они слишком общие и широкие, чтобы их можно было реализовать.
Алексей Фрунзе

@datageist - Думаю, мне понадобятся оба! Но это очень полезная ссылка, спасибо.
Киман

@ Alex Это очень общее, но это концептуальная отправная точка, и, по крайней мере, теперь я знаю, что я как-то лаю не то дерево.
Киман

получить книгу Уилла Пиркла ​​«Проектирование плагинов программного синтезатора на C ++: для RackAFX, VST3 и аудиоустройств». на самом деле вы будете делать синтезатор и учиться на своем пути, вместо того, чтобы пытаться выяснить все самостоятельно.
Пантион

Ответы:


9

оUT(T)яN(T)

В основе всех звуковых эффектов, предоставляемых программным обеспечением для создания музыки, нет волшебного специализированного движка. Но если вы посмотрите на исходный код большого набора звуковых эффектов от разработчика DSP, вот некоторые «строительные блоки», которые будут выделены в своих собственных классах и совместно используются многими различными эффектами. Я не имею в виду, что это служит хорошей основой для классификации эффектов; но с точки зрения реализации эти блоки необходимы:

  • Biquad фильтры.
  • Дробные линии задержки.
  • Механизм свертки для быстрой свертки входного сигнала с импульсными характеристиками произвольного размера.
  • Waveshaper (применение нелинейной функции к входному сигналу в time-domaine).
  • Строительные блоки синтезатора: генераторы, LFO, конверты ADSR.
  • Детекторы сигналов: повторитель огибающей, экстрактор f0.

С этими блоками вы можете построить:

  • Синтетические фильтры или вау-вау: один или два биквада
  • Авто-вау: конверт-конвертер + конверт + биквад
  • Фленгер / Фазер: LFO + линия задержки
  • Припев: LFO + линии задержки
  • Алгоритмическая реверберация: линии задержки (массив параллельных и последовательных гребенчатых фильтров)
  • Свертка реверберации: свертка
  • Spatializer: свертка (с импульсными характеристиками HRTF)
  • Моделирование гитарного усилителя: свертка, wavehappers
  • Искажение, Fuzz: усиление + Wavehapper
  • Bitcrusher (квантователь): частный случай wavehapper
  • Кольцевой модулятор с синусоидой: генератор
  • Noise Gate и другие динамические эффекты: последователь огибающей
  • Симуляция ленты: свертка, волновой преобразователь, огибающая (для обработки динамики)
  • EQ: биквад
  • Тремоло: LFO
  • Эмуляция Лесли: свертка + LFO
  • Вокодер: биквад + конвертер

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

В целом, это интересный набор эффектов, которые будут охватывать множество областей для музыкального производства, но он не является исчерпывающим, и действительно есть некоторые эффекты, которые не соответствуют этой структуре ... Некоторые примеры: * Грязное уменьшение частоты дискретизации (в bitcrusher): правда, это умножение на гребень дирака, а затем свертка на прямоугольное окно ... но проще записать его как нечто, дублирующее значение одного сэмпла по N следующих сэмплов, вместо исправления амплитудной модуляции и свертка! * Эффекты изменения высоты тона (смещение высоты тона, автонастройка) не вписываются в эту структуру. Им необходимо более сложное представление аудиосигнала, который должен быть выполнен (фазовый вокодер для методов частотной области; обнаружение основного тона и метки основного тона для методов временной области).

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


2
Для чего это стоит, частотная модуляция используется в FM-синтезе. Это легко увидеть в случае однотональной ЧМ-модуляции, которая приводит к получению сигнала с рядом Фурье, определяемым функциями Бесселя первого рода.
Брайан,

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

Я не вижу никаких источников, прикрепленных к этой записи в Википедии. Несмотря на это, согласно этой записи, они говорят, что они звучат «одинаково», и что PM используется, потому что FM сложнее реализовать. Я не покупаю это, учитывая, что FM является частным случаем PM. Тем не менее, теория, которую я привел за ЧМ модуляцией, производящей гармоники, связанные с функциями Бесселя, стоит и полезна.
Брайан,

@Bryan. См. Пункт 1 патента на синтез "FM", US4018121. А sin (wt + I (t) sin w_m t) - это фазовая модуляция. PM проще в реализации, потому что 1 / вам не нужен дополнительный аккумулятор для интеграции изменяющейся мгновенной частоты в фазу - посмотрите несколько постов здесь, в которых люди пытались генерировать тон с изменяющейся во времени частотой и получали укус 2 / преобразование частоты в приращение фазы включает в себя деление. С PM вы пересчитываете приращения фазы с частотой модуляции; с FM вам нужно будет пересчитать приращения фазы на частоте дискретизации.
pichenettes

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