0 - Введение

Проект синтезатора на базе ПЛИС

У меня появилась отличная идея - применить замечательные микросхемы ПЛИС, которые могут очень многое и очень быстро, в качестве основы для генерации звука в синтезаторе.

Технические требования и параметры, которые планируется достичь:

Генераторная часть:

- 16 отдельных голосов

- Каждый голос - два генератора с расстройкой по частоте, фазе, и с управлением панорамой

- Переключаемые и настраиваемые режимы: один голос, унисон, полифония

- Переключаемая форма волны каждого генератора: синус, треугольник, пила, меандр, PWM, supersaw.

- Внешние аналоговые VCA управляемые ШИМ с ПЛИС

- Внешние аналоговые VCF управляемые частотой с ПЛИС

- LFO внутри ПЛИС

- ADSR внутри ПЛИС

- дополнительные модули внутри ПЛИС для полностью цифровой эмуляции VCA и VCF с последующим выводом из ПЛИС уже результата (lo fi quality)

Управляющая часть в виде элементов управления и индикации:

- может полностью отсутствовать - синтезатор в виде закрытого модуля, полностью управляемого по MIDI, имеющего только выходы голосов

- аналоговые элементы управления (резисторы) с возможностью отправки положений элементов только в одну сторону Блок Управления -> Генераторный блок

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

Технические особенности реализации и обоснование принятых решений

Применение ПЛИС в качестве DSP (цифрового сигнального процессора) и основы проекта, позволяет параллельно генерировать сигналы на очень высоких частотах (десятки мегагерц), что сильно снижает шаг дискретизации получаемых сигналов и приближает их по форме к аналоговым. При программной эмуляции блоков аналоговых синтезаторов (на компьютере, на микроконтроллерах), все вычисления происходят последовательно и для этого требуются много вычислительных ресурсов. При программном вычислении, сигнал подвергается дискретизации как по частоте (во времени), так и по значению (амплитуде), что отрицательно сказывается на естественности звучания. Следующим серьезным ограничением программного синтеза является то, что рассчитанный итоговый цифровой сигнал преобразуется в аналоговый с помощью микросхемы ЦАП, как правило, всего с двумя каналами. То есть многоканальность такого синтезатора не выходит за пределы цифровой системы и ни один из сигналов не может быть выведен на обработку по отдельности. При использовании ПЛИС, генерацией звука фактически занимаются отдельные аппаратные блоки, собранные из простых логических элементов, как это было сделано в электроорганах на дискретных микросхемах. Разница только в том, что в ПЛИС эти "микросхемы" находятся все в одном корпусе. Еще один плюс инструмента на базе ПЛИС это выведенные наружу сигналы каждого голоса по отдельности, что позволяет их обрабатывать любым внешним звуковым эффектом.

Применение DCO (или NCO). Вместо аналоговых VCO применяются цифровые, основанные на DDS генераторы внутри ПЛИС. Это дает высокую точность установки частоты, стабильность строя. На данный момент частота дискретизации проекта 50 МГц (на порядки превышает дискретизацию самых современных звуковых плат). Цифровой сигнал, описывающий форму волны каждого генератора, выдается на отдельный внешний ТТЛ вывод микросхемы ПЛИС. Цифро аналоговое преобразование происходит за счет применения либо 8 битной ШИМ, либо 8-16 битной дельта-сигма модуляции. Модуляция так же происходит внутри ПЛИС, таким образом, каждый голос имеет свой собственный ЦАП. Может показаться, что 8 бит недостаточно для генерации качественного звука, но в данном случае используется весь динамический диапазон 8 бит, только для одного сигнала и без цифрового изменения громкости. Модуляция по амплитуде происходит уже внешним аналоговым VCA, что избавляет от шумов дискретизации на звуках малой громкости.

<тут нужно вставить картинку сравнения того, что остается от 8 битной пилы, когда ее уменьшили по амплитуде в 30 раз в цифровом виде и сравнение с аналоговым VCA, но я думаю, можно и так представить>

Внешние аналоговые VCA планируется реализовать на базе аналоговых ключей, переключаемых ШИМ, подаваемым с ПЛИС. После этого, нужно ставить ФНЧ, потому что ШИМ 8 бит от 50 МГц будет около 195 КГц.

Кроме модуляции по амплитуде, с помощью VCA, сигнал проходит обработку во внешнем аналоговом VCF. Фильтр запланировано реализовать на переключаемых аналоговыми ключами конденсаторах. Частота среза регулируется частотой переключения ключей и находится от нее в прямой зависимости. Еще нужно как-то управлять резонансом.

Аналоговый VCA и VCF являются основными элементами, определяющими качество сигналов синтезатора.

Генерация огибающих LFO и ADSR происходит так же внутри ПЛИС. Аналоговый внешний ADSR не даст больших преимуществ, в то же время, ADSR внутри ПЛИС можно применять для контроля окончания проигрывания ноты определенным голосом, чтобы он освободился для повторного использования в режиме "унисон". Плюс к этому, появляется возможность применять более сложные генераторы огибающих.

В экспериментальном режиме в рамках проекта будут разработаны цифровые модули VCA и VCF, которые будут находиться внутри ПЛИС, и наружу будет выдаваться уже итоговый модулированный по амплитуде и обработанный фильтром сигнал. В таком режиме качество будет значительно ниже за счет низкой разрешающей способности 8 битного ШИМ ЦАП. Этот факт можно считать фичей и назвать LoFi mode. Либо применять 16 битный дельта-сигма вместо ШИМ.

В случае, если останутся свободные ресурсы ПЛИС и контакты корпуса, реализовать в звукогенераторном блоке в порядке приоритета: генерацию ударных инструментов, аддитивный синтез на примере хотя бы электрооргана.