Оглавление:

Другой MIDI в CV Box: 7 шагов (с изображениями)
Другой MIDI в CV Box: 7 шагов (с изображениями)

Видео: Другой MIDI в CV Box: 7 шагов (с изображениями)

Видео: Другой MIDI в CV Box: 7 шагов (с изображениями)
Видео: Проверка китайца на безопасность #blondinkadrive 2024, Июль
Anonim
Другой MIDI в CV Box
Другой MIDI в CV Box

Другой блок MIDI to CV - это проект, который я разработал, когда Korg MS10 постучал в мою дверь и состоялся в моей студии. Поскольку моя установка сильно связана с MIDI для автоматизации и синхронизации всех инструментов, когда я купил MS10, первая проблема, с которой мне пришлось столкнуться, заключалась в том, как реализовать такое управление.

Korg MS20 / 10 - не самые простые синтезаторы для реализации MIDI: во-первых, они полагаются на управление Hz / V (линейная корреляция между управляющим напряжением и частотой нот) вместо oct / V (1V на октаву); во-вторых, для запуска ноты вы должны послать отрицательный сигнал стробирования и замкнуть вход на землю (S-Trig), а не сигнал +5 В (V-trig).

В настоящее время существуют различные коммерческие решения для управления такими инструментами (например, Arturia Beatstep Pro, Korg SQ-1, Kenton Solo), но я дешевый ублюдок и даже 100 евро - это слишком много для "не звучащего" устройства:).

Итак, вот и мы: позвольте мне показать вам, как создать малобюджетный блок MIDI to CV для управления / автоматизации высоты тона, гейт, скорости и частоты среза синтезатора до MIDI с помощью внешнего MIDI-контроллера (клавиатуры, DAW, секвенсора или чего-то еще).

"А как насчет нового MS20 mini?"

Как почти все знают, новый MS20 на самом деле готов к работе с MIDI: вход с 5-полюсным разъемом MIDI и вход / выход с разъемом USB.

«Итак, если у меня есть MS20 mini, эта штука бесполезна!»

Ну нет. MS20 mini распознает только сообщения включения / выключения нот, а клавиатура не чувствительна к скорости нажатия. Невозможно преодолеть это с помощью винтажной или мини-клавиатуры MS10 / 20, но с midi box и чувствительной к скорости клавиатурой вы - золото. Кроме того, с помощью блока MIDI вы можете автоматизировать отсечку фильтра (или любой другой параметр, управляемый напряжением) или модулировать его входящей MIDI-нотой по скорости. Опять же, единственный MIDI-канал, на который отвечает MS20 mini, - это канал 1. С помощью этого блока вы также можете преодолеть этот предел.

"Что, если у меня есть синтезатор Oct / V?"

Без проблем! Код, который я написал, совместим с синтезаторами Oct / V (не тестировался, но я уверен, что он будет работать из коробки;)).

Шаг 1: !! Предупреждение - отказ от ответственности

Ваше оборудование очень ценно и не должно использоваться для проведения тестов.

Игра с электричеством может серьезно повредить ваше оборудование или нанести вред себе.

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

Вы были предупреждены!

Шаг 2: проектирование оборудования

Arduino пригодится при работе с подобными проектами. Существование большого сообщества и очень хороших библиотек, которые охватывают почти все общие задачи, делают его правильным выбором. Здесь плата будет запрограммирована так, что она будет считывать входящие MIDI-данные, а затем отправлять соответствующее напряжение на привод:

- Шаг, путем преобразования выходного сигнала ШИМ в аналоговое напряжение для управления ГУН через цифро-аналоговый преобразователь (ЦАП)

- Скорость, путем фильтрации выходного сигнала ШИМ для управления VCA с помощью простого RC-фильтра

- Частота среза фильтра, путем фильтрации выходного сигнала ШИМ для управления VCF с помощью простого RC-фильтра

- Затвор, напрямую от цифрового выхода в случае V-триггера (подключите 1 кОм последовательно с выходом, чтобы уменьшить потребление тока) или с помощью простого транзисторного переключателя pnp из цифрового выхода (см. Схему, приложенную к шагу схемы).

Arduino не может напрямую выдавать установившееся напряжение, а только импульсы 0 / + 5 В с различными периодами (PWM). Нам нужны цифро-аналоговые преобразователи (ЦАП) для всех. RC-фильтры - это самый простой ЦАП, о котором я могу думать. RC-фильтр достаточно хорош для усилителя и фильтра, управляемого напряжением (VCA и VCF). RC-фильтры рассчитаны на частоту среза <20 Гц (самая низкая слышимая частота).

Я провел несколько тестов с неполяризованными конденсаторами малой емкости и в итоге выбрал значение емкости 0,1 мкФ, которое лучше всего подходит. Хорошо протестирован на MS20 MKII.

К сожалению, мы не можем полагаться на RC-фильтр для управления генератором, управляемым напряжением (ГУН), поскольку он был бы недостаточно точным (в масштабе Гц / В на нижнем конце два полутона различаются менее чем на 0,02 В; в В / oct два противоположных полутона различаются на 0,083 В); мы собираемся использовать для этого IC DAC (MPC4725).

Известные пределы

Ограничивая напряжение привода до 5 В (выходное напряжение Arduino), для скорости покрывается полный диапазон от 0 до 5 В; отсечка наполовину закрыта (от -5В до + 5В); диапазон ГУН частично покрывается тем, что в Гц / В для достижения 440 Гц A4 потребуется напряжение 8 В. С ограничением на выходе 5 В мы можем поднять генератор до частоты D4 в Гц / В.

Шаг 3: Список компонентов

Список компонентов
Список компонентов
Список компонентов
Список компонентов
Список компонентов
Список компонентов

Вам необходимо:

1X Arduino UNO (или нано)

1X плата ЦАП MPC4725

4X 1/8 "или 1/4" моно разъема

1 разъем MIDI

1X 6N138 оптопара

1X 1N4148 диод

1 резистор 220 Ом 1/4 Вт

1 резистор 470 Ом 1/4 Вт

1 резистор 10 кОм 1/4 Вт

4 резистора 1 кОм 1/4 Вт

2X 0,1 мкФ конденсатор

1X BC547 pnp-транзистор (в случае S-триггера)

1 коробка из АБС-пластика (минимум 55 x 70 x 100 мм)

… И, очевидно, макетная или перфорированная плата, паяльник, припойный провод и кабели (2 метра 28 AWG должно быть достаточно).

Обратите внимание, что на изображениях выше в моем прототипе установлены электролитические конденсаторы емкостью 100 мкФ, но они слишком медленные из-за времени зарядки емкости. Емкость 0,1 мкФ - правильный выбор.

Я использовал дополнительный разъем для питания моего Arduino; нет необходимости подключать микроконтроллер напрямую через встроенный разъем mini USB.

Шаг 4: Подключения / Схема

Подключения / Схема
Подключения / Схема
Подключения / Схема
Подключения / Схема
Подключения / Схема
Подключения / Схема

MIDI ВХОД

Схема MIDI IN проста и хорошо описана в сети. Возьмем, к примеру, ЭТО отличное руководство по MIDI и Arduino от Аманды Гассаи. Я все равно сделал n-ю схему по этому поводу.

Обратите внимание, что я добавил переключатель в схему MIDI IN (переключатель 1): это необходимо при загрузке нового скетча в Arduino, потому что оптоискатель мешает линии RX даже без входящих MIDI-сообщений. Вы должны открыть переключатель перед загрузкой скетча, иначе IDE не сможет загрузить новый скетч.

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

ЦАП, RC фильтр, синтезатор

Подключение для ЦАП, RC-фильтров и синтезатора (высота звука, гейт и скорость) показано на схеме вверху. Я взял для справки патч-панель Korg MS20, но все протестировал и на MS10. Прямое соединение скорости CV с точкой патча VCA «начальное усиление» не имеет никакого эффекта (я должен копать эту вещь дальше), но если вы подключите его к точке патча «Total» и увеличите ваши общие внешние потенциометры (MG / T. EXT)), вы услышите приятные вариации тона в зависимости от скорости ноты.

В моих схемах (и в моем прототипе) не используется резистор, ограничивающий ток на выходе ЦАП, но всегда полезно разместить его, чтобы обеспечить долгий срок службы ваших схем. Резистора 220 Ом будет достаточно.

Обратите внимание, что на схемах указаны выше 100 мкФ электролитные конденсаторы, но они слишком медленные из-за времени зарядки емкости. Неполяризованные конденсаторы емкостью 0,1 мкФ - правильный выбор.

Выход из ворот

В случае, если вы собираетесь секвенировать синтезатор, совместимый с сигналами V-Trig (триггер по напряжению), для уменьшения потребления тока будет достаточно последовательного резистора 1 кОм; в случае синтезатора S-Trig (триггерный переключатель) вы можете использовать простую схему переключения PNP (см. прилагаемую схему).

Шаг 5: Программное обеспечение

Программное обеспечение
Программное обеспечение

Я старался, чтобы набросок был как можно более четким и «читаемым».

Я работал над простой таблицей расчетов, которую я нашел ЗДЕСЬ, чтобы получить кривую Voltage Vs Note # и напрямую использовать уравнение в микроконтроллере. Уравнение показано на графике вверху. Я использовал C2 в качестве справочной информации для получения соотношения между напряжением и примечанием, совместимым с Arp / Korg (C0 - 0,25 В, C1 - 0,5 В, C2 - 1 В, C3 - 2 В, C4 - 4 В, C5 - 8 В и т. Д.).

Мне пришлось определить некоторую переменную, с которой можно было бы поиграть, чтобы получить хорошую настройку… не торопитесь, чтобы найти правильные значения. Нужен тюнер.

Мы собираемся увеличить частоту ШИМ таймера / счетчика, чтобы уменьшить пульсации выходного напряжения (это просто, как строка кода).

Чтобы код реагировал на входящие байты, код в значительной степени полагается на обратные вызовы функций.

Вам нужны библиотеки Sparkfun "Adafruit_MCP4725.h" и Forty Seven Effects / "MIDI.h" Франсуа Беста для компиляции! (Большое спасибо этим людям: без их усилий этот проект никогда бы не был реализован!).

Я предполагаю, что у вас есть готовая Arduino IDE на вашем ПК и вы знаете, как загрузить скетч на свою плату Arduino.

В реальной жизни я не программист, поэтому вполне вероятно, что скетч можно было бы написать лучше. Я открыт для предложений (я всегда узнаю что-то, глядя на код кодера;))

Дополнительные примечания написаны в приведенном ниже коде. Установите две библиотеки, откройте прикрепленный код в своей среде IDE, подключите плату, выберите тип платы и загрузите.

Шаг 6. Устранение неполадок

Даже если проект находится на низком уровне, есть масса вещей, которые могут пойти не так. Если у вас возникли проблемы при попытке создать собственное поле MIDI в CV, выполните следующие действия:

1. Убедитесь, что Arduino правильно принимает MIDI-сообщения

Проверьте выходной канал, на который ваша клавиатура, DAW или секвенсор выводят MIDI-сообщения. Arduino по умолчанию прослушивает канал 1. Загрузите "TEST_MIDI_IN.ino", чтобы прочитать входящее сообщение noteON.

2. Дважды проверьте свою проводку

… Или даже лучше: проверьте их трижды! Уделите этому время.

3. Проверьте адрес и выход ЦАП

ЦАП может быть настроен на получение данных по другому адресу, чем тот, который я установил в скетче. Проверьте адрес, запустив «I2C_scanner.ino». Если возникает ошибка «Устройство не найдено», проверьте проводку ЦАП (входы SDA и SCL на разных платах Arduino различаются!). Если у вас есть осциллограф (даже эти цифровые осциллографы за 15 евро достаточно хороши… и с ними весело играть!), Вы можете проверить выход вашего ЦАП, загрузив пример генератора треугольных волн, включенный в установку библиотеки ЦАП.

Помните, что когда оптопара подключена к входу RX вашей платы Arduino, вы не сможете загрузить новый эскиз !! Поместите переключатель (это может быть простая перемычка) перед выводом RX.

Большинство этих тестовых набросков не являются моими или, по крайней мере, основаны на существующих онлайн-материалах.

Мне кажется, эта штука фальшивая !?

Это не настоящая проблема: уравнение, полученное для управления Hz / V, является «идеальным». Некоторое отклонение от идеального поведения может возрасти из-за того, что напряжение +5 В, которое вы подаете, не равно 5.000 В, от ЦАП и от самого прибора. Чтобы решить эту проблему, вы должны воздействовать на свой потенциометр настройки / точной настройки синтезатора и «вуаля» - идеально настроенный элемент управления MIDI;)

Шаг 7. Полезные ссылки

en.wikipedia.org/wiki/CV/gate

www.instructables.com/id/Send-and-Receive-…

www.songstuff.com/recording/article/midi_me…

pages.mtu.edu/~suits/NoteFreqCalcs.html

espace-lab.org/activites/projets/en-arduin…

learn.sparkfun.com/tutorials/midi-shield-h…

provideyourown.com/2011/analogwrite-conver…

www.midi.org/specifications/item/table-3-c…

arduino-info.wikispaces.com/Arduino-PWM-Fr…

sim.okawa-denshi.jp/en/PWMtool.php

Рекомендуемые: