MIDIファイル(Pythonでは理想的な)を「遅くする」方法は?

StackOverflow https://stackoverflow.com/questions/1384588

  •  21-09-2019
  •  | 
  •  

質問

私は.midフォーマットと.kar形式の両方で利用可能ないくつかの曲のバックグラウンドミュージックを持っていますが、それぞれの場合、それは私が望むよりもやや速く再生されています。同じコンテンツを持つ.MIDまたは.KARファイルを作成する最も簡単な方法は何ですかが、同じコンテンツで、テンポが遅くなっています。たとえば、1つは20%程度、もう1つは15%、3分の1は25%などです。

理想的には、クロスプラットフォームのPythonスクリプトを好む(これにより、ソースを簡単に微調整して、必要な効果に収束することができるからです。-) 8.04それが重要な場合)およびMac(Mac OS X 10.5、しかし10.6互換性が望ましい)。

役に立ちましたか?

解決

ファイルを編集することができます http://www.sonicspot.com/guide/midifiles.html

おそらく、すでにMIDIの読書/執筆ライブラリがありますが。実際、それは関連する質問を見ることの問題でした: Python用のシンプルなクロスプラットフォームMIDIライブラリ

テンポをセットします

このメタイベントは、3バイトでエンコードされる四半期ごとのマイクロ秒の観点からシーケンステンポを設定します。通常、最初のトラックチャンクに見られ、より正確な同期を促進するためにMIDIクロックメッセージと同時に発生することが時間に整列されています。セットテンポイベントがない場合、毎分120拍が想定されます。次のフォーミュラを使用して、テンポを四半期ごとのマイクロ秒から1分あたりのビートに変換できます。

MICROSECONDS_PER_MINUTE = 60000000

BPM = MICROSECONDS_PER_MINUTE / MPQN
MPQN = MICROSECONDS_PER_MINUTE / BPM
Meta Event  Type    Length  Microseconds/Quarter-Note
255 (0xFF)  81 (0x51)   3   0-8355711

他のヒント

Vinkoが言うように、Midifileを編集することができますが、それはバイナリ形式であり、可能な限り最小数のビットに絞り込まれているため、助けを得るのに役立ちます。

これは、MIDIからテキスト間コンバーターです(およびその逆):
http://midicomp.opensrc.org/
私は最近かなり使用しています。テキストとしてMidifileを使用したら、単純な操作のためにテキスト処理(「テンポ」で行を検索する)を実行するのはかなり些細なことです。 Macを試していません(Ubuntu 8.04で問題なくコンパイルされています)。

Midifile Tempo特に特に、イベントのタイミングは「ダニ」の観点から指定されているため、再生を遅くしたりスピードアップしたりするのは非常に簡単です。 Time Signatureはそれほど関連性がなく、主にMIDIシーケンサーで開かれたときにバー/ビートを正しく表示するためのものだと思います。

また、Pyportmidiを除いて、他のPython MIDIモジュールがいくつかあります。

うーん...新しいユーザーであるために、投稿ごとにリンクにしか投稿できないようです。いくつかのコメントや別のカップルの答えでPythonモジュールへのリンクを投稿してみてください...

使用できます Music21 これを行うには、OSX 10.10.1でのみテストしました。

import music21

fctr = 1.25 # scale (in this case stretch) the overall tempo by this factor
score = music21.converter.parse('song.mid')
newscore = score.scaleOffsets(fctr).scaleDurations(fctr)

newscore.write('midi','song_slow.mid') 

オフセットは各ノートのタイムスタンプのようなものであり、期間はメモの音の長さです。それぞれに同じスケール係数を適用することは、テンポを調整するようなものだと思います。

あなたが私のようであるなら、あなたは7年後に同じ曲を聞いていて、これを試してみることができます!そうでなければ、これが私のように今日目が覚めた他の誰かが、この問題を簡単に解決しようとして私の頭を掻いていた人を助けることを願っています。

私はあなたの投稿と同様の関心を持っています。私はこのライブラリに出会ったばかりです。

http://web.mit.edu/music21/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top