質問: おーぷんMIDIぷろじぇくとのMIDIIOライブラリ1.1を使用し、電子ドラムを叩き、MIDI出力をしようと考えています。サンプルの3秒間ドの音を鳴らすことはできましたが、ライブラリを使用したプログラムを試行錯誤しながらビルドしてますが、ローカル関数の定義が正しくないなどエラーが出てわかりません。 目的は電子ドラムを叩いて、そのMIDIを獲得することなんですが、それはこのMIDIIOライブラリ1.1で実現は可能なんでしょうか。 よろしくお願いします。
回答: > > 電子ドラムを叩いて、そのMIDIを獲得する > > > この辺りの言い方が若干曖昧に感じます。 (1) 電子ドラムとパソコンをMIDIケーブルでつなぐ (2) アプリケーションからパソコン内部のMIDI-INからデーターをリアルタイムで読み込む ここまではこのライブラリーで実現可能と思います。「MIDIを獲得する」というのが「自分で演奏した内容をリアルタイムにMIDIデータとして読み込むこと」ならこれでできるわけですが、ただ読み込むだけではそのデータは電子の海に消えてゆくだけなので、それだけではなく何か有用なことをしたいはずです。 (A) 演奏データ(MIDIデータ)を後から再現できるように(MIDIファイルなどに)保存する (B) 演奏データ(MIDIデータ)をシンセサイザーへ出力して音を出す こうしたことを狙っているのではないでしょうか?本家のページをちょっと見てみましたが、ダウンロードして中のドキュメントをみないとどんな機能があるかわかりませんでした。ドキュメントをよく読んでみてください。なお、(B)はWindowsの内臓シンセサイザーをOPENしてそこへMIDIメッセージを送信する例が載っているので多分できると思います。 追記: 回答コメントを拝見した上での追記です。 ドキュメントをみてないので推測になりますが・・・このライブラリーにはもしかしたらMIDIファイルへ出力する機能ならあるかも知れませんが、「楽譜」に起こす機能はまずないと思います。 ここでいう楽譜には2種類考えられます。 (C1) 所謂五線譜 (C2) 一般のMIDI編集ソフトによくあるピアノロール 機能の実現という面では(C1)は非常に高度です。任意のタイミングで発音・消音するものを五線譜に起こすことは機械的にやるのが難しいためです。一方(C2)なら一旦(A)でMIDIファイルを出力すれば別途MIDI編集ソフトでそれを読み込み表示できます。フリーのMIDI編集ソフトも色々あると思いますし、このプロジェクトでも世界樹というソフトが配布されているのでそれも使えると思います。 いずれにせよ、MIDIファイル(多分FORMAT0/1どちらでもOKと思います)を出力する機能があるかどうかが要点になると思います。その機能があるかどうか確認してみてください。