Midi контроллер для гитары своими руками

Как сделать USB/MIDI контроллер под управлением Arduino

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

MIDI контроллер в домашней студии – такое же важное устройство как компьютер, аудиоинтерфейс или наушники.
USB/MIDI контроллер – устройство для передачи MIDI команд и сообщений в звуковой редактор на компьютере. По сути, это пульт дистанционного управления, с помощью которого можно определить, что необходимо сделать с тем или иным сигналом. Все операции настраиваются через набор элементов управления: энкодеров (поворотных регуляторов), клавиш, пэдов, кнопок, джойстиков, фейдеров и т.д.
Именно рассмотреть изготовление такого устройство и предлагает нам мастер-самодельщик.

Давайте посмотрим видео с работой устройства.

Источник

GuitarLine.Ru

Arduino для музыканта часть 1. Делаем DIY MIDI контроллер/конвертер

Опубликовано: 30.09.2017, автор: sMiles

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

Читайте также:  Зарицкая ноты для хора

Где-то с 2007-го года я активный читатель Habr’a, последние его трансформации я уже особо не отслеживаю, но до 2011-го года все статьи получал по RSS и просматривал хотя бы заголовки. Поэтому я хорошо помню момент, когда Arduino и Raspberry пошли в массы как недорогие микроконтроллеры. С тех пор у меня засела в голове мысль попробовать с ними свои силы, но так как и на музыку особо времени не остается, приходилось постоянно откладывать начало экспериментов.

Пару лет назад я окончательно пересел на Fractal Axe FX о чем я чуть позже напишу поподробнее.

GAS на этом не унимался, поэтому в довесок покупались различные педали, в какой-то момент ситуация вышла из под контроля, и педалборд выглядел вот так:

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

Принял решение перейти на рэк и управление только с миди контроллера.

К тому моменту BJ Devices выпустили новую модель с педалью экспрессии и начался процесс проектирования и оформления для себя ТЗ на покупку или разработку река.

В AXE FX отлично эмулируются усилители, дилеи и тд, но там нет пары моих любимых перегрузов(Fulltone OCD и Xotic Soul Driven), я решил убрать их в рэк и контролировать их включение в цепь по миди. Для этого можно было купить миди свитчи от GLAB или Voodoo LAB, но я решил, что тут поможет Arduino.

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

Начались первые эксперименты.

Я купил контроллер Arduino Uno и реле для него. За один вечер удалось сделать свитч, который управляется сигналами из Arduino.

Вместе с контроллером BJ Devices у меня был куплен их свитч LoopX2, цель уже сейчас не припомню, но кто вообще будет объяснять GAS покупки. При проектировании расположения устройств в рековой полке, решил, что Arduino реле будет управлять свитчем от BJ, так как расположение будет гораздо удобнее.

Вторым этапом разработки были добавлены MIDI IN/OUT в схему и немного расширен объем работ.

В сети есть много мануалов по тому как собрать MIDI контроллер на Arduino, как минимум начните изучать эту тему с Notes And Volts.

Повозившись с россыпью комплектухи, нашелся наш магазин, который продавал уже собранные модули MIDI IN/OUT.

Купил, включил, скачал библиотеку MIDI.h и быстренько набросал программу управления свитчем LoopX2 по MIDI. Промежуточные программы я не буду приводить по тексту, в итоговом примере вы найдете все эти же программы как блоки с комментариями, поэтому двинемся дальше.

Все эти работы шли вечерами, когда находилось время. В общей сложности на разработку ушло 4 месяца, но это с учетом того, что на старте знаний по Arduino и схемотехнике у меня было практически ноль, сейчас с горем пополам могу собрать схему Big Muff или что-то похожее.

Проект начинал обрастать новыми функциями на этот раз я решил убрать в рэк Whammy, сама педаль на мой слух звучит намного музыкальней, чем ее эмуляция в Axe FX. Почитал мануал на педаль, управление по MIDI там достаточно простое, однако, для переключения режимов используются команды Program Change, а это значит, что посылая это сообщение с контроллера в одну MIDI цепь устройств, вместе с Whammy переключать пресеты начнет и Axe FX.

Пришлось добавить еще один MIDI OUT, в итоге в Arduino заходил MIDI сигнал от контроллера и дальше шло разветвление — MIDI OUT для Axe FX , в который не попадают сообщения для Whammy и MIDI THRU, в который идет весь поток миди данных.

Есть один нюанс, Arduino UNO имеет по одному serial порту, для того чтобы иметь один миди вход и два выхода, пришлось купить Arduino Mega, после 10 дней ожидания посылки с Ali удалось собрать макет.

Но вернемся к теме перегрузов и их включения в цепь, в Axe FX отлично эмулируется различные варианты квакушек, но раз уж перегрузы будут стоять ПЕРЕД процессором, то значит квакушка в такой цепи будет стоять ПОСЛЕ перегруза. В таком варианте подключения квакушка звучит слишком стерильно, весь смачный рок-н-ролльный саунд Wah получается только если педаль стоит перед перегрузом.

После пары дней размышлений, удалось достать плату Cry Baby GCB-95.

Час гугления и нашлась вот такая статья (https://www.instructables.com/id/Wahduino-WahWah-by-shakingraise-the-guitar/) про Arduino квакушку, которая управляется акселерометром.

Пришлось покупать цифровой потенциометр, который заменил стандартный пот 100k в квакушке.

Ну и еще пара ссылок вам на интересные проекты DIY рековых квакушек

В этих статьях был только один минус — управление было не по MIDI.

Это была третья часть проекта — добавить квакушку, которая будет управляться по MIDI при помощи Arduino. После пары недель доехала россыпь различных цифровых потенциометров, пара часов экспериментов и я услышал первые «кваки» в наушниках, которые управлялись с мидиконтроллера.

Итак, в процессе экспериментов появился вот такой «монстр»:

Когда я собрал все в одну коробку, от цифровой части схем в квакушку шел очень сильный фон. Пришлось изолировать потенциометр через LDR (http://www.instructables.com/id/How-to-Use-a-Light-Dependent-Resistor-LDR/).

Чтобы вам проще было повторить вот несколько схем. На плате Cry Baby есть 8pin слот для подключения батарейки, кнопки и потенциометра. На схеме ниже каждый выход подписан.

Подробнее про замену потенциометра квакушки на LDR(Light Depended Resistor) можно почитать вот в этой статье http://www.geofex.com/article_folders/wahpedl/wahped.htm

Немного поковырявшись со схемой у меня получился вот такой вариант:

Для удобства я все покрасил на картинке в соответствующие цвета и подписал. Сам по себе LDR это светодиод и фоторезистор. Яркостью светодиода в моей схеме управляет цифровой потенциометр, а фоторезистор одной ногой подключен к выходу «3-ground PA0», ко второму выходу через 100k резистор подключен выход «6 — fx return PB0» и выходу «5 — wiper PW0».

Если у вас в квакушке Dunlop начал хрустеть потенциометр, можно так же не меняя пот, добавить LDR и получить квак, в котором никогда больше не надо будет менять потенциометр.

После перехода на LDR фона стало меньше, но наводок было все равно очень много, я долго игрался с разными вариантами земли, изоляции и тд. Единственный способ как удалось избавиться от фона это убрать плату квакушки в отдельный корпус. При таком раскладе пазл в площадь река у меня уже не складывался, немного поразмыслив я решил купить себе рековую Cry Baby и опять же управлять ею из Arduino. Сам рек ко мне пока только едет, поэтому проект еще не завершен.

Пока схема подключения выглядит вот так:

Аудио сигнал подается на вход Whammy, откуда идет на MidiWah и далее в свитч, который управляется Arduino. Миди сигнал идет из контроллера в Arduino оттуда разделяется на управление Whammy и Axe FX.

Ниже листинг кода для Arduino. Напомню, что при помощи этого кода вы сможете получать и отправлять MIDI команды, управлять реле, управлять Digitech Whammy 5 как переключением режимов так и педалью экспрессии, управлять цифровым потенциометром, который подключен к Cry Baby.

Источник

МозгоЧины

#самоделки #инструкции #ремонт_техники #изобретения

МозгоЧины

#самоделки #инструкции #ремонт_техники #изобретения

Как сделать дешевый MIDI контроллер на базе Arduino своими руками

Как сделать дешевый MIDI контроллер на базе Arduino своими руками

Мне давно хотелось разбудить в себе композитора и начать творить свою собственную электронную музыку. Однако я был (мягко говоря) обескуражен высокими ценами на MIDI контроллеры. Но порыскав по просторам интернета у меня появилась задумка создать собственный контроллер, используя для этого Arduino Uno и токопропроводящие краски!

Давайте начнём)

Шаг 1: Подбор деталей

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

С электроники нам понадобится:

  • 1 Arduino Uno с usb кабелем;

  • 1 баночка токопроводящей краски;

  • 1 монтажная плата размерами 5×7 см;

  • резисторы с сопротивлением 2.2 кОм;

  • резисторы с сопротивлением 10кОм;

  • резисторы с сопротивлением 4.7кОм;

  • 12 шт 2.7 MОм резисторов;

Кроме электроники, также потребуются следующие инструменты:

  • Паяльник и припой;
  • Кусачки;
  • Подставка для пайки деталей (третья рука);
  • Мультиметр;
  • Несколько проводов и/или тонкая металлическая проволока.

Шаг 2: Припаиваем штыри

Создание платы начнём с припаивания штырей. Разместим согнутые штырьки в центре первого ряда на плате. Они в последующем будут служить «чувствительными» выводами, к которым будет подсоединяться клавиатура.

После установки штырей, обратите внимание – короткие выводы торчат из платы. Надавливаем на них, чтобы всё зашло заподлицо. Теперь припаиваем их и сразу проверяем места соединений на предмет короткого замыкания.

Примечание: Не припаивайте штырьки слишком долго, иначе они разогреются и расплавят пластик.

Для следующего этапа, расположим прямые гребёнки в слотах Arduino. Установим поверх штырей, что вставлены в Arduino, плату. Данное действие потребовало приложения небольшого усилия, поскольку штыри не идеально отцентрованы относительно отверстий платы.

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

Шаг 3: Напаиваем перемычки

Теперь удалим плату с Arduino и перевернём её на обратную сторону. Напаяем перемычки, на которые в дальнейшем будут крепится компоненты. Есть два способа сделать это:

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

Советую использовать второй метод, поскольку он проще и быстрее. Если вы выберете этот метод, расположите проволоку на плате, как на изображении.

  • Красная точка означает — припаиваем провод в отверстие.
  • Желтая точка — соединяем тонкую проволоку со штырём на другой стороне платы (как на третьем изображении).

Как вы можете видеть, немного испортил нижний левый угол, когда нанёс слишком много припоя, поэтому будьте внимательны!

Совет: Если у вас нет тонкой проволоки, используйте обрезки выводов используемых резисторов.

Шаг 4: Припаиваем сенсорно-ёмкостные резисторы

Устанавливаем компоненты, а именно 2.7MОм резисторы, которые будут выполнять сенсорно-ёмкостные функции.

Примечание: Если вы хотите узнать больше о теоретических основах и практическом применении сенсорно-ёмкостных датчиков, советую ознакомится со следующими ссылками:

Расположим один 2.7MОм резистор снизу самого правого согнутого штыря и протолкнём ножки через отверстия (как на первом изображении). Теперь перевернём плату и протолкнём один вывод резистора обратно в следующее отверстие (как показано на втором изображении). Припаяем нижнюю ногу резистора к отверстию, а верхнюю ногу резистора к выводу штыря. После чего прикрепим 7cm провод на этот штырь (как видно с третьего изображения).

Повторим процесс со всеми резисторами и проводами, припаяв их на места. Нижнее ножки резисторов должны сформировать одно длинное соединение.

Совет: Выбирайте чередующееся цвета для проводов — это позволит проще производить соединение в последующих шагах.

Шаг 5: Припаиваем кнопки

Начнём с размещения кнопок и резисторов на плате, как на первом и втором изображениях. В моём случае использовал 2.2кОм резисторы, но можно использовать любой резистор со значением между 2кОм и 10кОм.

Перевернём плату и припаяем всё на свои места. Изображение 3 объясняет, какие различные соединения вам нужно будет сделать:

  • синяя точка – обозначает ножку кнопки, что необходимо припаять на плату;
  • розовaя точка – обозначает ножку резистора, которую необходимо припаять на плату;
  • красная линия означает — вам следует спаять две точки в одно соединение;
  • чёрная линия обозначает провод, что будет идти от одной ножки кнопки через отверстие в плате, что потом соединится со штырём на другой стороне.

Если всё спаяно правильно, две самые левые кнопки позволят изменять октавы, в то время как самая правая кнопка позволит включать LDR сенсор.

Шаг 6: Припаиваем LDR и LED

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

Совет: Любой резистор в интервале между 330 Ом и 5кОм будет хорошим решением для 5mm LED.

Теперь расположим LED, LDR и резисторы (4.7K для LDR) в нужных местах. Перевернём плату и припаяем всё. Третье изображение пояснит, какие различные соединения следует выполнить:

  • коричневые точки – выводы LDR, что следует припаять на плату;
  • розовая точка – ножка резистора, что следует припаять на плату;
  • оранжевые точки – выводы LED, что необходимо припаять на плату;
  • красная полоса – вам нужно спаять две точки в одно соединение;
  • чёрная полоса – провод, что будет идти от вывода резистора через отверстие платы, что потом будет соединяться со штырём.

Примечание: Перед припаиванием LED, убедитесь в том, что полярность светодиода верная. Положительный вывод LED следует соединить с резистором, а отрицательный вывод с землей.

Шаг 7: Тестируем все соединения

Сейчас хорошее время протестировать удачно ли пропаяны соединения кнопок, LDR и LED. Это последняя возможность исправить ошибки, советую вам загрузить прикрепленный код и запустить программу. Скопируйте/ скачайте архив и загрузите Arduino_Test_Fixture_Code на плату Arduino.

Если всё удачно и тест завершён, можете двигаться к следующему шагу. Если нет, еще раз проверьте пропаянные соединения на плате. Мультиметр лучше держать под рукой, говорю это по своему личному горькому опыту.

Шаг 8: Завершение работы с платой

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

Перевернём плату и отрежем провода нужной длины. Припаяем их к штырям, что заходят в разъемы Arduino. Прежде чем начать использовать MIDI контроллер, сначала нужно протестировать его соединения с помощью тестового скетча Аrduino_Test_Fixture_Code_2. Загрузите скетч, откройте последовательный порт и прикоснитесь к «чувствительным» штырям на плате. Если вы увидите текст ‘Note x is active’ для каждого штыря, во время касания, все выводы работают корректно.

Шаг 9: Преобразуем Arduino в MIDI устройство

После того, как плата готова, пришло время преобразовать Arduino в MIDI контроллер, который будет распознаваться музыкальными программами, такими как Ableton и Fl Studio или даже другими MIDI устройствами. Процесс состоит из двух шагов:

  1. Изменить текущие встроенные программы на Arduino Uno на MIDI совместимые программы;
  2. Загрузить MIDI скетч на Arduino.

Начнём с первого пункта. По условию в Arduino загружена прошивка usb-последовательный порт, что позволяет Arduino обмениваться сообщениями с ПК и Arduino IDE. С новой программой DualMoco, добавиться второй режим, что позволит Arduino выступать в роли MIDI устройства.

Будем использовать программу FLIP и следуя инструкции изменим прошивку Arduino. Работоспособный файл вы найдете в архиве в папке Firmware — файл DualMoco.hex.

После загрузки новой прошивки, переподключите Arduino к ПК. Если всё пройдёт успешно, Arduino не должен будет обнаруживаться Arduino IDE, потому что новая программа находится в режиме (MIDI mode). Откройте музыкальную программу, что способна записывать MIDI и проверьте, чтобы Arduino с именем MIDI/MOCO for LUFA отображалась над MIDI настройками, как вы можете видеть на 1-ом изображении.

Шаг 10: Производим последнее приготовления

Особенность DualMoco в том, что у неё есть второй режим — usb-последовательный порт, что позволяет загружать скетчи с Arduino IDE, точно также, как при обычной прошивке. Чтобы перевести Arduino во второй режим, соедините два ISCP вывода вместе, как показано на 1 и 2 изображении. Вы можете либо использовать кусочек провода или маленькую перемычку, как показано на изображениях. Теперь отключите USB кабель на несколько секунд от Arduino и переподключите его, Arduino должен обнаружится в Arduino IDE.

Примечание: Когда вы захотите переключится из режима usb-последовательный порт в MIDI режим, удалите перемычку с ISCP выводов, как показано на третьем изображении и переподключите Arduino к ПК.

Пришло время загрузить действующий скетч в Arduino, Arduino_Final_Code. Скачайте его, переведите Arduino в usbпоследовательный порт режим и загрузите код. Если необходимо точная настройка пороговой величины, поэкспериментируйте со значениями THRESHOLD и RES . После того, как все заработает, как и ожидалось, поменяйте текущую строку 17, с:

boolean midiMode = false; // if midiMode = false, the Arduino will act as a usb-to-serial device

boolean midiMode = true; // if midiMode = true, the Arduino will act as a native MIDI device.

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

  1. Загрузим финальный код в Arduino.
  2. Извлечем USB кабель с Arduino.
  3. Переключим Arduino в МIDI режим удалив перемычку с выводов ISCP.
  4. Установим USB кабель в Arduino.

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

Шаг 11: Припаиваем скрепки на джампепы

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

Процесс припайки скрепок к проводам довольно прост:

  1. Отрезаем штекер с одной стороны провода;
  2. Зачищаем провод от изоляции на 5 мм;
  3. Припаиваем зачищенный провод к скрепке;
  4. Повторяем для всех 12 скрепок.

Примечание: Скрепки не должны быть покрыты никаким покрытием (краской или пластиком).

Шаг 12: Закрашиваем шаблон

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

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

Источник

Оцените статью