微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用用于 RPi 的 midi 板在 Raspberry Pi 上设置 midi 的问题

如何解决使用用于 RPi 的 midi 板在 Raspberry Pi 上设置 midi 的问题

我从 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

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

我该如何调试?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。