تحويل القراد MIDI إلى ثواني التشغيل الفعلية

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

  •  19-09-2019
  •  | 
  •  

سؤال

أريد أن أعرف كيفية تحويل القراد MIDI إلى ثواني التشغيل الفعلية.

على سبيل المثال، إذا كان MIDI PPQ (نبضات في ربع الربع ملاحظة) 1120، كيف يمكنني تحويله إلى ثواني تشغيل عالمية حقيقية؟

هل كانت مفيدة؟

المحلول

الصيغة هي 60000 / (BPM * PPQ) (مللي ثانية).

حيث BPM هو الإيقاع من المسار (يدق في الدقيقة).

(أي المسار 120 BPM سيكون له وقت ميدي (60000 / (120 * 192)) أو 2.604 مللي ثانية ل 1 علامة.

إذا كنت لا تعرف BPM، فسيتعين عليك تحديد ذلك أولا. تعتمد MIDI مرات كليا على تيمبو المسار.

نصائح أخرى

تحتاج إلى قطعتين من المعلومات:

  • PPQ. (نبضات في ربع الربع ملاحظة)، والتي يتم تعريفها في رأس ملف MIDI، مرة واحدة.
  • إيقاع (في Microseconds في ربع الربع ملاحظة)، والتي يتم تعريفها "تعيين الإيقاع" الأحداث التعريف ويمكن أن تتغير خلال قطعة موسيقية.

يمكن تحويل القراد إلى ثواني التشغيل كما يلي:

ticks_per_quarter = <PPQ from the header>
µs_per_quarter = <Tempo in latest Set Tempo event>
µs_per_tick = µs_per_quarter / ticks_per_quarter
seconds_per_tick = µs_per_tick / 1.000.000
seconds = ticks * seconds_per_tick

لاحظ أن PPQ يسمى أيضا "القسم" أو "القراد في ربع الربع ملاحظة" في وثيقة مرتبط أعلاه.

لاحظ أن الإيقاع تمثل عادة في BPM (تردد) ولكن MIDI الخام يمثله في μ في الربع (فترة).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top