Моя цель:
Я хочу написать скрипт на моем Raspberry Pi Zero W, который отправляет MIDI на мой компьютер всякий раз, когда я устанавливаю c соединение на плате GPIO.
Проблема:
Аппаратные средства уже решены, они могут распознавать уникальные нажатия кнопок. Но, похоже, данные на мой компьютер не отправляются. Я пробовал несколько python модулей (например, rtmidi-python
, python-rtmidi
, mido
), но ни один из них не работает так, как мне бы хотелось.
Пытаясь решить эту проблему, я настроил Raspberry на питание от порта питания, поэтому порт USB остается пустым, и когда он загружается, я подключаю кабель к своему P C. Я даже написал сценарий, который постоянно выкрикивает одну и ту же заметку (включая заметки) снова и снова, так как я не мог найти «протокол настройки». Просматривая различные формы, я заметил, что все они были довольно старыми. Новейшая версия rtmidi-python
на GitHub, но, похоже, не имеет никаких настроек.
Вполне может быть, что я все время выглядел неправильно, или что сигнал даже не поступает через USB-кабель, или он не требует настройки. Если да, не могли бы вы дать мне знать или показать, как это правильно сделать.
Обновление
Я превратил Raspberry в "функцию MIDI" ( вот как ). Мой P C, и FL studio это тоже признает. Тем не менее, до сих пор нет действий, когда я пытаюсь сыграть ноту. Этот сценарий проверки порта
import rtmidi_python as rtmidi
midi_out = rtmidi.MidiOut()
for port_name in midi_out.ports:
print port_name
возвращает
Midi Through:0
f_midi:0
Я не могу решить, говорит ли он, что MIDI-сообщения не проходили, или что мой Raspberry говорит на Port0
Решение:
Во-первых, вы должны убедиться, что ваш Raspberry Pi
фактически признан (в данном случае) MIDI gadget
. Тогда не путайте Python
с Python3
, так как они разные, и pip3 install mido
≠ pip install mido
. Кроме того, это хорошая практика, чтобы поддерживать чистоту вашей SD-карты и удалять ненужные модули. Если ваша система действительно запутана, и вы теряете трек даже с pip list
и apt list
(в котором перечислены все ваши установленные модули), вы всегда можете начать заново. Это означает, что вычистите свою SD-карту, и с учетом того, что вы узнали, в этот раз все будет проще.
Кроме того, вам, очевидно, следует проверить данный ответ.
Надеюсь, хотя бы один другой человек видит это, и я могу им помочь:)
Спасибо