问题描述
我从 oSAElectronics 买了这个: https://www.osaelectronics.com/product/midi-board-for-raspberry-pi/
我按照此处的说明进行设置: https://www.osaelectronics.com/learn/setting-up-raspberry-pi-for-midi/
按照设置并在命令行中运行后:
python
import mido
mido.get_output_names()
它输出的似乎是正确的:
['Midi Through:Midi Through Port-0 14:0','f_midi:f_midi 24:0']
以及当我从命令行运行它时:
amidi -l
输出:
Dir Device Name
IO hw:2,0 f_midi
然而,当我从他们的网页运行一些测试应用程序时,我没有得到任何输入或输出。 像这样:
import mido
from mido import MidiFile
from mido import MetaMessage
port = mido.open_output('f_midi')
mid = MidiFile('mymidifile.mid')
while True:
for msg in MidiFile('mymidifile.mid').play():
port.send(msg)
或者从这个(我试图打印味精,但它甚至不会打印它。所以似乎没有进入while循环但没有错误消息)
import mido
import pigpio
from numpy import interp
pi1 = pigpio.pi()
port = mido.open_input('f_midi') # open USB port
while True:
try: # This filters out all non-note data
for msg in port.iter_pending(): # if there is a message pending
print(msg)
if(msg.type == 'note_on'): # if it is Note On message
out = interp(msg.veLocity,[0,127],255])
#scale veLocity from 0-127 to 0-255
# filter the data by note number
if(msg.note == 53):
pi1.set_PWM_dutycycle(2,out)
elif(msg.note == 55):
pi1.set_PWM_dutycycle(3,out)
elif(msg.note == 57):
pi1.set_PWM_dutycycle(4,out)
else: # if the message is not Note On (e.g. Note Off)
if(msg.note == 53):
pi1.set_PWM_dutycycle(2,0)
elif(msg.note == 55):
pi1.set_PWM_dutycycle(3,0)
elif(msg.note == 57):
pi1.set_PWM_dutycycle(4,0)
except AttributeError as error:
print("Error excepted")
pass
我注意到 pigpio 守护进程存在一些问题 在我从这个页面下载并安装之后: http://abyz.me.uk/rpi/pigpio/download.html
然后尝试使用以下命令启动守护程序:
sudo pigpiod
我收到此错误消息:
绑定到端口 8888 失败(地址已被使用)无法初始化 小猪图书馆
但是我也一直在命令行中运行这个:
aplaymidi -p f_midi myMidiTune.mid
我该如何调试?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)