我怎么接收和使用MATLAB从midi设备NoteOn消息吗?
5视图(30天)
显示旧的评论
我一直使用MATLAB和音频工具箱来实现一个程序,从2 midi键盘和循环读取在各自的音频文件的注意。
我使用一个独立的mididevice对象为每个键盘,我能够看到的midi消息被发送这两个使用midireceive(设备)。
我想要一个循环接收midi消息不断,当有一个NoteOn消息(即一个键被按下),我想要一件声音文件重复,直到NoteOff消息(即注意释放)。我在想,如果消息= = noteOn然后注意= = 60循环。
件我怎么把NoteOn NoteOff消息和注意值为变量使用一个if语句上面吗?提前谢谢,请不要犹豫地问如果你有任何问题。
0评论
接受的答案
Swatantra多个
2021年4月9日
嗨,乔,
我理解,你想访问消息,注意从“midimsg”接收和使用if语句。
您可以参考“midimsg”对象的属性。在这种情况下,感兴趣的属性“类型”的消息,“注意”的价值。
MIDI消息记录的属性:
文档链接
注意,属性存储为一个枚举类型,可以直接对比如下所示:
> >公司= midimsg (件的NoteOff”1,60岁,64年,1)
公司=
MIDI信息:
NoteOff通道:1注意:60速度:64时间戳:1(80 3 c 40)
“公司”“类型”的对象
> > msgs.Type
ans =
midimsgtype枚举
NoteOff
类型和注意价值可以检查如下
> > msgs.Type = = midimsgtype.NoteOff
ans =
逻辑
1
> > msgs.Note = = 60
ans =
逻辑
1
希望这有助于