Arduino midi controller: USB MIDI-контроллер на Arduino / Хабр

Содержание

10 MIDI-контроллеров, которые вы можете создать с помощью Arduino

Автор Кирилл Соколов На чтение 5 мин. Просмотров 33 Опубликовано

Цифровой интерфейс музыкальных инструментов, или сокращенно MIDI, – это старая технология, используемая во всех видах современных музыкальных машин. Этот мега-список охватывает некоторые из самых крутых проектов MIDI-контроллеров Arduino, от клавиатур до пусковых панелей и всего остального. Все, что вам нужно для начала, – это Arduino и несколько кнопок.

Содержание

  1. 1. Простой MIDI-контроллер Arduino
  2. 2. UNTZtrument
  3. 3. 3D-печатный MIDI-микшер
  4. 4. Ножной MIDI-контроллер
  5. 5. MIDI Drum Machine
  6. 6. MIDI Piano
  7. 7. Контроллер кнопок Arcade
  8. 8. Расширенный контроллер кнопок аркад
  9. 9. MIDI-контроллер Ableton
  10. 10. Wooden MIDI Music Machine
  11. Какой MIDI-контроллер Arduino вы используете?

1.

Простой MIDI-контроллер Arduino

Мы не могли бы составить список контроллеров Arduino MIDI без включения нашего собственного проекта! В этом уроке я предоставляю полные инструкции по созданию собственного MIDI-контроллера. Используя Arduino, макетную плату и две кнопки, этот проект можно легко сделать днем.

Имея определение MIDI, полные образцы кода и четкие принципиальные схемы, вам следует ознакомиться с этим руководством по сборке в качестве общего пособия по всем вопросам, связанным с Arduino MIDI. См. Наше руководство по MIDI-контроллеру DIY!

2. UNTZtrument

Novation Launchpad Ableton Live Controller с 64 пэдами с подсветкой RGB (сетка 8×8) КУПИТЬ СЕЙЧАС НА AMAZON

Этот проект опытных дизайнеров Adafruit является клоном неизменно популярной Novation Launchpad. Благодаря сетке 8×8 из 64 кнопок с подсветкой, этот проект не для слабонервных.

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

Для изготовления футляра вам понадобится лазерный резак, но пользователь Thingiverse предлагает напечатанную на 3D-принтере версию. Электронная граната.

3. 3D-печатный MIDI-микшер

Этот проект, созданный ютубером Эваном Кейлом, демонстрирует впечатляющий набор ползунков и циферблатов. Используя в своей основе Arduino Pro Micro, это устройство способно управлять практически любым параметром, который вы можете ему задать.

Хотя руководства по сборке нет, видео дает разумный обзор каждого аспекта сборки. Имея схемы, код и напечатанные на 3D-принтере файлы корпусов, вы сможете довольно легко воссоздать свои собственные.

4. Ножной MIDI-контроллер

Разработанный для управления педалями гитарных эффектов, этот ножной MIDI-контроллер с канала YouTube “Workshy” обладает некоторыми впечатляющими характеристиками. С четырьмя функциональными кнопками, несколькими банками, семисегментным светодиодным дисплеем и возможностью выбора фиксации или мгновенного переключения, эта впечатляющая сборка имеет более чем достаточно функций, чтобы вы были заняты, даже если ваши руки заняты!

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

5. MIDI Drum Machine

Хотя технически он совместим с Arduino, а не является «настоящей» платой Arduino, этот проект слишком крут, чтобы его исключить. В этом проекте, снова разработанном Adafruit, используется емкостной сенсорный датчик и массив из 16 светодиодов NeoPixel.

Поставляется отличное онлайн-руководство по сборке, но эта сборка требует сложной обработки металла и 3D-печати.

Однако нет причин, по которым вы не могли бы заменить металл на пластиковые детали.

6. MIDI Piano

Это замечательное руководство разработано компанией Electronic Projects, создателем YouTube. В этом гениальном проекте используются картон и скрепки для создания полностью настраиваемой MIDI-клавиатуры с питанием от Arduino.

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

7. Контроллер кнопок Arcade

Созданный прямо от ютубера Саймона Маккиннона, этот MIDI-контроллер использует аркадные кнопки для управления всей музыкой! Пока у этой модели «всего» шесть кнопок, расширить ее было бы несложно.

Автор не только предоставил отличное письменное руководство, но и переработал пластиковый контейнер в качестве шасси.

Музыка в стиле Stranger Things только делает этот проект еще круче. Хорошая работа, мы говорим!

8. Расширенный контроллер кнопок аркад

Это руководство по MIDI-контроллеру Arduino от заядлого музыкального производителя «fraganator» продвигает концепцию аркадных кнопок на один шаг вперед. Автор не только реализовал 12 кнопок, расположенных в виде массива 4×3, но также включил четыре поворотных регулятора и два фейдера.

Нет предела тому, чего вы можете достичь с этим контроллером. Владелец написал замечательное руководство, наряду с письменными инструкциями и хорошими четкими фотографиями, они также предоставили шаблоны для вырезания для изготовления вашего собственного футляра – 3D-печать не требуется!

9. MIDI-контроллер Ableton

Разработанный специально для Ableton Live, этот контроллер не имеет красивого блока или кнопок, как во многих других проектах.

Этот урезанный проект, созданный с канала Starfire Technology на YouTube, – отличный способ изучить основы. Имея всего несколько строк кода, вы можете собрать этот простой контроллер, даже ничего не паяя (хотя вам, вероятно, все равно следует научиться паять).

10. Wooden MIDI Music Machine

Этот впечатляющий проект был сделан YouTuber uglybuckling. С красивым корпусом Oak and Walnut, 40 аркадными кнопками, расположенными в сетке 8×5, и содержащими различные другие кнопки и элементы управления, этот проект, безусловно, большой.

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

За исключением кода, руководство по сборке охватывает физическое производство устройства и причины принятия определенных решений.

Какой MIDI-контроллер Arduino вы используете?

Эти проекты показывают, насколько творчески вы можете проявить себя, используя только Arduino. Хотя большинство из этих контроллеров должны нормально работать с любой цифровой звуковой рабочей станцией (DAW), большинство из них будут лучше всего работать с возможностями согласования ритмов и пропуска песен, которые есть в Ableton Live, поэтому обязательно ознакомьтесь с нашим Ableton Live Guide, если вы еще этого не сделали.

Взгляните на наше руководство для начинающих Arduino, если вы новичок в этом замечательном устройстве, и не забудьте прочитать наше руководство по покупке платы, чтобы узнать, как выбрать свой мозг MIDI-контроллера!

5 ЛУЧШИХ ARDUINOS для создания MIDI-КОНТРОЛЛЕРА

Введение

«Какой Arduino лучше?» — этот вопрос мне задают часто! Итак, я решил сделать это видео, чтобы помочь вам выбрать лучший Arduino для ваших DIY MIDI-контроллеров, на самом деле, рассказать вам о пяти моих любимых!

При поиске Arduino для вашего MIDI-контроллера вы должны подумать о совместимости с MIDI-классом; количество компонентов; и если вы хотите, чтобы это был прототип или конечный продукт.

Какой Ардуино выбрать?

  • Arduino Uno
  • Arduino Leonardo
  • Arduino Pro Micro
  • Arduino Micro
  • Arduino Mega
  • Teensy LC

Прежде чем выбрать Arduino, нужно подумать о количестве компонентов и MIDI-портативности. -совместимость класса.

Совместимость с классом MIDI : В качестве контроллера MIDI выберите Arduino, который может быть совместим с классом MIDI — подключи и работай. Любой Arduino с ATmega16U2 и ATmega32U4.

ATmega16U2 : присутствует в некоторых Arduino Uno и Mega — им потребуется дополнительный разъем, чтобы сделать его совместимым с классом MIDI.

ATmega32U4 : присутствует в любом Arduino (Pro) Micro или Leonardo (так сделать проще).

Количество выводов : Arduino Mega имеет x выводов, а Arduino Pro Micro — только y. Однако Mega требует гораздо больше места и стоит дороже.

Arduino + мультиплексоры : Вы всегда можете увеличить количество входов Arduino с помощью мультиплексора. Мультиплексор 4067 увеличивает каждый вход на 16!

Можно ли к нему припаяться? В то время как Mega, Uno и Leonardo предназначены для использования с перемычками или для использования с дополнительным экраном, в других есть отверстия для пайки.
Что я рекомендую? Для прототипирования: Uno, Mega или Leonardo. Для окончательных проектов Micro или Pro Micro + мультиплексоры, если вам нужно.

При поиске Arduino для вашего MIDI-контроллера вы должны подумать о совместимости с MIDI-классом; количество компонентов; и если вы хотите, чтобы это был прототип или конечный продукт.

В первых модулях моего курса я учу, как можно использовать любой Arduino с Hairless MIDI, программным обеспечением, которое преобразует последовательный порт (собственный протокол Arduino) в MIDI. Однако у некоторых людей возникают проблемы с Hairless, либо потому, что Hairless не очень любит Windows, либо потому, что это более новая MacOs.

Если это так, выберите Arduino, который может быть совместим с классом MIDI, предпочтительно Micro, Pro Micro или Leonardo, и следуйте инструкциям модуля о том, как сделать его устройством, совместимым с классом MIDI. Хотя первоначальные классы/коды используют метод Hairless MIDI, вы можете просто изменить способ написания MIDI-сообщения и использовать библиотеку MIDIUSB.

Чтобы сделать его устройством, совместимым с классом MIDI, посмотрите модуль «Arduino как устройство, совместимое с классом USB-MIDI».

Ардуино, которые я рекомендую

  • Arduino Uno: https://amzn.to/3d366JN
  • Arduino Mega: https://amzn.to/3kYEjyh
  • Arduino Leonardo: https://amzn.to/2VyJhbc
  • Arduino Micro: https://amzn.to/2XB7EGE
  • Arduino Pro Micro: https://amzn.to/2Vcz3Nz
  • Teensy LC: https://amzn.to/3jdC1Li
  • Мультиплексор 4067 (прорыв): https://bit.ly/34K4d1N

Как собрать MIDI-контроллеры?

Если вы здесь, держу пари, вам не терпится собрать MIDI-контроллер! Итак, посетите мой курс «Создание музыки с Arduino», где я учу, как создать практически любой тип MIDI-контроллера. Там вы также можете подписаться на пробную версию и получить доступ к первому модулю моего курса, где я бесплатно научу вас, как создать ваш первый MIDI-контроллер (менее 30 долларов США)!

Сборка MIDI-контроллера Arduino

Мне нравится создавать электронные устройства, и я всегда хотел создать что-нибудь с помощью Arduino.

Одной из самых распространенных сборок для начинающих, которую я нашел, был MIDI-контроллер.

MIDI-контроллер — это любое оборудование, которое отправляет MIDI-данные (цифровой интерфейс музыкальных инструментов) на устройство для запуска звуков и создания музыки.

Я обнаружил, что многие реализации сложны, даже те, которые предназначены для начинающих. Было очень неприятно обнаружить, что мне нужно использовать сотни строк нечитаемого кода. Или что мне нужно впаять резистор в некоторых случаях, среди других примеров.

Проект

Создавая свой собственный MIDI-контроллер Arduino, я намеревался сделать приятный проект , сохранив шум на минимальном уровне. То, чему может следовать любой новичок. Для этого я использовал MIDI Fighter 3D в качестве основы и удалил все несущественные функции .

Общая стоимость моего проекта составила менее 30$

, а список материалов был лаконичен (партнерские ссылки):

  • Arduino Leonardo (или клон): от 10 до 20 долларов.
  • 16 пуговиц Sanwa 24 мм (или клон): от 1 до 2,50 долларов США за пуговицу.
  • Паяльник
  • Электрический провод 22 AWG

Взгляните на опыт создания этого контроллера:

Плата Arduino

Когда я начал этот проект, я нашел много новых моделей Arduino (не считая сотен совместимых плат). И все они предлагают немного разные возможности.

Мне нужно было отправить MIDI-сигналы на компьютер, и самый простой способ сделать это — через USB . Любая плата Arduino на базе микроконтроллера ATmega32u4 имеет встроенную связь по USB.

Официальные платы Arduino со встроенной поддержкой USB:

Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro . Эти платы имеют встроенную поддержку USB, что означает, что они могут работать как MIDI-устройство USB.

Я решил использовать клон Arduino Leonardo. У него достаточно входов для этого проекта, а также есть разъемы, что упрощает подключение/отключение проводов.

Первые шаги

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

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

Шаг 1. Мигание встроенного светодиода

Забавно, как «Hello World» в мире железа мигает светодиодом.

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

. Таким образом, вам не нужно создавать внешнюю схему на макетной плате со светодиодом и резистором.

Шаг 2. Мигание светодиода при ручном вводе

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

  • PIN 2 : Один из цифровых входов (положительный). Это может быть любой цифровой пин.
  • PIN GND : Любой контакт заземления (отрицательный).

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

Каждый из 20 цифровых контактов на Leonardo имеет внутренний резистор (отключен по умолчанию), который можно включить с помощью

INPUT_PULLUP . Имейте в виду, что подтягивающий вход означает, что состояние кнопки инвертировано :

  • ВЫСОКИЙ , когда цепь разомкнута (кнопка НЕ ​​нажата).
  • НИЗКИЙ , когда цепь замкнута (кнопка нажата).

Шаг 3. Установка библиотеки MIDIUSB

Эта библиотека позволяет плате Arduino с возможностями USB выступать в качестве MIDI-инструмента через USB. Дополнительные сведения см. в официальной документации.

Используя Arduino IDE, вы можете установить дополнительные библиотеки Arduino с помощью диспетчера библиотек:

  1. Откройте IDE и щелкните меню «Эскиз» , затем «Включить библиотеку» , затем «Управление библиотеками» .
  2. Найдите MIDIUSB и нажмите Установить .
  3. После завершения рядом с библиотекой MIDIUSB должен появиться тег Installed .
  4. Закройте диспетчер библиотек.

Теперь Leonardo может отправлять MIDI-сообщения через USB! Но сначала нужно немного разобраться в том, как работает MIDI.

Как работает MIDI

«MIDI (цифровой интерфейс музыкальных инструментов) — это стандартный протокол связи, который соединяет электронные музыкальные инструменты, компьютеры и соответствующие аудиоустройства для воспроизведения музыки». — Википедия.

Он обрабатывает сообщения о событиях с данными высоты тона и скорости воспроизведения ноты, а также другими инструкциями.

В этом конкретном проекте ввод с 16 кнопок отправляет различные сообщения через USB. Эти сообщения можно преобразовать в звук

на компьютере с помощью любого подходящего программного обеспечения, такого как GarageBand или Ableton Live.

Структура MIDI-сообщения

Чтобы отправить MIDI-сообщение, я использовал метод sendMIDI() из библиотеки MIDIUSB, которую я установил на шаге 3.

Этот метод может принимать четыре параметра:

  • Тип события: Это может быть 0x09 для включения ноты (воспроизведение ноты) или 0x08 для ноты Off (остановка воспроизведения ноты).
  • Note On/Off: Тип события в сочетании с MIDI-каналом (1-16). Я использую только канал 1, так что это либо 0x90 для включения ноты, либо 0x80 для отключения ноты.
  • Номер ноты: Каждой ноте соответствует цифровая высота тона (частотная шкала).
  • Скорость: От 0 (без скорости) до 127 (самый быстрый).

Шаг 4: Отправка MIDI-сообщения

Включил MIDIUSB Library, а вместо мигания встроенного светодиода отправил заметку.

⚠ Важно:

Начиная с этого шага Arduino превращается в USB-контроллер MIDI и перестает получать код через USB.

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

  1. Удерживайте закругленную кнопку сброса на плате Arduino.
  2. Нажмите «Загрузить» в Arduino IDE.
  3. Отпустите кнопку сброса.
  4. IDE загрузит обновленный код на плату.

Шаг 5: Отправка MIDI-сообщения с каждой кнопки

Последним шагом было сопоставление каждого шага с кнопкой. Для 16 кнопок я определил шкалу от C

2 до E 3 b, то есть высоту тона от 36 до 51 в последовательности снизу вверх и слева направо. Посмотрите этот файл из руководств по Arduino, чтобы увидеть, какая высота звука соответствует каждой ноте.

Я использовал цифровые выводы от 2 до 12 и аналоговые выводы (используя их как цифровые) от A0 до A4 .

И вот как выглядит окончательный код:

Шаг 6 (необязательно): Настройка каналов или банков

Если вы хотите добавить больше кнопок с возможностью переключения каналов или банков , как в MIDI Fighter 3D (см. изображение ниже), у Arduino Leonardo есть еще четыре контакта, которые вы можете использовать. Arduino Leonardo имеет 20 цифровых входов/выходов, из которых только 16 используются для воспроизведения нот.

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

MidiUSB.sendMIDI :


Чемодан

Чтобы не усложнять этот проект, я слишком тщательно выбирал, какие функции включать.

  • Только кнопки: 16 аркадных кнопок в стиле Sanwa, в сетке 4×4. Никаких ручек, ползунков, фейдеров или любого другого аналогового входа.
  • Корпус Unibody: Не используйте винты, гайки, болты или клей для крепления корпуса или удержания платы Arduino.
  • Повседневные инструменты: Например, я припаял провода вместо того, чтобы покупать специальные кусачки для кнопок игровых автоматов.

Цельный дизайн

Одной из проблем, с которыми я столкнулся, было создание достаточно простого корпуса , который не требует сборки и может быть напечатан на 3D-принтере за один проход .

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

Загрузить корпус для 3D-печати (322 КБ). Рекомендуемые настройки: PLA, слои 0,15 мм, заполнение 20%, опоры для закругленного нижнего отверстия, держатели Arduino и micro USB.

Это размеры (в миллиметрах), используемые для 3D-печатного корпуса:

Ардуино без винтов

Леонардо имеет четыре отверстия для вкручивания платы в любой подходящий корпус, но моя идея заключалась в том, чтобы упростить добавление и извлечение платы из корпуса .

Найти держатель зажима для Arduino на Thingiverse было легко, и мне потребовалось пять итераций, чтобы интегрировать этот держатель в конструкцию unibody . Самой сложной частью было , чтобы его ножки избегали отверстий для кнопок и выровняли центр микро-USB по корпусу .

Сборка

Вот схема подключения MIDI-контроллера:

Вставив все кнопки на место, я припаял короткие черные провода , соединяющие минусовые ножки всех кнопок. .

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

Я отрезал и припаял несколько концов Dupont и обмотал их термоусадочной трубкой для подключения проводов к Arduino.

Подсоединил провода к плате в том же порядке, что и в MIDI Fighter. Снизу вверх и слева направо.

Использование MIDI-контроллера

Вы можете использовать любое музыкальное программное обеспечение (или подходящее оборудование) для приема MIDI-данных и создания музыки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *