Оглавление:

Превратите барабаны рок-группы X-box в автономные электронные барабаны Midi: 4 шага (с изображениями)
Превратите барабаны рок-группы X-box в автономные электронные барабаны Midi: 4 шага (с изображениями)

Видео: Превратите барабаны рок-группы X-box в автономные электронные барабаны Midi: 4 шага (с изображениями)

Видео: Превратите барабаны рок-группы X-box в автономные электронные барабаны Midi: 4 шага (с изображениями)
Видео: Приказ комиссара. Warhammer 40k 2024, Июль
Anonim

Мне посчастливилось получить бывшую в употреблении ударную установку x-box, она немного грубой формы, без лопастей, но ничего, что нельзя было бы починить. Я превращаю ее в отдельную электрическую ударную установку. Считывание аналогового значения с пьезодатчика и преобразование его в команды MIDI.

Текущее оборудование состоит из RPI-Zero, mcp3008, который подключен к оригинальным пьезодатчикам на установленных барабанах.

Запасы

MCP3008 + IC socket x-box барабанный комплект, или 5 пьезо, установленных на какой-либо поверхности. Звуковая карта rpi zerousb для динамиков с усилителем rpisimple, некоторые провода и печатная плата. 6 резисторов 10M Ом и несколько штекерных разъемов для платы разъема piez

Шаг 1. Подготовьте пьезоэлектрический датчик

Image
Image

Сначала я взял его на себя и нашел все пьезодатчики, проводку и создал плату с резистором 1 МОм между 2 проводами каждого пьезо.

В тарелке есть интересная дополнительная схема. Забрал деталь, оставив только датчик. Я действительно хочу однажды выяснить, каков выходной сигнал этой схемы, Эта часть тестирования и работы проводилась на arduino uno.

Шаг 2: напишите код

Я немного починил x-box, починив все сломанные детали. Убрал разваливающиеся колодки.

И, наконец, получил код, который достаточно хорошо работает для моего ребенка - еще не идеально.

Исходный код, который я хотел использовать, и тот, который помог мне разработать свой, - это

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

Вы можете скачать код в прикрепленном файле - обратите внимание, что их 4.

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

и 3 программы, которые я упоминаю в видео, - это loopbe1, последовательный миди-мост без волос и VMPK.

Следующий большой шаг - перевести его на работу на Raspberry Pi.

Шаг 3. Заставьте его работать на Raspberry Pi

Image
Image

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

Я потратил несколько хороших часов, чтобы заставить его работать, и, наконец, сделал. Основная проблема заключалась в том, чтобы заставить midi работать на Rpi. Для этого я установил fluidsynth, используя этот отличный учебник.

sandsoftwaresound.net/qsynth-fluidsynth-ras…

Я настраиваю Arduino для отправки последовательных команд, а затем прослушиваю их с помощью python serial на малине и отправляю их на midi через fluidsynth.

Мне даже удалось скачать подходящий sf2-файл для ударных.

Как видите, Кесему это нравится. Arduino использовал тот же код, и для rpi я написал прикрепленный код, мне не удалось прикрепить файлы sf2, но их можно легко найти с помощью Google.

Шаг 4: оставьте его в покое

Сделать это стоять в одиночестве
Сделать это стоять в одиночестве
Сделать это стоять в одиночестве
Сделать это стоять в одиночестве

Самым большим шагом к тому, чтобы заставить его работать автономно, было удаление Arduino и попытка заставить его работать немного быстрее. между "хитом" и проигрываемым на миди звуком были заметные промежутки. Итак, чтобы избавиться от Arduino, мне понадобилась аналоговая альтернатива, и здесь на помощь пришел mcp3008. на изображениях вы можете увидеть, что я создал для него разделительную доску, а в видео вы можете найти все подробности о шагах. Mcp3008 использует spi для связи, я подключил 2 и провел несколько тестов, у adafruit есть отличная библиотека для mcp3008 для python. снова инструкция в видео. Я использовал нулевой rpi из-за его размера и добавил внешнюю звуковую карту USB для вывода звука. Для воспроизведения звука я использовал простой динамик со встроенным усилителем. Текущий код также прилагается, и он запускается на собственном rpi и установлен в качестве службы, поэтому он может запускаться при загрузке. По-настоящему крутая функция, которую я добавил, заключалась в том, чтобы подключить небольшую кнопку сброса, которая была на коробке, и использовать ее для выключения системы, поскольку я работаю без экрана. Текущий код еще не идеален, и я продолжаю попытки улучшить его и становлюсь лучше, поэтому, если у вас есть идеи, как заставить его работать еще лучше, когда дело доходит до midi - я был бы рад услышать.

Рекомендуемые: