膨大な量の MIDI ファイルを読み込み、そのデータをグループ - ティック (時間)、ピッチ (ノート)、ベロシティ (ボリューム) に抽出しようとしています。抽出されたデータは、さらに音楽を生成するために Recurrent Neural Network に適用されます。
私はライブラリを探していて、python-midi を見つけました。これが私のコードです:
import midi
pattern = midi.read_midifile("pachelbel_canon.mid")
#print out all events
print pattern
#print out all events at tick = 0
print pattern[0]
さまざまなイベント タイプの解釈については、こちらまたはGranroth-Wilding の Web サイトを参照してください。私のターゲット値 (ティック、ピッチ、ベロシティ) は、midi.NOTeOn/OffEvent(ティック = 0、チャネル = 0、データ = [ピッチ、ベロシティ]) として表示されます。
質問 1:
利用可能なチュートリアルやドキュメントがないため、いくつかのテストの後print pattern[0]
、tick == 0 で発生したすべてのイベントが返されることがわかりました。もちろん、すべてのイベントに対して for ループを実行することですべてのデータを取得できます。チャンネル、ピッチなどの他のパラメータを提供してデータを取得する関数。
質問 2: どうやら多くの MIDI / 音楽ライブラリが利用できるようです。python-midi がまともでないと言っているわけではありませんが、もっと良いものがあれば共有してください! できれば、python-midi には存在しない適切なドキュメントまたはサポートが付属しています。私はこの分野に不慣れで、いくつかの推奨事項が大好きです。