V sobotu 2. listopadu proběhla mohutná oslava naší plnoletosti !!
Multimediaexpo.cz je již 18 let na českém internetu !!

MIDI

Z Multimediaexpo.cz

MIDI (Musical Instrument Digital Interface) je mezinárodní standard používaný v hudebním průmyslu jako elektronický komunikační protokol, který dovoluje moderním digitálním hudebním nástrojům, počítačům i dalším přístrojům komunikovat v reálném čase. Současně se jedná o standardní sériové rozhraní, které slouží k výměně MIDI-dat a přesné vzájemné synchronizaci v reálném čase.

Obsah

Historie

Všechno začalo už v roce 1981 na výstavě NAMM (National Association of Music Merchants) v USA. Finální MIDI verze 1.0 se poprvé objevila 5. srpna 1983.

Prvním výrazným propagátorem MIDI se stala americká společnost Atari se svými poloprofesionálními počítači Atari ST a STE.

Technická specifikace

MIDI konektory a kabely

Rozhraní MIDI je značně jednoduché. Je složeno ze tří 5-pinových DIN konektorů označených In, Out a Thru. Konektor In je vstupní, přes konektor Out jsou vysílány MIDI zprávy generované zařízením a na konektor Thru jsou kopírována data přicházející na vstup od jiného přístroje. Některá MIDI zařízení používají funkci Soft Thru, která slučuje vstupní data s interně generovanými daty a vše posílá na konektoru Out.

Standard MIDI File (.mid)

Standard MIDI File (zkráceně SMF) je souborový formát určený pro uložení hudebních dat a jejich přenos mezi různými zařízeními. Tyto soubory mají obvykle příponu .mid. Základním rozdílem oproti jiným způsobům uložení zvuku (WAV, MP3, OGG) je ten, že zatímco v ostatních souborech je zaznamenán přímo zvuk (v podstatě digitalizovaný záznam z mikrofonu), tak v SMF jsou uloženy parametry použitých hudebních nástrojů, jednotlivé noty uložené jako kombinace [čas, nota, rychlost], informace o tempu hudby, informace o různých kanálech.

Formát souboru

Data jsou v souboru uložena v blocích (tzv. „chunk“), kde každý blok obsahuje textový identifikátor dlouhý čtyři znaky (čtyři bajty) a informaci o délce bloku (také čtyři bajty). Vícebajtová čísla se v SMF ukládají v pořadí zvaném big-endian, tedy významnější bajty dříve. Po čtyřech bajtech délky následuje příslušný počet bajtů představujících datovou část bloku. Potom začíná další blok nebo končí soubor.

V praxi lze narazit na dva typy bloků:

  • MThd – Hlavička souboru, vyskytuje se na začátku souboru. Po čtyřech bajtech délky bloku (obvykle 0x00 0x00 0x00 0x06 hexadecimálně) následují dva bajty označující formát souboru (např. 0x00 0x00), dále dva bajty určující počet stop (např. 0x00 0x01) a nakonec dva bajty definující vztažnou hodnotu pro kódování času.
  • MTrk – Blok obsahující data a parametry stopy. Kromě parametrů použitých nástrojů a odehraných not může obsahovat i textové informace, např. název skladby.

Uložení jednotlivých stop

Stopa začíná identifikátorem MTrk následovaným tradičními čtyřmi bajty udávajícími délku bloku a poté již následuje posloupnost událostí ve tvaru časový přírustek, stavový bajt, datové bajty. Stavový bajt nemusí být uveden, v takovém případě se parametry vztahují k předchozímu stavovému bajtu.

Časový přírustek (někdy také deltačas) udává dobu od předchozí události. Může zabírat i více bajtů, v takovém případě je vlastní časový přírustek „rozsekán“ po sedmi bitech a nejvyšší bit u všech bajtů, kromě posledního (nejnižšího) bajtu, je nastaven na jedničku. Např. číslo 127 (hexadecimálně 0x7F, binárně 01111111) se vejde do sedmi bitů a bude proto uloženo v jednom bajtu. Naopak číslo 33090 (0x8142, 10000001 01000010, po sedmi bitech zprava 10 0000010 1000010) bude uloženo ve třech bajtech 0x82 0x82 0x42 (1000010 10000010 01000010). Je zde určitá podobnost s kódováním UTF-8, kde ASCII znaky zabírají pouze jeden bajt (s nulovým nejvyšším bitem), zatímco znaky s vyšším pořadím zabírají bajtů více a jsou také zakončeny bajtem s nulovým nejvyšším bitem.

Stavový bajt (také příkaz, zpráva) definuje druh události. Jedná se o jeden bajt následující bezprostředně za časovým přírustkem a lze jej poznat tak, že jeho nevyšší bit je jednička. (Pokud je stavový bajt vynechán, má bajt za deltačasem nejvyšší bit nulový a jedná se o datový bajt.) Podle stavového bajtu lze rozhodnout, kolik následuje datových bajtů. Horní půlbajt obvykle udává druh příkazu a dolní půlbajt upřesňuje jeho význam, nejčastěji představue číslo kanálu.

Datové bajty (jinak také parametry příkazu nebo zprávy) následují za stavovým bajtem, případně hned za deltačasem, pokud není stavový bajt uveden. Jejích délka závisí na stavu...

Nejznámější sociální sítě (připojte se)

<facelikebutton style="2" showsend="0"></facelikebutton>

Externí odkazy