web-dev-qa-db-ja.com

シンプルなクロスプラットフォームMIDI Library for Python

MIDIサウンドを作成する小さなアプリを作成したいです。プログラミングでサウンドを扱ったことがないので、基本的で優れたドキュメントがあるものから始めたいと思います。 Pythonに固執するのは、私が最も快適で、最初は自分を圧倒したくないからです。

私の時間はWindowsとUbuntuの間で約50/50に分割されているので、両方のプラットフォームで「正しく機能する」ものが本当に役立ちます。

助言がありますか?

26
Cristian

MIDIUtilライブラリ(ホストされている ここ Google Codeで)はあなたが望むことをします:write MIDI純粋なPythonライブラリからのファイル。それの良いところ(そして完全な開示:私は著者です)は、ノートオンやノートオフなどの低レベルのMIDイベントを追跡する必要がないことです:それはあなたのためにそれらを処理します。

メモを書く例として、次のようにします。

MyMIDI = MIDIFile(1)
track = 0
channel = 0
pitch = 60
time = 0
duration = 1
volume = 100
MyMIDI.addNote(track,channel,pitch,time,duration,volume)

お役に立てれば

34
Mark

MIDIファイル、 mxm's Python MIDIライブラリを生成するための純粋なPythonライブラリを探していました まさにそれです。

このdzoneスニペット から、上記のライブラリの単一ファイルバージョンがあります smidi.pyここに要点 後世のために)

使用法は非常に簡単です:

>>> import smidi
>>> m = smidi.MidiOutFile('out.mid')
>>> m.header()
>>> m.start_of_track()
>>> m.update_time(0)
>>> m.note_on(note=0x40)  # single note
>>> m.update_time(192)
>>> m.note_off(note=0x40) # stop it after 192
>>> m.update_time(0)
>>> m.end_of_track()
>>> m.eof()

おそらくWindowsで動作し(元の例では出力ファイル名としてC:\out.midを使用しているため)、OSXでテストしました

10
dbr

pyPortMidi はPython PortMidiのラッパーであり、「リアルタイム用のクロスプラットフォームCライブラリMIDIコントロール」」として説明されています。 。私自身は使用していませんが、非常に有望に見えます。MIDIデータをリアルタイムで送信できることについての明示的な言及。

8
unwind

MIDIを生成するか、MIDIファイルを処理するだけでよい場合は、 mingus を試してください。これは優れたパッケージであり、コード、コード進行、音階などのはるかに高度な抽象化も可能です。

7
fccoelho

Wikiにリストされている8つのパッケージを試しました http://wiki.python.org/moin/PythonInMusic 。 music21( http://web.mit.edu/music21/ )が

  • 最も包括的な
  • 最高のチュートリアル
  • windowsにインストールするのが最も簡単

しかし、あなたの単純さへの要求に関しては、それは最も単純なものではないと思います。しかし、他のプログラムでMIDIファイルを堅牢な方法で読み取ることができませんでした(さまざまな奇妙で素晴らしいMIDIファイル形式がぶら下がっています)

5
Sanjay Manohar

Midiサポート(インおよびアウト)がpyGame 1.9に追加されましたが、これは主に開発段階にあり、まだ十分に文書化されていませんが、機能します。

Midiサポートは、pyGameの後継であるpgreloaded(またはpygame2)でも開発されています。

また、pyGameのタイトルには「game」が含まれていますが、その用途はゲームデザインだけにとどまりません。

4
Aaron