AVR Synth 16

avrsynth_pic    В прошлый раз я писал о модуле выпускаемом компанией Elby Designs. Продолжим тему австралийской техники интересным продуктом, выпускаемым под той же торговой маркой: AVR Synth. Это виртуальный аналоговый субстрактивный синтезатор, работающий на микроконтроллере семейства AVR. Прошивка синтезатора написана на языке ассемблера, её исходный код открыт, как и принципиальная схема. Я расскажу про оригинальную, 16-битную модель в исполнении Elby Designs и про несколько проектов, развивших идею.

История создания

Проект AVRSYN был начат польским экспериментатором Ярославом Жембицким (Jaroslaw Ziembicki) в 2002 году, в качестве эксперимента по созданию полноценного синтезатора на одном чипе. Надо сказать, что славянские народы вообще довольно сильны в низкоуровневом программировании, но характерны умением выжать 250% функционала из устаревших технологий. Первоначально синтезатор был выполнен на 16-битном микроконтроллере Atmel AT90S8535. В 2005—2006 годах проект был подхвачен Полом Мэддоксом и Лори Биддалфом, в результате чего была разработана удобная печатная плата, код был портирован под более современный микроконтроллер ATMEGA16-8, а комментарии исходного кода были переведены на английский. В то же время синтезатор начал продаваться под маркой Elby Designs. В таком виде AVR Synth и поставляется по сей день.

Существуют также интересные ветви этого проекта. Например, Даниель Крушина (Daniel Kruszina), разработал 32-битную модификацию с усовершенствованным функционалом, переносом части управления на MIDI-контроллеры и даже поддержкой волновых форм . Эта версия также поставляется Elby Designs. В 2010 году Джеймс Грэйм с помощью ещё пары друзей и при поддержке оригинальных создателей сделал на основе AVRSYN совершенно новый продукт, названный MeeBlip. От оригинала этот инструмент отличается кардинально: резонансный фильтр, переменная ширина импульса, огибающая ADSR, другой состав переключателей и крутилок. В нём, в отличие от реализации Elby Designs, все органы управления размещены вместе с логикой на одной печатной плате. Позже была сделана гибридная модификация с аналоговым фильтром. Однако вернёмся к оригинальному инструменту.

Принцип работы

Синтезатор полностью цифровой. Внутренняя арифметика 24-битная. Частота дискретизации – 31.25 кГц. Ручки меняют напряжение подаваемое на вход встроенных АЦП микроконтроллера. Переключатели сканируются простенькой матрицей опроса. Основное время обрабатываются MIDI-сообщения, сканируются переключатели, измеряется напряжение на ручках. В соответствии с их состоянием изменяются внутренние параметры синтезатора и производится вычисление следующего отсчёта PCM-потока, направляемого в экономичный 16-битный параллельный ЦАП на резисторах. (так называемую «R2R-лестницу»). 31250 раз в секунду, встроенный таймер вызывает прерывания, во время которых принимается один бит MIDI-потока, если таковой присутствует на UART-порту, а содержимое портов ЦАП обновляется только что вычисленным отсчётом. Состав моделируемых компонентов такой:

  • Два осциллятора. Формы волны: меандр и пила.  Второй осциллятор может быть расстроен в пределах +/- 8 полутонов или отключен. Есть переключатели октавы: общий, и два индивидуальных на каждый осциллятор. Есть особый режим кросс-модуляции осцилляторов, при котором на фильтр подаётся не микс двух осцилляторов, а результат выполнения логической функции исключающего ИЛИ над моментальными цифровыми значениями отсчётов этих волн.
  • Фильтр низких частот. Резонанс отсутствует, есть отключаемый трекинг клавиатуры. Уравнение этого фильтра до удивления простое и использует только обычную арифметику. (Она описана в комментариях исходного кода)
  • Генератор LFO. Есть два режима работы: циклический и случайный. В циклическом режиме доступны треугольная и прямоугольная формы волны, а в случайном доступен Sample & Hold с плавными переходами и классический Sample & Hold. Интересно, что название соответствующего переключателя на панели не соответствует смыслу функции, так как называется AR/ASR. Регулируется скорость и глубина модуляции выбранного параметра: либо частоты среза фильтра, либо частоты осцилляторов. Можно управлять глубиной колесом модуляции, но только если нажата клавиша. (Я поясню позже, почему это важно упомянуть) Возможен перезапуск волны LFO по нажатию клавиши.
  • Генератор огибающей AR/ASR. Переключателем меняется режим работы. В режиме AR (правильнее было бы называть его AD) генератор при нажатии клавиши формирует однократную волну фиксированной продолжительности, состоящую из фаз атаки и спада. В режиме ASR появляется фаза удержания, а на фазу затухания генератор переходит только после отпускания клавиши. Кроме того, генератор может работать циклически, как особый вид LFO. Может управлять громкостью и частотой среза фильтра.

Текущий MIDI-канал устанавливается в двоичном формате с помощью четырёх переключателей – как на компьютере Altair 8800. 16 канал недоступен, поскольку значение 0 соответствует Omni, а остальные соответствуют привычным номерам каналов, начиная с первого.

DIY-кит

avrsynth_caseНабор состоит из одной печатной платы, пластмассового корпуса, двух панелей, комплекта всех необходимых компонентов, 40-жильного шлейфа, нескольких проводков и набора крепежа. В плане комплектации Elby Designs постарались: Компоненты каждого номинала расфасованы по отдельным полиэтиленовым пакетикам, всё промаркировано, а набор поставляется внутри корпуса. Сам корпус добротен, имеет металлические элементы, позволяющие стягивать его части обычными винтами M3, которые включены в комплект. Компоненты новые, все полупроводниковые приборы находятся в антистатических пакетах. Потенциометры Alpha имеют угол хода, очень точно совпадающий с рисунком на верхней панели. Сами панели (а их две – верхняя и задняя) выполнены на стеклотекстолите. Шлейф, соединяющий органы управления с платой, имеет длину около полуметра, чего с запасом хватает.

avrsynth_PCBЕсть и минусы. В комплект входит несколько проводков, предназначенных для подсоединения платы к разъёмам задней панели, и их длина (около 10 см) явно недостаточна для комфортного подсоединения. Пришлось использовать свои провода. Печатная плата сделана качественно, достаточно информативно, но в ней компоненты помечены не номиналами, а названиями, поэтому постоянно нужно сверяться с BOM. Впрочем, в схеме используется очень небольшое количество разных номиналов. Кстати, в разводке полученной мною версии платы присутствовала ошибка в выводах микроконтроллера, поэтому DIP-панель уже была установлена и запаяна, а пара выводов была кустарно поменяна местами с помощью согнутой ножки и проводка.

Как и в случае с модулем Chaotica, огромным минусом является отсутствие внятной документации по сборке. В данном случае проблема усугубилась тем, что все разъёмы, переключатели и потенциометры крепятся на панель и припаиваются к шлейфу навесным монтажом, причём задействовано 38 из 40 имеющихся жил. Из документации присутствует несколько PDF-файлов с принципиальными схемами, которые дают необходимый минимум информации, но несколько бессистемно. Элементарной монтажной схемы верхней панели я на сайте не нашёл. Если тот же Рэй Уилсон всегда публикует на сайте понятные монтажные схемы для панелей и сборка его синтезаторов насколько возможно упрощена, то в случае AVR Synth мне пришлось потратить не менее часа на реконструкцию такого рисунка по имеющимся принципиальным схемам. (Его можно скачать здесь) В них при этом оказался неупомянутым выключатель питания. Сама идея подобного дизайна в такого рода продукте (готовый набор) несколько сомнительна, поскольку дополнительная печатная плата для органов управления не так сильно удорожает стоимость конечного продукта, а время сборки сокращает порядочно.

Второй сложностью при сборке этого инструмента была зачистка и отделение жил шлейфа. Это нужно делать осторожно и аккуратно, т.к. изоляция тонкая, сами проводники тоже тонкие, есть риск испортить себе всё дело неаккуратным движением ножа. Кроме того, пришлось придумать систему маркировки и строгий порядок пайки, поскольку во время монтажа борода из проводов то и дело норовит спутаться.

Впечатления от работы

avrsynth_childВ этом синтезаторе почти сразу всё понятно. Если всё спаяно правильно, то инструмент в любом случае будет помигивать светодиодом при поступлении любого MIDI-сообщения, и если выбран правильный канал, либо OMNI-режим, синтезатор будет звучать при любой настройке. Звучание достаточно резкое, что объясняется отсутствием цифрового или аналогового анти-алиасинга. Но оно не лишено шарма. Особенно оригинально звучит искажённый XOR-функцией звук. Результат действия отдалённо напоминает кольцевую модуляцию. Ручки хорошо реагируют на движения, работают по всему диапазону. К сожалению, на этом достоинства заканчиваются и начинаются принципиальные недостатки.

На инструменте нет элементарной ручки громкости, хотя бы аналоговой. Можно найти для неё место на задней панели, то тогда почему нельзя было вывести туда переключатели MIDI-канала, а её предусмотреть на передней панели? Не понятно. Колесо модуляции работает только тогда, когда нажата нота. Если, например, используется фаза затухания генератора огибающей, то если при исполнении ноты начать её модулировать колесом и отпустить клавишу, «хвост» ноты будет уже немодулированным. LFO или ASR никаким образом нельзя синхронизировать c MIDI Clock, что совсем уж несправедливо для цифрового инструмента. Фильтр инструмента быстро надоедает из-за своего чрезмерно мягкого звучания с отсутствием хоть какого-то резонанса. К тому же, фильтр только LP. Наконец, в режиме ожидания слышно небольшое попискивание, природа которого не до конца ясна.

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

Итог

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

Если говорить об AVR Synth 16 как о проекте, то он интересен и заслуживает уважения как эксперимент, но пока он не доведён до того уровня, когда его можно продавать, в отличие даже от 32-битной модификации, в которой уже многое логично перенесено на MIDI. Сейчас я жалею, что не выбрал 32-битную версию, которая дороже всего на 6$. Что касается реализации Elby Designs, то она в целом симпатичная и недорогая, но реализацию в виде DIY-кита портит скудная документация.

Возможно, на основе этой разработки можно было бы сделать цифровой осциллятор или полифонический синтезатор, тогда это было бы более полезно и экономически целесообразно. Сейчас проще купить что-то типа Arturia Microbrute

Оценка ModularSynth: 6/10

Реальная оценка не должна была превышать 4/10, но необходимо помнить, что это продукт 9-летней давности. В 2005 году ещё не было Monotron, Microbrute или других дешёвых аналоговых синтезаторов. так что AVR Synth 16 просто-напросто устарел.

Добавить комментарий