Оптический синтезатор Look Modular

Привет GT!
4 июня в Москве пройдёт очередной фестиваль музыкальных технологий Synthposium. На нём соберутся любители синтезаторов, чтобы крутить ручки, собирать патчи, нажимать на клавиши и восхищаться звуками.
Нас тоже пригласили сделать для фестиваля что-нибудь прикольное.
И мы собрали аналоговый оптический синтезатор.

835f1310b7984b87872171f6a3a7407f.jpg


(Осторожно, трафик!)

Сейчас вы увидите лучший в мире аналоговый синтезатор с мото-о-о-ором… И MIDI.
Ладно, ладно. Лучшим аналоговым с мотором был Hammond Organ, но MIDI у него точно не было.

VCO


d5820a08f9f34648b6e1f9a3df03c1d1.png
c3f813412851471c9fda985b2f633d24.jpg
Знаете, как воспроизводят звук с киноплёнки в кинотеатре? В самом простом варианте звук записан на ту же киноплёнку в виде двух дорожек — левый и правый канал. Вот на этой картинке — звук слева, в виде двух белых дорожек. Там рядышком ещё куча цифровой информации, но сейчас не об этом.
Свет проходит через плёнку и попадает на фототранзистор.
Если очень грубо, фототранзистор превращает попавшие в него фотоны в электрический ток и усиливает его.
Чем больше фотонов попало на транзистор, тем меньше его сопротивление, и, соответственно, меньше напряжение на Vout. Если освещённость фототранзистора меняется в диапазоне слышимых частот, то при подаче сигнала с Vout на усилитель с динамиком, мы услышим звук.

Я решил сделать синтезатор на том же эффекте.
В качестве звукоснимателя использовал вот такой датчик линии:

image

Этот датчик подсвечивает пространство под собой светодиодом и принимает отражённый свет фототранзистором. На выходе получим напряжение пропорциональное яркости под датчиком. Если что, чувствительность можно подрегулировать встроенным потенциометром.

Теперь возьмём какую-нибудь картинку и моторчик:

f9daa8daa16e41c78b23b4192afa24cc.png

Крутанём мотор — яркость под датчиком начнёт циклически меняться. Вот такая форма волны у меня получилась из этой картинки:

c6aa8ccf724e4ae08e5b6a81a700ce20.jpg

Если крутить картинку с частотой не в пару герц, а, скажем, где-нибудь в 440 Гц, получим ноту ля первой октавы. С тембром, напоминающим тембр какой-то периодической функции. А если взять картинку посложнее? Получим тембр… посложнее.

Pitch


Наш аналоговый синтезатор должен уметь вращать картинку с частотой ноты, которая пришла к нему по MIDI. По высоте звука хотелось захватить хотя бы пятую октаву. В соответствии с таблицей нот и частот это где-то под 1 кГц.
Значит нам нужен очень шустрый мотор. Я взял подходящий от радиоуправляемого вертолёта.

ae66b08bd17d47408ca9fd42aa8f2fb0.png


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

b59f863b590e4a07a1f8e18d4a6f22d7.jpg

У CD-привода есть своя микросхема-драйвер, которая управляет двигателем. Достаточно подпаяться к нужным пинам, и мы получим возможность управлять скоростью вращения двигателя и узнаем частоту, с которой он вращается. В моём случае это была микросхема M63044FP. Даташита на неё я так и не нашёл. Зато нашёл даташит на очень похожую M63022FP. Она отличалась распиновкой, поэтому пришлось искать нужные ножки методом тыка.
cabc8c48872046d08c9b982d6dee3f7a.png

Скорость вращения регулируется подачей аналогового напряжения на ножку SPIN. Я взял резистор на 220 Ом, подпаял к нему проводок. Включил питание. Тыкнул одним концом резистора в шину 5 В CD-привода, а проводком протыкал все ножки микросхемы. При контакте с нужной ножкой движок запустился. Я удивлён, но в процессе ничего не сгорело.
Для контроля частоты вращения осталось найти пин OSC, который выдаёт меандр при переключении обмоток двигателя. Тут уж пришлось расчехлить осциллограф, запустить двигатель и искать.

Дальше просто. Следим за дорожкой от ножки и ищем — куда бы припаяться?
Заодно припаяем LM7805 к пину 5V питания, чтобы питать всю конструкцию одним источником напряжения в 12 В.
Припаяны проводки на SPIN, OSC. И земля, чтобы все девайсы были на одной волне:

5658b8fadddf47af8e88de7f822dfebc.jpg


Картинка кликабельна

Регулятор, кстати, при работе очень горячий. Обжечься вполне реально. Но во время DIY-запоя меня такие вещи не особо напрягают. Работает.
Движок от CD-привода позволил разгонять картинку до 250 Гц. Стало быть, третья октава — максимум. Ничего не поделаешь, в таком случае у нас басовый монофонический аналоговый синтезатор. Совсем как Moog Minitour.

ADSR envelope


Звук синтезатора определяется, ко всему прочему, низкочастотной модуляцией по громкости и/или частоте среза фильтра (ADSR envelope). Мне тоже хотелось такую штуку в своём синтезаторе. Как это сделать?
Следите за руками:
Так как постоянная составляющая сигнала с нашего звукоснимателя срезается входным конденсатором усилителя, громкость звука в нашем случае — это разница между самым тёмным и самым светлым участками картинки. Чем дальше датчик от картинки — тем меньше эта разница, поскольку всё меньше фотончиков долетает до фототранзистора от самых светлых участков. Чем ближе датчик — тем больше эта разница, а значит больше и амплитуда сигнала.
Если датчик поднести очень близко к картинке, в светлых местах транзистор откроется на полную катушку. Гладкие участки звуковой волны от этого срежутся. Результат — эдакий distortion-эффект с резким увеличением количества высоких гармоник. Это сильно украсит звук. Поэтому я посадил датчик на сервопривод.

1bf37860935842c298e9728002ec313f.jpg

При MIDI-событии NoteOn он будет быстро приближаться к картинке тем ближе, чем больше скорость нажатия клавиши MIDI-клавиатуры (velocity). С течением времени можно медленно поднимать датчик. Вот такой вот механический ADSR.

Аналоговый тракт


Аналоговый тракт не должен пересекаться с силовой и цифровой частью, чтобы не ловить оттуда помехи. Поэтому я просто впаял ещё один LM7805 с электролитическим и керамическим конденсаторами в Troyka Shield. На вход подал 12 В с Vin, а выход отправил на датчик линии и модуль-усилитель звука. Выход датчика линии припаял напрямую ко входу усилителя. Всё, теперь у нас отдельный аналоговый контур питания.

81c0b079b6c24f718c818ee0f6dfa5b3.jpg


d016f227e74d4e85a6802366d7f4f4df.jpg

MIDI


MIDI-вход пришлось колхозить на оптопаре 6N137. Можно было обойтись и одним транзистором с парой резисторов, но так не по стандарту.

67aa4618af4e40eca2733319502d12a2.png

Сборка


Электроника
Сборка конструктива со #Структором — это просто. Из электроники у нас будет:

  • IskraJS — попробую наконец-то микроконтроллерный JavaScript. Кроме того, у неё есть 12-битный ЦАП. Он как раз пригодится для управления ножкой SPIN драйвера мотора;
  • Troyka Shield — мимимизируем пайку;
  • Микросервопривод FS90 — механический ADSR;
  • Датчик линии — наш звукосниматель;
  • Troyka-аудиоусилитель — секретные разработки нашего КБ. Пока дефицит, но уже в производстве;
  • Troyka-MIDI IN — TODO нашего КБ. Пришлось паять на макетке.


Все эти детали имеют специальную оснастку из #Структора, поэтому сборка это:

  1. Одеть электронику в #Структор;
  2. Ножом и линейкой вырезать из мегапанели площадку для творчества под размер CD-привода;
  3. Закрыть глаза и натыкать электронику, куда влезет. У меня получилось вот так (кликабельно):
    bf6859a147f04e2882cd3271e694abaf.jpg


Механика
Для того, чтобы прикрепить картинку на вал моторчика нужен какой-то крепёж. Я пробовал приклеивать картинку сразу на шпиндель двусторонним скотчем, но картинки быстро отлетали. Да и менять их неудобно.
Хорошо, что в самом CD-приводе есть такое крепление. Этот кружок живёт в верхней крышке CD-привода, и фиксирует компакт-диски на шпинделе. В нём есть магнитик, поэтому его легко снимать со шпинделя и размещать обратно. Ну, а картинку можно клеить на двусторонний скотч уже к нему.

3e9e331624154d5c8ef3204868223e1e.jpg


Здесь же видно и супер-лайфхак для снижения времени портаменто при изменении частоты вниз. Моторчик от CD-привода не умеет тормозить. Поэтому портаменто вниз становится настолько неприлично длинным, что это уже прямо глиссандо какое-то. Поэтому был добавлен тормоз из сложенной бумажки.Ставим электронику на CD-привод
Последний штрих. Электроника просто ставится в CD-привод. Если что, в любой момент можно вытащить.

77ece25398fd40e198ffaf6d81e4edff.jpg


bede3fb01e1447e29975c1b9bd9d7413.jpg

Электрические соединения

  • MIDI-in — P0;
  • SPIN — A4;
  • OSC — P2;
  • Микросервопривод — P13.
  • Питание CD-привода — Vin

Код


Код доступен на github.com

Демонстрация


Мы, как всегда, записали про этот проект видео. Послушать, как этот синтезатор звучит можно с 10:36.

Как можно улучшить?


С огибающими из сервопривода получилось забавно, но всё-таки лучше было бы для этой цели обойтись без механики. Атака слишком длинная. Острую атаку можно было бы получить, если использовать вместо светодиода подсветки лампу накаливания и ШИМ.

Эпилог


В общем, если интересно поиграть на Look Modular, приходите 4 июня на Synthposium. Я в 16:30 буду его показывать. Принесу много бумаги, ножницы, двусторонний скотч, журналы и фломастеры. Поэкспериментируем вместе.

© Geektimes