0

我从 osa Electronics 买了这个: 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

但是,当我从他们的 webapge 运行一些测试应用程序时,我没有得到任何输入或输出。像这个:

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], [0, 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 失败(地址已在使用中)无法初始化 pigpio 库

但是我也一直在命令行中运行这个:

aplaymidi -p f_midi myMidiTune.mid

没有错误信息,但我的数码钢琴没有 midi 输出...

我该如何调试呢?

4

0 回答 0