banner
Дом / Блог / Создание DCO
Блог

Создание DCO

Jun 09, 2023Jun 09, 2023

Я люблю музыку, а также люблю электронику. В течение многих лет я создавал музыкальные электронные устройства, в основном для игры на электрогитаре. После создания и модификации нескольких ламповых усилителей и педалей эффектов я решил заняться синтезом звука. Я часто мечтал создать свой собственный синтезатор Eurorack, по одному модулю за раз, но свой первый синтезаторный проект я решил начать с отдельной клавиатуры. Мой готовый продукт — модифицированная игрушечная клавиатура — показан на рисунке 1.

В этом проекте я удалил существующую электронику и заменил ее аудиосинтезатором на основе генератора с цифровым управлением (DCO) с Arduino Nano в его основе. Хотя я использовал Arduino Nano, можно также использовать Arduino Uno. Давайте углубимся в то, как мы можем сделать синтезатор на основе DCO. Однако, прежде чем заходить слишком далеко, давайте сначала поговорим об использовании генератора в синтезаторе.

Ключевым элементом любого синтезатора является схема генератора. Аналоговые синтезаторы обычно имеют два или более независимо управляемых генератора. Однако любой, кто заглянул в кроличью нору Интернета по схемам аналоговых генераторов, управляемых напряжением (ГУН), знает, что они обычно сложны и загромождены. Некоторый беспорядок возникает из-за функций, от которых можно изящно избавиться, например, из-за нескольких входов управляющего напряжения. Однако даже когда простейшая схема генератора изолирована внутри схемы, то, что остается, по-прежнему усложняется трюками с тепловой обратной связью, позволяющими поддерживать настройку генератора во время нагрева его компонентов.

Сложность и беспорядок схем ГУН всегда были для меня камнем преткновения, когда я задумывался о создании собственного синтезатора, и хотя я люблю аналоговый синтез, я не смог преодолеть его беспорядочную электронную изнанку. Все изменилось, когда я оценил линейку синтезаторов Roland Juno.

Juno-6 от Roland появился на рынке в 1982 году как более доступная альтернатива другим полифоническим синтезаторам, доступным в то время. Это также был первый синтезатор, в котором использовались DCO вместо традиционных VCO. Это значительно улучшило стабильность настройки прибора по сравнению с альтернативами, поскольку DCO используют цифровую схему для управления частотой аналогового сигнала генератора. Имея это в виду, конечно, есть определенные компромиссы в использовании DCO вместо VCO. Многим нравится «теплый» звук двух слегка расстроенных VCO, играющих в унисон, который трудно имитировать с помощью синтезатора на основе DCO. Однако к необработанному выходному сигналу DCO можно применить эффекты модуляции для получения насыщенного и красивого звука.

В целом, повсеместное распространение и низкая стоимость плат разработки Arduino Uno и Nano в сочетании с тем фактом, что эти цифровые платформы предварительно оснащены кварцевыми генераторами с частотой 16 МГц, делают создание дешевого DCO невероятно простым.

Загляните в даташит любого современного микроконтроллера, и среди его периферии вы обнаружите модуль таймера. Модуль таймера позволяет разработчику встроенных систем настроить счетчик работы в фоновом режиме встроенной системы, который не зависит от ЦП (центрального процессора). Более того, модули таймера могут прерывать работу ЦП при различных условиях, например, когда они переполняют свой регистр счетчика или когда они достигают определенного счетчика. Условия прерывания могут быть настроены разработчиком встроенных систем в соответствии с потребностями конкретного приложения.

В этом проекте модули таймера ATMega328P — мозг Arduino Nano и Uno — действуют как DCO синтезатора. Настроив источник синхронизации и максимальное значение счетчика для модуля таймера, прерывания модуля таймера могут запускаться на звуковых частотах. Выход DCO достигается путем манипулирования выводами GPIO микроконтроллера во время процедур обслуживания прерываний (ISR) для этих периодических прерываний.

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