Хедър (на файл MIDI)

Хедъра на файловете MIDI е информация в началото на файловете MIDI, която съдържа следното.

Описание Дължина в байтове Започва на байт Стойност
идентификация 4 0x00 Буквите "MThd"
размер 4 0x04 6
формат 2 0x08 0, 1 или 2
брой писти 2 0x0A 1 - 65,535
времева резолюция 2 0x0C Различни, описани по-долу

С други думи, хедъра показва, че това е един хедър, който съдържа шест байта и че: 1) форматът на песента MIDI е някакъв; 2) броя на пистите в песента MIDI е някакъв; и 3) времевата резолюция на песента MIDI е някаква. Хедъра описва цялата MIDI песен.

"Идентификацията" на хедъра винаги е текста "MThd", което показва, че това е хедър.

"Размерът" на хедъра винаги е шест, тъй като в хедъра винаги има шест байта след стойността на размера (за формата, броя на пистите, и времевата резолюция).

"Броят писти" е броя на пистите във файла MIDI.

"Форматът" може да носи стойности от 0, 1, или 2. Стойността 0 означава, че файлът MIDI съдържа една писта с всички съобщения MIDI, включително и съобщения мета, които носят информация за песента MIDI, а и музикални съобщения MIDI. Стойността 1 означава, че файлът MIDI съдържа две или повече писти. В този случай, по споразумение. първата писта съдържа съобщенията мета с информация за песента, а другите писти съдържат музикалните съобщения MIDI. Стойността 2 също означава, че файлът има много писти, но в този случай всяка писта представлява отделна поредица MIDI, която може да се изсвири или заедно, или отделно от останалите писти и която може да съдържа свои собствени мета и музикални съобщения.

"Времевата резолюция" на песента MIDI показва как пулсовете в MIDI може да се превеждат във времеви стойности. Съобщенията в парчетата за пистите във файла MIDI се предхождат от информация за времето: броя на пулсовете, които трябва да минат след предишното съобщение, преди това съобщение да се изпълни. Има две възможности за двата байта, които са времевата резолюция. Ако най-горният бит на 16-битовата стойност е 0, тогава времевата резолюция е в "пулсове на такт" ("пулсове в четвърт нота"). Ако най-горният бит е 1, тогава времевата резолюция е в "кадри в секунда".

Ако най-горният бит на времевата резолюция е 0, тогава времевата резолюция е в пулсове в такта. Останалите 15 бита показват броя на пулсовете MIDI за един такт. Ако предположим например, че тези 15 бита съдържат числото 60, тогава времевата резолюция е 60 пулса за един такт и дължината на един пулс е

1 пулс = микросекунди в такт / 60

Променливата "микросекунди в такт" може да се определи от едно мета съобщение в MIDI ("определи темпото"). Ако не е определена, тогава се използва 500,000 микросекунди, което означава 120 такта в минута. Тогава, при този пример, дължината на един пулс е

1 пулс = 500,000 / 60 = 8333.33 микросекунди

Ако най-горният бит на времевата резолюция е 1, останалите 15 бита трябва да се разделят на две части. Останалите най-горни 7 бита (останалата част на най-горният байт) представляват броя на кадри в секунда и може да са 24, 25, 29.97 (записана като 29) или 30. Долният байт (долните 8 бита) съдържат броя на пулсове за един кадър. Така например, ако кадрите в секунда са 24 и има 100 пулса в един кадър, дължината на един пулс е

1 пулс = 1,000,000 / (24 * 100) = 416.67 микросекунди

Следователно, ако най-горният бит на времевата резолюция е 1, дължината на един пулс е строго определена от останалите два байта във времевата резолюция. Първият байт е броя на кадрите в секунда и вторият байт е броя на пулсове в един кадър, което е достатъчно да се определи точната дължина на един пулс. Това не е така, ако горният бит на времевата резолюция е 0. Времевата резолюция в този случай определя броя на пулсове в един такт (една четвърт нота), но нищо във времевата резолюция не показва какъв е броя на тактовете в една секунда. В този случай броя на тактовете в секунда може да се определи с едно съобщение MIDI или пък може да се остави да бъде определено от устройството MIDI (120 такта в минута, ако не е определено).

Виж също:
Протокол Musical Instrument Digital Interface (MIDI)

Добави нов коментар

Filtered HTML

  • Freelinking helps you easily create HTML links. Links take the form of [[indicator:target|Title]]. By default (no indicator): Click to view a local node.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.