Can not receive onMidiNoteOn() event
Pre-compiled sample project (https://play.google.com/store/apps/details?id=jp.kshoji.driver.midi.sample) can receive all onMidiNoteOn() events. But I clone sample project source files from Github, and compile it, this sample app seems to not able to receive all onMidiNoteOn() events.
おそらく、自分でコンパイルしたアプリは、onMidiNoteOff()イベントは全て取れているように見えます。 onMidiNoteOn()は鍵盤を複数同時に押した時のみ取れるようです。 鍵盤を押して、そのまま離した時はonMidiNoteOn()は取れずに、onMidiNoteOff()のみ取れます。
コンパイルに使ったソースは、今日cloneしたものです。
繋いでいるシンセは同じで、アプリだけダウンロードしたものとコンパイルしたもので比較して、onMidiNoteOn()の挙動が違うので、どこかでバグが入ったのではないかと思います。
最新ソースに含まれるバグなんですかね? Mavenリポジトリのものを利用すると解消しました。
repositories { maven { url 'https://raw.github.com/kshoji/USB-MIDI-Driver/master/MIDIDriver/snapshots' } maven { url 'https://raw.github.com/kshoji/javax.sound.midi-for-Android/master/javax.sound.midi/repository' } }
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'jp.kshoji:midi-driver:0.1.2' }
返信が遅くなりまして申し訳ありません。 mavenにアップロードしてるパッケージは同じコード由来のもののはずなのですが、動作が違うのですね。 不思議な動きをしているようで、まずは動作確認してみます。 ちなみに最新というのはmasterブランチのもので良いでしょうか?
あ、確認ありがとうございます。
不具合が出たものはGitHubからcloneしたそのままのコードだったので、masterだと思います。
masterブランチの最新でサンプルアプリを試してみたのですが、正しく動いているように見えました。 こちらの環境はNexus6(Android 5.1)とUSB OTGケーブル、Alesis QX25です。
Google Playに挙がっているサンプルアプリは2014/08/29にコンパイルしたもので、 MIDI受信周りの挙動が変わるということであればMidiInputDeviceが原因だと思うのですが、去年8月以降のコミットで影響のありそうな変更は見当たりませんでした。 他の箇所が影響している可能性もあるので、引き続き見ていきます。