Добавить в корзинуПозвонить
Найти в Дзене
Я у мамы инженер!

MIDI контроллер на Arduino для NI Traktor

Всем привет! Все эти контроллеры и прочие музыкальные прибамбасы стоят довольно таки неплохих денег, а поиграться хочется. Да и иногда нравится поковыряться во всем этом и сделать какую нибудь прикольную штуку самому. Об этом и будет данная статья. Midi контроллер для NI Traktor на Arduino.
"В прошлом году я случайно увидел на ютубе видео, где Richie Hawtin показывает свой домашний сетап, крутит ручки у пульта Allen&Heath XONE и управляет тем самым популярной диджейской программой NI Traktor. Меня очень впечатлило это визуально и технически. До этого я не имел ни малейшего понятия о MIDI протоколе и контроллерах, его использующих. В то время в ящике стола давно валялась плата Arduino и я все хотел пограться с ней, светодиодом я уже помигал, на LCD экран Hello world! вывел, а какого-нибудь применения в голову не приходило. И тут это видео. В общем я решил сделать свой миди-контроллер. Практической цели особо не было, потому как я не диджей, просто хотелось сделать какое-нибудь устро

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

Midi контроллер для NI Traktor на Arduino.


"В прошлом году я случайно увидел на ютубе видео, где Richie Hawtin показывает свой домашний сетап, крутит ручки у пульта Allen&Heath XONE и управляет тем самым популярной диджейской программой NI Traktor. Меня очень впечатлило это визуально и технически. До этого я не имел ни малейшего понятия о MIDI протоколе и контроллерах, его использующих.

В то время в ящике стола давно валялась плата Arduino и я все хотел пограться с ней, светодиодом я уже помигал, на LCD экран Hello world! вывел, а какого-нибудь применения в голову не приходило. И тут это видео. В общем я решил сделать свой миди-контроллер. Практической цели особо не было, потому как я не диджей, просто хотелось сделать какое-нибудь устройство с нуля до готового продукта.
Самым трудным оказалось найти фейдеры. Купить их в городе невозможно, в российских интернет-магазинах какое то гуано, заказывать за рубежом не хотелось из за Почты России с ее молниеносной доставкой. Я уже, в общем то, хотел сделать все вообще без единого движкового резистора, когда коллега подкинул мне пару старых японских резисторов и я все же поставил один как кроссфейдер. Вообще, я почти не тратил деньги на этот проект и большинство деталей обрели вторую жизнь в этом устройстве. Корпус я пару месяцев до этого извлек из помойки на работе, в нем был собран какой то контроллер разряда аккумулятора (вероятно электропогрузчика, вероятно японского потому что там была дюймовая резьба, которую пришлось перенарезать). Мне понравилось что он литой и основательный. По работе мне часто приходится иметь дело с промышленной электроникой, что конечно наложило свой отпечаток и я постарался сделать устройство максимально технологичным в сборке. Я ненавижу шлейфы проводов вырывающиеся из устройства когда ты откручиваешь его крышку, поэтому я решил сделать мезониную конструкцию или этакий бутерброд из плат. Это несколько сложнее чем просто насверлить дырок в корпусе, вставить в них переменных резисторов и соединить все проводами, но зато у меня в корпусе нет ни одного провода и все разбирается-собирается как АК-47.
Первая плата в «бутерброде» это стандартный макетный «шилд» (shield) арудуино, на котором я по быстрому распаял аналоговый мультиплексор 4051, который занимается тем что переключает сигнал с каждого потенциометра на один из аналоговых входов ардуино. (всего их 6, а мне надо было минимум 8, поэтому пришлось мультиплексировать).

-2

Помимо мультиплексора на плате два светодиода, один из которых индицирует питание через USB, а другой через ключ на транзисторе висит на ноге Tx atmega и мигает при передаче MIDI сообщения.

-3

Вторая плата несет на себе все внешние органы управления ( потенциометры и кнопки) и является фальш панелью. Плата разведена в Layout Sprint и напечатана по кустарной ЛУТ технологии.

-4
-5
-6

При сборке платы последовательно вставляются друг в друга, последняя закрывает корпус, через 4 фторопластовые шайбы накладывается лиецевая панель из матированного оргстекла и весь «бутерброд» стягивается 4 винтами.

-7
Устройство в сборе выглядит так
Устройство в сборе выглядит так

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

!!!Код здесь!!!

Если опустить детали, то работает это примерно так: При повороте ручки потенциометра меняется напряжение на его среднем выводе ( от 0 до 5 В, что соответствует его крайним положениям), напряжение оцифровывается АЦП и мы получаем байт который преобразуем в формат MIDI сообщения и шлем в последовательный порт, который есть у микроконтроллера для связи с другими цифровыми устройствами. На плате ардуино распаян USB-UART чип FT232 который поднимает виртуальный COM порт на компе. Дальше драйвер древнего синта Rоland который как нельзя кстати создан для работы через COM порт.

И вуаля. Единственная загвоздка это то, что стандартная скорость обмена в MIDI протоколе не стандартна для COM порта, но это быстро пофиксили обитатели форума ардуино, хакнув драйвер FT232.
Необходимо отредактировать файл FTDIPORT.INF

FTDIPORT.INF

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

Вот небольшое видео в общих чертах демонстрирующее работу контроллера:

Понравилась статья? Тогда жми подписаться и ставь лайк! Специально для Вас я буду публиковать самые интересные проекты электронщиков найденные на просторах интернета!