1

数日前、私は 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 組み込みをインストールし、クロスコンパイルして私のビーグルボーン(チュートリアルにはいくつかの修正が必要です。必要な場合は「修正済み」ドキュメントを用意しています)と、ARM MPUで使用するためにALSAをコンパイルするための次のもの:omappedia.org/wiki/ALSA_Setup

基本的に、最終的にプログラムをビルドしてビーグルボーン ブラックに展開した後、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 で正常に動作することを確認できました。デスクトップでアプリケーションを実行すると、問題なく値を受け取ります。Debian での BeagleBone の機能については確信が持てません。

上記のコードは、Ubuntu と Windows デスクトップの両方で実行した場合に 2 つの入力ソースが使用可能であるのに対し、Beaglebone で実行した場合は使用可能な入力ソースがないことを示しています。

私の質問: ライブ MIDI 入力を読み取るために必要なポートを Beaglebone に検出させるにはどうすればよいですか?


編集:

midimate をビーグルボーンに接続すると、/dev/ リストにmidi1エントリが生成されます。しかし、私はそれを何とどのように行うべきかわかりません。

私が使用するRtMidi関数は、入力として符号なし整数のみを受け入れることができるため、文字列「midi1」を引数として提供することはできません:(

4

1 に答える 1

0

お使いのディストリビューションは、ブート時にsnd-seqおよびカーネル モジュールをロードせず、オンデマンドでロードするメカニズムもありません。snd-seq-midi

それらをファイルに追加し/etc/modulesます。

于 2015-01-15T17:46:28.967 に答える