2

編集:オーディオ/ビデオ制作サイトに投稿https://video.stackexchange.com/questions/4148/creating-midi-files-explanation-of-time-division-in-header-chunk

この形式でファイルを読み書きするアプリケーションを作成することに興味があるので、MIDIファイル構造について読んでいますが、ヘッダーチャンクの時間分割について少し混乱しています。

私の理解では、この部分は基本的に16ビットであり、符号ビットが1の場合、残りのビットはSMPTEタイムコードを指定し、0の場合、ビットはクォーターノート(PPQ)あたりのティック/パルス数を指定します。

具体的には、私の質問は次のとおりです。

  • より高い/より低いPPQはMIDIファイルに何をしますか?これは音質を変えますか?私の理解では、それはテンポに影響を与えないということです
  • SMPTEタイムコードは再生中のMIDIファイルにどのように影響しますか?

基本的に、私はこれらが最終結果に実際に何を意味するのかを理解しようとしています。

4

3 に答える 3

1

私はそのフォーラムに登録されていないので、ここに貼り付けます。

パート1に答えることができます。

PPQはMIDIファイルのテンポに絶対的に影響します。サウンドの品質は変更されません。イベントが処理される速度が変更されます。

テンポは、四分音符あたりのマイクロ秒で定義されます。四分音符(PPQ)のティック数(パルス)を変更すると、ファイルの再生速度を効果的に変更できます。PPQの標準値は480です。ファイルに加える唯一の変更がPPQを2倍にすることである場合、再生速度(テンポ)は基本的に半分になります。

于 2012-06-09T04:10:46.027 に答える
0

これは古い質問ですが、完全に、または完全に正確に答えられていませんでした。

すべてのMIDIファイルはデルタ時間を使用します。SMPTEであるかどうかにかかわらず、MIDIファイルには絶対的なタイミングはありません。

オリジナルのMIDIフォーマットファイルでは、ヘッダーのタイミング情報はPPQN、つまり4分の1ノートあたりのパルス数を指定します。SetTempoメタイベントは、四分音符あたりのマイクロ秒数(テンポ)を指定します。MIDIイベントのデルタ情報は、このイベントと最後のイベントの間のパルス数を指定します。

SMPTEスタイルのMIDIファイルでは、ヘッダーのタイミング情報で2つの値(1秒あたりのフレーム数とフレームの細分化)が指定されます。1秒あたりのフレーム数は文字通りFPSです(29が実際には29.97であるなど、一部の値を調整する必要があります)。フレームの細分化は、フレームあたりのパルス数と考えることができます。MIDIイベントデルタ情報は、最後のイベント以降のフレームサブディビジョン(またはパルス)の数を指定します。

重要な違いの1つは、SMPTEファイルがSetTempoメタイベントを使用しないことです。すべてのタイムスケールは、ヘッダータイミングフィールドによって固定されます。

于 2014-10-31T15:27:36.557 に答える
-1

@LeffelManiaはそれを正しく理解しましたが、SMPTEは、アレンジの時間を維持するための単なる別の方法であることを付け加えたいと思います。SMPTEを使用する場合は、各イベントの絶対時間を取得しますが、それ以外の場合、イベントは前のイベントに相対的です。

私の経験では、ほとんどのMIDIファイルは、相対的なイベントタイミングの従来の方法(つまり、SMPTEではない)を使用します。これは、操作が簡単だからです。

于 2012-06-09T11:07:20.653 に答える