Я не знаю, будет ли этот вопрос иметь смысл, так как я новичок в dsp.
В моем ограниченном наборе в аудио dsp я сталкивался:
- Модуляция частоты
- Амплитудная модуляция
- Аддитивный синтез
- Субтрактивный Синтез
Мой вопрос: являются ли это основными фундаментальными категориями обработки сигналов (особенно для аудио)?
Другими словами, можно ли разбить все эффекты и причудливые вещи, которые может сделать FL Studio с полным набором плагинов, на серию и комбинацию из 4 вышеуказанных операций? Или есть еще целая куча? Можно ли теоретически разбить современную DAW с плагинами на какие-либо категории? Имеют ли смысл перечисленные выше 4 категории сами по себе ?!
Немного предыстории: по сути, я пытаюсь сделать очень простой (но очень гибкий) аудио синтезатор / редактор в качестве проекта для изучения программирования и аудио dsp. Я начал использовать java, имитируя базовые классы синтезатора реального мира, вызывая такие вещи, как Oscillator, LFO и тому подобное, но каждый раз, когда я узнаю что-то новое, мне приходится переписывать все, чтобы соответствовать новой концепции в программе.
Я пытаюсь начать снова сейчас и придумать основные объекты и структуру программы. Для того, чтобы это правильно, мне нужно знать, как я должен позволить этим объектам взаимодействовать и т.д ...
Спасибо!
РЕДАКТИРОВАТЬ * * *
Спасибо за полезные комментарии и ответы. Я понимаю, что, вероятно, недооцениваю сторону dsp, и я не смогу просто создать базовый шаблон и структуру для простого синтезатора, а затем просто развернуть его / построить на нем. Мне, вероятно, придется многократно перестраивать снова и снова, когда я изучаю новые вещи и "правильный" способ делать вещи ... Это займет больше времени, но, возможно, я узнаю больше? Кроме того, извините, у меня, кажется, еще недостаточно представителей, чтобы отозвать кого-либо еще ... как только я смогу.
EDIT * EDIT ***
Я должен добавить, что небольшое количество поисков в Google выявило это основное руководство по «типам синтеза», которое я нашел актуальным и интересным.
источник
Ответы:
В основе всех звуковых эффектов, предоставляемых программным обеспечением для создания музыки, нет волшебного специализированного движка. Но если вы посмотрите на исходный код большого набора звуковых эффектов от разработчика DSP, вот некоторые «строительные блоки», которые будут выделены в своих собственных классах и совместно используются многими различными эффектами. Я не имею в виду, что это служит хорошей основой для классификации эффектов; но с точки зрения реализации эти блоки необходимы:
С этими блоками вы можете построить:
В то время как некоторые из этих эффектов являются просто вопросом исправления различных блоков (фленджер действительно является LFO, модулирующим линию задержки), некоторые другие эффекты требуют более сложного клея между частями, который достаточно специфичен, чтобы не быть встроенным в строительный блок своего собственного.
В целом, это интересный набор эффектов, которые будут охватывать множество областей для музыкального производства, но он не является исчерпывающим, и действительно есть некоторые эффекты, которые не соответствуют этой структуре ... Некоторые примеры: * Грязное уменьшение частоты дискретизации (в bitcrusher): правда, это умножение на гребень дирака, а затем свертка на прямоугольное окно ... но проще записать его как нечто, дублирующее значение одного сэмпла по N следующих сэмплов, вместо исправления амплитудной модуляции и свертка! * Эффекты изменения высоты тона (смещение высоты тона, автонастройка) не вписываются в эту структуру. Им необходимо более сложное представление аудиосигнала, который должен быть выполнен (фазовый вокодер для методов частотной области; обнаружение основного тона и метки основного тона для методов временной области).
Я предлагаю вам поиграть с программными инструментами «модульного стиля», такими как Pd, Reaktor, Plogue, SyntheEdit ... - и попробовать реализовать эффекты из базовых строительных блоков, которые они вам предоставляют.
источник