3

MIDIイベントを抽象化して、ノートのピッチ/デュレーション/ダイナミック/オンセットを抽出/合成するものが必要です(たとえば、4拍目の大音量のD#四分音符)。

Fluidsynthと臆病さは機能しますが、私は純粋なpythonライブラリを好みます。ここではバインディング以外は何も見つかりません。

midiutilはmidisを作成し、pygameはそれらを再生しますが、生のオーディオデータを合成し、音符を量子化できるものが必要です(つまり、midiイベント/パルス/「ピッチ」などではなく、楽譜で表されるように)。

これらを編集してください(Pythonではないか、低レベルであるか、「自分で行う」):
MIDIファイルからノートデータを取得します
Python:midiからオーディオストリーム

4

2 に答える 2

3

おそらく必要なのは、MIDI イベントを最も近い音符の長さに一致させる「クオンタイズ」と呼ばれるプロセスです。

私は C 1999 でそのようなアプリを書きました:

http://www.findthatzipfile.com/search-3558240-hZIP/winrar-winzip-download-midi2tone.zip.htm

(もうソースはありません、ごめんなさい)

プロセス自体はそれほど複雑ではありません。最も近い一致を見つけるために、さまざまな音符の長さを力ずくで調べただけです。MIDI イベントのピッチ自体がノートに直接マッピングされるため、そこで会話する必要はありませんe.d

MIDI フォーマット自体はそれほど複雑ではないので、純粋な Python MIDI 読み取りライブラリを見つけて、その上にアルゴリズムを適用することをお勧めします。

https://github.com/vishnubob/python-midi

于 2013-01-26T21:20:13.747 に答える
1

Mingusを試しましたか?py FluidSynth http://code.google.com/p/mingus/wiki/tutorialFluidsynthでそれ

于 2013-02-07T01:40:03.497 に答える