Мидирование синтезатора на примере Korg Monotron



    Мидирование — модификация, позволяющая управлять синтезатором с помощью стандартных midi-комманд, передаваемых с внешнего источника. Это дает возможность подключить midi-клавиатуру или какой-то другой midi-контроллер в качестве устройства ввода.

    Как-то раз ко мне в руки попал самый настоящий аналоговый синтезатор Korg monotron. Не смотря на свои игрушечные очертания, устройство содержало на борту весь минимум настроек, позволяющий погрузиться в мир аналогового синтеза. Так вот проводя вечера за вращением ручек и экспериментами с LFO-генератором и cuttoff фильтром, я стал ловить себя на мысли, что чего-то тут явно не хватает. Действительно, выполняющая роль клавиатуры резистивная пленка — весьма оригинальное и компактное решение. Но любые попытки исполнить на инструменте какую-то осмысленную партию обречены на провал. Выходит, и применять такой синт можно только как пищалку. С другой стороны, ситуацию могли бы спасти наличие MIDI порта и подключение внешней клавиатуры, но он, увы, отсутствовал.

    Как оказалось, мидировать синтезатор не так уж и сложно.

    Беглый серф по интернету принес сразу несколько приятных сюрпризов: во-перывх, документация на синтезатор находится в открытом доступе, и любой без особого труда может найти принципиальную схему. Во-вторых, разработчики заботливо вывели точки для CV/GATE управления.



    Для тех, кто не знает: CV/Gate (Control Voltage/Gate) — это один из распространенных методов управления аналоговыми синтезаторами. Управляющее напряжение (CV) задавало высоту тона\глубину эффекта, ну а триггер (Gate) управлял выводом звука в зависимости от того, нажата ли нота. Нужен только небольшой переходник, читающий midi-команду и конвертирующий ее в управляющее напряжение. Что я, собственно, реализовал.

    Железо

    Все достаточно банально: я решил сильно не заморачиваться и использовать для управления любимый и ненавистный многими arduino. Под руку подвернулась валявшаяся без дела платка arduino nano. Был, конечно, соблазн использовать миниатюрный pro mini или вовсе поставить 328 мегу с минимальным обвесом, но, предвидя геморрой с отладкой и допиливанием прошивки, решил не жадничать и остановился на nano.

    CV OUTPUT

    По SPI я подключил валявшийся без дела 12-битый ЦАП mcp4921, который в дальнейшем должен управлять напряжением, задающим высоту тона осциллятора (PITCH).



    MIDI INPUT

    Увы, никаких откровений здесь нет. Вполне типичная схема коммутации midi-сигнала.



    Осталось повесить GATE на любой свободный пин.


    В результате получился такой вот переходник.

    Теперь пришло время прокачать сам синтезатор. По сути, требуется просто вывести 4 пина:
    PITCH, GATE, GND и +5 для питания. Как не странно, на этом этапе я наткнулся на самое большое количество граблей. Изначально идея была хорошая: вывести разъем под 4-хконтактный миниджек. На деле же я узнал много нового для себя. Сначала стандартный джек оказался коротковат и наотрез отказался целиком заходить в разъем. В итоге разъем пришлось подрезать. Поиск места для разъема тоже оказался не такой просто задачей, но пути назад уже не было. Как я уже говорил, сами точки пайки заботливо выведены инженерами korg на обратную сторону платы.



    Где-то на этапе отладки кода сочувствующие люди сделали мне 3D модель корпуса, который позже был напечатан в Лаборатории трехмерной печати. По-моему, вышло очень даже неплохо.



    Прошивка

    Весь процесс написания ардуино-скетча описывать не хотелось бы, да и по устройству midi протокола и без того статей немало. Остановлюсь лишь на моменте настройки выходных значений ЦАПа. Чтобы посылаемая MIDI нота соответствовала выходному значение на ЦАПе. Чтобы справиться с этой задачей, я устанавливал различные значения на ЦАПе и анализировал получаемую с синтезатора в Ableton Live спектрограмму (там есть прекрасный инструмент Spectrum, отображающий, кроме всего прочего, соответствующую частоте ноту). Возможно, есть более удобное решение, но это было первое, что пришло в голову. Также стоит отметить, что зависимость управляющего напряжения от выдаваемой частоты линейна, поэтому реализация алгоритма не составляет особого труда.

    Напоследок приложу еще одну фотографию синтезатора и MIDI2DAC конвертора.



    Видео устройств в работе:



    Ссылка на github со скетчем для arduino
    Метки:
    • +21
    • 11,7k
    • 2
    Поделиться публикацией
    Комментарии 2
    • 0
      Можно эту схему применять к любому старому синту, где есть CV/Gate?

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.