几天前我写了关于MIDI和ALSA的问题,但我已经解决了问题并遇到了新的问题。
简短的背景:
我有一个带有debian 7.5的Beaglebone Black。
我的主机是32位Ubuntu 14.10安装。
我正在使用Qt4.8.6进行手臂交叉编译。
我正在尝试创建一个使用触摸屏并从键盘读取MIDI输入的应用程序。我已经使用以下教程(http://embedded.von-kannen.net/2014/05/21/qt-4-8-6-on-beaglebone-black/)来安装Qt嵌入式,因此我可以交叉编译到我的beaglebone(教程需要一些修复,如果有人需要,我已准备好'固定'doc)以及下面的一个编译ALSA以在ARM MPU上使用:omappedia.org/wiki/ALSA_Setup
基本上,在我最终完成程序构建并部署到我的beaglebone black之后,它无法找到接收MIDI信号所需的端口。
我正在使用MidiMate II将我正在使用的MIDI设备连接到我的Beaglebone Black中的HUB上的USB端口。
我有以下代码来检查可用端口( C ++ ):
RtMidiIn *midiin = 0;
// RtMidiIn constructor
try {
midiin = new RtMidiIn();
}
catch ( RtMidiError &error ) {
error.printMessage();
exit( EXIT_FAILURE );
}
// Check inputs.
unsigned int nPorts = midiin->getPortCount();
qDebug() << "\nThere are " << nPorts << " MIDI input sources available.\n";
std::string portName;
for ( unsigned int i=0; i<nPorts; i++ ) {
try {
portName = midiin->getPortName(i);
}
catch ( RtMidiError &error ) {
error.printMessage();
delete midiin
}
std::cout << " Input Port #" << i+1 << ": " << portName << '\n';
}
我可以确认MidiMate与Ubuntu正常运行。在桌面上运行应用程序接收值就好了。我不确定BeagleBone的Debian功能。
上面的代码告诉我在Beaglebone上运行时没有可用的输入源,而不是在Ubuntu和Windows桌面上运行时有2个可用的输入源。
我的问题: 如何让Beaglebone检测到读取实时MIDI输入所需的端口?
编辑:
将midimate插入beaglebone会在/ dev / list中生成 midi1 条目。 但是我不知道该怎么做以及怎么做。
我使用的RtMidi函数只能接受无符号整数作为输入,所以我不能提供字符串“midi1”作为参数:(
答案 0 :(得分:0)
您的发行版在启动时不会加载snd-seq
和snd-seq-midi
内核模块,也没有按要求加载它们的机制。
将它们添加到/etc/modules
文件。