كيف تنطبق رسالة ميدي TEMPO إلى المسارات الأخرى؟

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

  •  22-08-2019
  •  | 
  •  

سؤال

وسؤال بسيط إلى حد ما الذي لدي تخمين، ولكن أنا لا يمكن العثور على إجابة نهائية في أي مكان.

والخلفية: لدي ملف ميدي متعدد المسارات مع الضوابط TEMPO في المسار الأول. ولست بحاجة لترجمة عدد ABSOLUTE_TICK في المسارات الأخرى ل"ثواني" (ثواني كسور تعويض من بداية ملف ميدي).

ولدي صيغة لربط ABSOLUTE_TICK لثواني على أساس PulsePerQuarterNote (PPQN) لملف لوتيرة (MS في مذكرة الربع).

والسؤال هو: هل تنطبق التغييرات TEMPO في المسار الأول (المسار 0) لجميع المسارات الأخرى

وإذا كان الأمر كذلك، ثم بينما أنا تحليل المسارات الأخرى (مثل مسار 4، الذي NOTE_ON وNOTE_OFF الرسائل: إنني مهتم ب) I سوف تحتاج إلى الحفاظ على توجيه أصابع الاتهام إلى التغييرات TEMPO في المسار 0 في نفس الوقت. هل هذا صحيح؟

شكرا،

الأقسام

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

المحلول

وباختصار، نعم. يحتوي على المسار الأول للمعلومات توقيت التي سيتم تطبيقها لترتيب كامل، حتى تطبيق هذه الرسائل لكل من المسارات مع نفسه <م> المطلق الوقت. وبما أن جميع الأحداث استخدام إزاحة في القراد، تحتاج إلى أولا استخراج الرسائل وتيرة التغيير، وتحويلها إلى الزمن المطلق، وبعد ذلك كنت تقرأ في المسارات الأخرى التي ستطبق هذه الرسائل بناء على ذلك الخط.

MIDI متعصب لمركز غسيل المخ التقنية :

<اقتباس فقرة>   

في ملف تنسيق 0، وتتناثر التغييرات الإيقاع في جميع أنحاء MTrk واحد. في الشكل 1، يجب أن أول جدا MTrk تتكون فقط من وتيرة (والتوقيع الوقت) الأحداث بحيث يمكن قراءتها من قبل بعض الأجهزة قادرة على توليد "خارطة الإيقاع". فمن الأفضل عدم وضع الأحداث MIDI في هذا MTrk. في الشكل 2، يجب على كل MTrk تبدأ مع حدث واحد على الأقل الأولي وتيرة (والتوقيع الوقت).

وقال ان بعض التعاقب لا كسر هذه القاعدة وضعت أحداث MIDI الفعلية في المسار الأول جنبا إلى جنب مع توقيت المعلومات، حيث أن المعيار ليس محددا جدا في هذا الصدد. يجب أن يتعامل البرنامج مع كل الحالات، لأنه من المحتمل أن تواجه ملفات MIDI في البرية التي يتم تنسيقها في هذا الطريق.

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