Serial midi converter не запускается

Обновлено: 04.07.2024

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

Можно вопрос? Почему-то Win-10 определяет прошитую Ардуину (прошивал на другой машине в среде Linix) как неизвестное USB2.0-Serial. Так-с. Этот вопрос решил - для китайских клонов нужен драйвер для CH340.
Теперь просто как USB-SERIAL CH340 (COM3) видится. Так-с. Этот вопрос решил - для китайских клонов нужен драйвер для CH340.
Теперь просто как USB-SERIAL CH340 (COM3) видится. У вас оно так и будет видиться в системе как ком-порт. Serial MIDI Converter по идее должен помочь. Но будет ли оно работать с powersdr не знаю, не пробовал. Костыль типа Serial MIDI Converter не нужен. Виндовс должен определить категорию - Аудиоустройство
Это не MIDI C Thetris и другим софтом работать не будет. Костыль типа Serial MIDI Converter не нужен. Виндовс должен определить категорию - Аудиоустройство
А вы правы, похоже! Много написал, потом стер и пошел искать в ящике Uno и читать про control surface master ). Жаль, не попался мне он раньше. Boards with a single-purpose USB-to-TTL chip
Arduino Nano, Arduino Duemilanove, Chinese Uno & Mega clones .
Whereas the ATmega16U2 chip is programmable, most other USB-to-TTL chips are single-purpose, so you can't flash them with the HIDUINO MIDI firmware.
These chips include FTDI chips (Nano and Duemilanove) and the CH340G or CP2102 (both popular on Chinese "Arduino" clones).
While MIDI over USB is not supported on these boards, you can still use Hairless. Just instantiate a HairlessMIDI_Interface at the top of your sketch.

Александр, спасибо. Я использовал предыдущую библиотеку того же автора, эта гораздо интереснее. Если удастся запустить на клонах с ch340, коих большинство, будет бомба.

Не, не получится нано без костылей использовать (
Александр, ваша плата, судя по фото на али, скорее всего использует native usb support, т.е. отдельного контроллера порта нет, все в меге 32u4. В любом случае, вариант очень интересный.

А вообще в сети навалом самопальных миди-контроллеров на ардуинах, заточить их под управление Powersdr/Thetis не проблема и это гораздо дешевле диджейских пультов.

Тезка здравствуйте. Я так понимаю, что прошитую Ардуино подключают к USB порту и программа PowerSDR определяет ее как консоль? Извините если наивные вопросы, так как с консолью не работал. И еще. Эти энкодеры, потенциометры, все это богатство(органы управления) подключаются/определяются программно самой PowerSDR? Александр, ваша плата, судя по фото на али, скорее всего использует native usb support, т.е. отдельного контроллера порта нет, все в меге 32u4. В любом случае, вариант очень интересный.

Появились просьбы показать конструкционную. Она простая, корпус пр_во Россия, с местного радиомагазина, от туда же и кнопки на резьбе, мелкие энкодеры - 20 импульсов.
Большой энкодер брал здесь . Четыре контакта.


Александр, UC8U, а не было ли мыслей сделать так же, только для УДАЛЕННОГО трансивера?

ЛОКАЛЬНО:
- комп с софтом, имитирующим "морду" удаленного аппарата
- пульт (консоль) с валкодером, несколькими кнопками и ручками (RIT-XIT, громкости) - подключено к компу по USB

УДАЛЕННО:
- трансивер - подключен к компу (там какой-то софт) по CAT или USB


В "идеале", софт на локальной стороне "выбирает" модель аппарата, отрисовывает морду.
Юзер крутит волкодер и ручки, смотрит на локальный монитор - на удаленном аппарате все крутится.
Давно обсуждаю со многими, никто не реализовал пока. а, ведь, это ПРОРЫВ на рынке,
без преувеличения.

"Клякать мышкой" на удаленной стороне (TeamViewer, AnyDesk) и даже на локальной стороне - не проблема.
НО! Нужны тактильный ощущения ТУТ, хочется крутить ручку ТУТ

Понимаю, есть проблема с CW, но есть несколько способов, как решить.

Expert Electronics сделал первую клиент-серверную версию для СанСдр, но она кривоватая. Ждем релиз.
А пока ждем, может, кто-то бы взялся создать вот такое.

Добрый день , нашел на просторах интернета вот такой проект.
Решив не бросаться сразу на амбразуру попробовал просто передать MIDI с помощью официального примера через Serial MIDI Converter и midi_yoke всё завелось на скорости 19200.
Но когда попробовал пример из первой ссылки столкнулся с тем что данные на любой скорости передаются с ошибками. По факту доходит не читаемая белиберда
Подозреваю что дело в функции Serial.print используемой в midi drum . Если заменять Serial.print на Serial.write как в примере то ошибки передачи пропадают, но передаются сразу все ноты.
Буду рад любым советам или просто соображениям по теме

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

В setup у вас serial инициализируется на 57600, в serial midi converter ту же скорость выставили?

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

Mihart ,большое спасибо, сейчас попробую.

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

Попробовал как Вы советовали на скорости 57600 в serial monitor приходит 1542012713820127 .

если включить Serial_MIDI_Converter_ RX мигает красным , (что не есть хорошо т.к. когда все нормально он должен мигать зелёным),адио редактор миди сигнал не получает.

короче буду матчасть учить :) так с разбегу не разобраться

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

Буду дома, попробую у себя.

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

спасибо за помошь)

когда меняеш Serial.print на Serial.write нота передаётся на скорости 19200 , но в скетче с барабанами такая замена приводит к тому что передаются все 6 нот сразу)

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

К сожалению MIDI Converter у меня не заработал, застопорилось на выборе MIDI Output Port.

На мой взгляд MIDI Converter ждет байтов, поэтому считаю, что точно нужно менять Serial.print на Serial.write.

И самое главное, что хотел уточнить, чтобы еще попытаться помочь. Когда вы пишете что все 6 нот передаются сразу вы что имеете в виду:

1. что по всем барабаном одновременно ударили?

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

3. Или уже midi converter собирает последовательные команды и единой пачкой выдает их в аудио редактор?

Потому как если у вас первая ситуация я бы смотрел строчку 79

У вас аналоговые пины к чему подключены? Такое впечатление что там плюс висит, который слету превышает PadCutOff. Пины если висят в воздухе могут собирать наводки. Их лучше подтянуть резистором к земле.

image

В один из дней, возвращаясь домой, возле мусоропровода в подъезде я увидел старую детскую игрушку-синтезатор. Прошел мимо, так как брать с мусорки «грешно», но в душе захотелось утащить ее оттуда. Уже поздно ночью, где-то часа в 2 я решил посмотреть, не стоит ли она все еще там. И да, она все еще была там! С виду она был вполне целой и чистой, так что никакой брезгливости, чтобы не забирать ее не было. Так что да, я ее забрал.

Давно хотел себе пианино, я не профессиональный музыкант, но просто побаловаться — почему нет? Покупать что-то «ради побаловаться» меня «душила жаба», а тут — халявная игрушка. Когда я ее забирал с мусорки, то даже мысли не было пользоваться ей как детской игрушкой, была сразу мысль: «О-о-о…, хорошая база, чтобы попробовать сделать MIDI-клавиатуру».
Так как у меня уже есть некоторый опыт общения с профессиональными клавишными инструментами и MIDI-клавиатурами, то я сразу понимал все минусы моей идеи. То есть игрушка по факту так игрушкой и останется. На базе нее невозможно будет реализовать силу нажатия клавиш. Сами «легкие» пластиковые клавиши, которые к тому же еще и неполноразмерные не дадут возможности что-то на ней достойно исполнять.

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

После разборки пришло понимание, почему люди ее выкинули. У игрушки (не знаю от чего: от времени, от китайского качества комплектующих или жесткой эксплуатации) во-первых: развалились встроенные динамики, а во-вторых: в разъеме наушников торчал отломанный разъем от них, так что вытащить его не было практически никакой возможности. Наверное, после того как игрушка перестала играть встроенными динамиками, ей пользовались с наушниками, а потом после того как и там сломали разъем – просто выкинули.

Внутри игрушка-синтезатор состояла из трех плат, которые между собой были спаяны шлейфом проводов. Центральная плата, которая отвечала за генерацию звука и прочего, была сразу же отпаяна от двух других плат и отложена в сторону. На двух других платах находились контакты для кнопок на лицевой панели игрушки и непосредственно самих клавиш пианино. К ним я припаял разъемы PBS, тем более что шаг отверстий на платах как раз был 2.54 мм.



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


На картинке в желтых кружочках цифры – это номера контактов «горизонталей», а цифры на клавишах – номера контактов «вертикалей» в разъеме PBS-13 на плате клавиатуры.




После этого все это было закинуто в угол и пылилось целый год. И тут наступил период самоизоляции… Стало скучно и захотелось что-то поделать своими руками, тем более что ходить некуда, да и нельзя…

В итоге решил все-таки попробовать хоть немного доделать эту игрушку. В качестве основы для контроллера взята плата Arduino, а так как количество цепей клавиш больше, чем количество выводов Arduino UNO, то решил использовать сдвиговые регистры 74HC595 и 74HC165. В итоге получилась вот такая схема.


Схема была изначально собрана на беспаечной макетной плате. Для проверки работоспособности схемы (что нигде нет ошибок в соединениях) разработана тестовая программа, которая показала, что вроде как все работает. Алгоритм тестовой программы был простой: включается один из выходов микросхемы сдвигового вывода и считываются в цикле значения с микросхемы сдвигового ввода, нажимая при этом клавиши. На первый взгляд ничего не предвещало беды… и вроде бы все прекрасно работало…


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


Такой «бутерброд» из плат обусловлен тем, что две платы игрушки (одна с кнопками, а вторая с клавиатурой) расположены на разном уровне и я, прежде чем паять все это подумал: «а нельзя ли это как-то соединить между собой, используя те компоненты, которые есть у меня дома, чтобы выглядело более или менее хорошо»? Так и получилась эта конструкция из двух плат, соединенных между собой разъемами. С моей точки зрения для домашнего варианта, когда сидим в самоизоляции, получилось достаточно хорошо. Пришлось только обрезать макетную плату и чуть-чуть доработать корпус игрушки, чтобы можно было подключать кабель USB в плату Arduino.


Осознание что устройство работает не совсем так, как я хотел, пришло тогда, когда доработал тестовую программу. Алгоритм был простой: по очереди включить каждый выход микросхемы 74HC595, считав при этом состояние входов у микросхемы 74HC165, и записать результат в отдельные переменные. Всего на клавиатуру подключено 5 выходов 74HC595, поэтому в итоге я получил 40 бит (5*8) данных после этого опроса. Строка из 40 бит выводилась в консоль, и нажимались клавиши, чтобы посмотреть, как устройство обрабатывает одновременные нажатия нескольких клавиш.


Тут-то и всплыла проблема: если нажимать по одной клавише, то все было отлично, но при попытке нажать более 2-х клавиш одновременно возникала ситуация, когда невозможно было предугадать, что будет прочитано. Результат мог быть правильным при одном сочетании, а при другом мог быть совсем непредсказуем. Проблема была в том, что не была учтена особенность данной схемы. При нажатии нескольких клавиш одновременно происходит замыкание не только нескольких вертикалей сканирования клавиатуры (это допустимо), но и могут быть замкнуты через клавиши несколько горизонталей (что никак не допустимо). Более подробно об этой проблеме и о способах ее решения можно почитать вот здесь.

Я выбрал «кардинальное решение» проблемы, а именно: решил, что на каждую клавишу в клавиатуре будет поставлено по диоду.

В голове я уже мысленно начал думать, как мне придется перерезать дорожки на плате и ставить в разрыв диод в SMD корпусе. Залез в свои запасники и увидел, что диодов в SMD корпусе в таком количестве у меня просто нет (не забываем, что все мы сидим на самоизоляции и поход в магазин за радиодеталями не очень возможен – так как это точно не предметы первой необходимости). Немного расстроившись, решил более внимательно посмотреть на плату: может быть есть возможность поставить на часть дорожек выводные диоды (их тоже какое-то количество у меня было). И тут я увидел, что у каждой клавиши, есть перемычка (плата односторонняя) и схема сделана так, что вместо этой перемычки можно поставить по диоду. Сразу же подумалось – даже и ничего резать не надо, надо только везде поставить вместо перемычек выводные диоды. Такого количества выводных диодов у меня тоже не было. В голове мелькнула мысль: «а может быть поставить светодиоды»? Работа схемы идет на уровне +5V и если поставить красные светодиоды, у которых минимальное падение напряжения (среди светодиодов), то в итоге должно хватать логического уровня для правильного определения: нажата клавиша или нет.


С этой мыслью я снова полез в свои запасы и выгреб откуда только можно было красных светодиодов. Их оказалось ровно столько, сколько клавиш на клавиатуре! Это знак, подумал я, и впаял для пробы несколько светодиодов вместо перемычек. Результаты тестирования показали, что решение рабочее. После этого запаял остальные светодиоды вместо перемычек. Тестовая программа показала, что можно нажать хоть все клавиши одновременно, и они все считываются правильно.


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

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

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

Теперь, когда я добрался до него и внимательно прочитал, то понял, что моя плата Arduino NANO не подойдет для этого решения, так как у нее COM порт был реализован на базе микросхемы CH340. Для использования прошивки по ссылке выше подойдут только те платы, где USB-порт уже есть на контроллере (например: AtMega32u4) или же общение по COM-порту сделано не на микросхемах преобразования типа FT232RL и им подобным, а на микроконтроллерах AtMega. Поэтому прошивка в плате должна отдать данные в формате MIDI в COM порт, а на компьютере придется установить и настроить программное обеспечение, которое будет эти данные перехватывать и передавать в виртуальный MIDI-порт.
Алгоритм считывания клавиш и формирования MIDI-команд у меня получился следующий:


Программа для контроллера Arduino NANO выглядит сейчас так.

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

Остановлюсь чуть более подробно на программном обеспечении для компьютера и тех проблемах, с которыми я столкнулся. Проблемы возникли, просто из-за отсутствия нормальной документации на это программное обеспечение. Итак, для того, чтобы компьютер успешно мог принимать MIDI-данные с такого устройства как у меня, понадобится две программы: loopMIDI и Serial-Midi Converter. Для программы Serial-MIDI Converter дополнительно нужно установить Java, если на компьютере она не установлена.

Запускаем программу loopMIDI и создаем два виртуальных порта. Я назвал их «Arduino IN» и «Arduino OUT». Эта программа как раз и будет виртуальным MIDI-устройством.


Далее запускаем Serial-MIDI Converter и при запуске проходим процесс ее настройки. К сожалению, это приходиться делать каждый раз при запуске, но это не очень страшно, делается буквально в четыре нажатия на клавиатуре. Номер COM-порта может быть другой, он появляется на компьютере при подключении платы Arduino NANO. Скорость порта задается в прошивке Arduino NANO. Красными стрелками обозначены мои параметры, при которых у меня все работало.


Собственно на этом процесс настройки завершен и можно уже использовать какое-либо программное обеспечение, которое будет воспроизводить звуки, принимая нажатия клавиш от устройства. В настройках программного обеспечения необходимо выбрать в качестве входа «Arduino_OUT». На картинке ниже пример настройки Kontakt Player.


Работает в конечном итоге это вот так:

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

  1. Оставить оригинальный корпус.
  2. Поставить исправные динамики и сделать усилитель для них.
  3. Сделать так, чтобы она работала в режиме «детской игрушки» без подключения к компьютеру, то есть, чтобы сама могла играть звуки.
  4. Сделать возможность подключения FootSwitch (та самая педаль на пианино внизу), чтобы можно было сделать удержание звука после отпускания клавиш, как на нормальном инструменте.
  5. Добавить в прошивке поддержку клавиш, которые сейчас не опрашиваются и не задействованы.
  6. Подключить в схему переменный резистор, который остался физически на панели игрушки-синтезатора, и добавить его функциональность в прошивку.

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

Для реализации пункта 3 в интернете было найдено решение под названием SamplerBox. Суть проекта в том, что можно подключать любую MIDI-клавиатуру к плате Raspberry Pi, которая обрабатывает MIDI-команды с клавиатуры и воспроизводит звуки или переключает инструменты и т.д. Остается только поставить плату Raspberry Pi внутрь корпуса игрушки, без возможности замены SD-карты (не разбирая корпус), настроить кнопки на корпусе игрушки так, чтобы они переключали инструменты и этого будет достаточно, чтобы оставить этот проект в таком виде.


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




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

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

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
















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


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


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


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


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

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

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

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


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

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


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

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


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

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


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


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



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


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


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

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


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

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

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


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


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


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





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

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

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


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


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.


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


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


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

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


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


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


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

Читайте также: