Превращаем Arduino в MIDI инструмент

Обсуждаем Arduino, Raspberry Pi и другие электронные компоненты и проекты DIY
Ответить
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Превращаем Arduino в MIDI инструмент

Сообщение Mr.Kubikus »

Сваливаем сюда все материалы по MIDI инструментам на платформе Arduino.

1. Interfacing with Hardware - MIDI на Arduino.Playground.
2. MIDI Library v3.2 там же.
3. DIY MIDI Over USB using Arduino Uno. Как превратить Arduino в MIDI устройство, работающее через USB интерфейс.
4. Arduino to MIDI implemented !
5. Serial - MIDI Converter. Напрявляем поток MIDI-команд через COM порт (виртуальный USB COM порт).
С уважением, Григорий
GitHub FB ВК
E1920
Сообщения: 11
Зарегистрирован: 27 дек 2011, 11:33

Re: Превращаем Arduino в MIDI инструмент

Сообщение E1920 »

Интересная тема!
Вот довольно простой пример передачи последовательности MIDI сигналов с Arduino.
Думаю опробовать этот пример, передавая сигналы на компьютер с платы через USB MIDI-интрфейс.
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Превращаем Arduino в MIDI инструмент

Сообщение Mr.Kubikus »

А картинка где?
С уважением, Григорий
GitHub FB ВК
E1920
Сообщения: 11
Зарегистрирован: 27 дек 2011, 11:33

Re: Превращаем Arduino в MIDI инструмент

Сообщение E1920 »

Вчера провёл таки эксперимент с передачей последовательности midi-сигналов с arduino на компьютер, через usb midi-интерфейс!
Вот что получилось:
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Превращаем Arduino в MIDI инструмент

Сообщение Mr.Kubikus »

Теперь я вижу, что Ардуино работает как MIDI-контроллер, зачёт! Для полноты картины не хватает реализации MIDI инструмента на Arduino.

Кстати, вот - описание электрической части интерфейса MIDI. Думаю это будет полезно, для сборки MIDI IN для Arduino.

Ну и для расширения кругозора:

С уважением, Григорий
GitHub FB ВК
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Превращаем Arduino в MIDI инструмент

Сообщение Mr.Kubikus »

Вот, набросал схемку MIDI-IN для Arduino. Опторазвязку можно заменить на что-то похожее.
MIDI-IN-1_bb.png
MIDI-IN-1_bb.png (41.3 КБ) 38929 просмотров
Для проверки можно написать программку, которая будет принимать байты через последовательный интерфейс и реагировать светодиодом на MIDI-команды Note On/Of на каком-то определенном канале. Каждая команда состоит из трех байт:
  • Команда Note Off: 8n, kk, vv
  • Команда Note On: 9n, kk, vv
nn - Channel number, n = 0 to F = Channels 1 to 16
kk - Key number, kk = 00 to 7F 3C = middle c
vv -Velocity, vv = 01 to 7F 40 = no velocity; 00 = note off

Подробное описание протокола MIDI можно взять в сети.
Пример программы, которая обрабатывает MIDI-команды, на форуме arduino.cc.
С уважением, Григорий
GitHub FB ВК
E1920
Сообщения: 11
Зарегистрирован: 27 дек 2011, 11:33

Re: Превращаем Arduino в MIDI инструмент

Сообщение E1920 »

Немножко разобрался с обработкой MIDI-сообщений... и даже поуправлял сервомашинкой!
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Превращаем Arduino в MIDI инструмент

Сообщение Mr.Kubikus »

+1!

Как я понял, это только басовая линия? Сколько еще нужно серв, чтобы исполнить классический вариант?
С уважением, Григорий
GitHub FB ВК
E1920
Сообщения: 11
Зарегистрирован: 27 дек 2011, 11:33

Re: Превращаем Arduino в MIDI инструмент

Сообщение E1920 »

Хороший вопрос) Нотную партитуру не видел.
Тем не менее, попробовал подключить две сервомашинки.
При попытки одновременно подавать управляющее воздействие на обе получилась вот такая интересная штука:



Кстати, теперь для подключения миди-интерфейса использую специальный миди-шилд, который упрощает работу.
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Превращаем Arduino в MIDI инструмент

Сообщение Mr.Kubikus »

Вот еще что откопал - Алгоритм Гёрцеля для детектирования и декодирования тональных сигналов. Для автоматического тюнинга MIDI-инструмента.
С уважением, Григорий
GitHub FB ВК
Ответить