28

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

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

助言がありますか?

4

7 に答える 7

33

MIDIUtil ライブラリ (ここでは Google Code でホストされています) は、純粋な Python ライブラリから MIDI ファイルを書き込むという、あなたが望むことを行います。それについての良い点 (および完全な開示: 私は作成者です) は、ノートオンやノートオフなどの下位レベルの MID イベントを追跡する必要がないことです。

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

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

お役に立てれば

于 2010-01-25T19:57:20.683 に答える
10

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

この 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では出力ファイル名として使用されているため)、OS Xでテストしました

于 2009-10-05T23:08:14.280 に答える
8

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

于 2009-02-20T12:09:15.547 に答える
7

Midi の生成または midi ファイルの処理のみが必要な場合は、mingusを試してください。これは優れたパッケージであり、コード、コード進行、スケールなどのより高度な抽象化も可能です。

于 2010-09-14T19:46:20.833 に答える
5

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

  • 最も包括的な
  • 最高のチュートリアル
  • Windowsへのインストールが最も簡単

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

于 2013-03-19T20:39:40.167 に答える
-3

cSoundsを見てください。

于 2009-02-20T12:22:46.730 に答える