Obsah
1. Rozhraní MIDI na osobních počítačích II
2. Zpráva Note On
3. Zpráva Note Off
4. Zpráva AfterTouch
5. Zpráva Channel Pressure
6. Zpráva Pitch Wheel (Pitch Bend)
7. Zpráva Program (patch) Change
8. Standard General MIDI (GM)
9. Literatura a odkazy na Internetu
1. Rozhraní MIDI na osobních počítačích II
V předchozí části tohoto seriálu jsme si řekli základní informace o rozhraní MIDI (Musical Instrument Digital Interface). Víme tedy, že samotná specifikace, která MIDI popisuje, je rozdělena na dvě části. První část specifikace se zabývá především způsobem propojení jednotlivých zařízení na fyzické a linkové vrstvě, tj. použitými konektory, elektrickými charakteristikami použitých kabelů, využitím optočlenů pro vzájemnou izolaci jednotlivých zařízení i způsobem řízení přenosu dat na nejnižší úrovni (tj. asynchronním přenosem jednotlivých bitů po sériové lince). Ve druhé části specifikace je popsán přenosový protokol, tj. význam větších celků – bajtů a takzvaných MIDI zpráv. Dnes se budeme zabývat převážně druhou částí specifikace MIDI, především popisem MIDI zpráv, které jsou přenášeny mezi jednotlivými zařízeními. Na tuto část článku navazuje kapitola s informacemi o standardu General MIDI (GM) postaveného nad původní specifikaci MIDI, ve kterém se přesněji popisuje význam některých typů zpráv, jež byly v původním MIDI popsány pouze obecně (například jsou přesně stanovena čísla jednotlivých typů nástrojů, včetně nástrojů bicích).
Obrázek 1: Klávesy, které mohou sloužit jak pro posílání MIDI zpráv (zprávy jsou poslány například do syntetizéru), tak i pro jejich příjem (například počítač posílá MIDI zprávy z hudebního editoru a klávesy je přehrají).
Data jsou mezi zařízeními propojenými přes rozhraní MIDI přenášena asynchronním sériovým protokolem přes proudovou smyčku. Vysílané informace jsou rozděleny na bajty (osmice bitů), přičemž ke každému bajtu je přidán start bit a stop bit. Hodinová frekvence vysílače je rovna 31250 Hz, což znamená, že se celý bajt i se start bitem a stop bitem přenese za 320 µs (10/31250 s). Z přenášených bajtů jsou skládané MIDI zprávy popsané v navazujících kapitolách. Délka MIDI zpráv je rovna jednomu, dvěma či třem bajtům (tři bajty jsou nejobvyklejší hodnota), ovšem jeden speciální typ zprávy má neomezenou délku. První bajt zprávy se nazývá stavový bajt (status byte). Jeho zvláštností je to, že má nastavený nejvyšší bit na logickou hodnotu 1 (jeho dekadická hodnota je vždy větší než 127). Všechny ostatní bajty mají tento bit nulový (jejich hodnota je menší než 128). Ve stavovém bajtu jsou uloženy dvě informace: číslo kanálu 1–16 (tím je adresováno některé zařízení) a kód příkazu – typ MIDI zprávy. Jednotlivé typy MIDI zpráv jsou ve standardu pojmenovány, viz obsah následující tabulky:
Kód příkazu (hex) | Číslo kanálu? | Název |
---|---|---|
0×80 | ano | Note Off |
0×90 | ano | Note On |
0×a0 | ano | Aftertouch |
0×b0 | ano | Continuous controller |
0×c0 | ano | Patch change |
0×d0 | ano | Channel Pressure |
0×e0 | ano | Pitch wheel/Pitch bend |
0×f0 | ne | (non-musical commands) |
2. Zpráva Note On
Pravděpodobně nejčastěji posílaná MIDI zpráva nazvaná Note On má délku tři bajty. V prvním bajtu (stavovém) je kromě typu zprávy uloženo i číslo kanálu, přičemž uložená hodnota z rozsahu 0–15 odpovídá číslu kanálu v rozsahu 1–16 (takto jsou kanály očíslovány na MIDI zařízeních). Ve druhém bajtu je přenášeno číslo noty. Minule jsme si uvedli převodní tabulku mezi kódem noty (MIDI number, key), konkrétní oktávou a notou i frekvencí (při použití temperovaného ladění). V hodnotě druhého bajtu MIDI zprávy Note On je možné zakódovat jednu ze 128 not (tónů o různé výšce) rozdělených do 11 oktáv po 12 půltónech (poslední oktáva neobsahuje nejvyšší tóny). Ve třetím bajtu této MIDI zprávy je uložena rychlost začátku přehrání noty (viz obrázek číslo 2, na kterém je nakreslená takzvaná obálka signálu představujícího přehrávanou notu). Rychlost začátku přehrání noty většinou odpovídá strmosti náběžné hrany – attack. Pokud je rychlost nulová, má tato MIDI zpráva podobný význam jako dále popsaná zpráva Note Off, tj. ukončení přehrání noty.
Obrázek 2: Typická obálka signálu představujícího přehrávanou notu. U tohoto typu obálky lze nastavit čtyři parametry označované souhrnně zkratkou ADSR – attack, decay, sustain a release. U parametrů attack, decay a release se udává doba jejich trvání (z té je také odvozena strmost hran), zatímco parametr sustain je většinou zadáván v procentech maximální amplitudy. Existují i jiné možnosti specifikace obálky, tato je však nejznámější, protože je použita ve velkém množství hudebních syntezátorů.
3. Zpráva Note Off
Opačný význam než výše popsaná zpráva Note On má zpráva Note Off, pomocí které lze vypnout přehrání vybrané noty (elektronické hudební nástroje s polyfonií – a těch je naprostá většina – totiž dokážou současně přehrávat větší množství not). Opět se jedná o zprávu, jejíž délka je rovna třem bajtům. První bajt je stavový, ve druhém bajtu je uložen kód noty (se stejným významem jako u předešlé zprávy) a v bajtu třetím je uložena rychlost doznívání, přičemž nula značí nejpomalejší dozvuk a hodnota 127 dozvuk nejrychlejší. Pokud zařízení používá obálku typu ADSR zobrazenou na druhém obrázku, odpovídá rychlost doznívání většinou strmosti poslední hrany – release. Některá zařízení posílají pro vypnutí přehrání noty zprávu Note Off, některá jen Note On s nulovou délkou; specifikace však jasně říká, že zařízení, které zprávu přijímá, musí rozeznat a korektně reagovat na obě zmíněné varianty. Pro zařízení (nebo nástroje), které rychlost doznívání nepodporují, by měla být hodnota posledního bajtu zprávy Note Off nastavena na 64.
Obrázek 3: Poměrně jednoduché klávesy, které však disponují rozhraním MIDI.
4. Zpráva AfterTouch
Zpráva typu AfterTouch je použita pro přenos informace o síle stlačení klávesy na klávesnici hudebního nástroje (může se však jednat i o jiný ovládací prvek). Některé elektronické hudební nástroje (klávesy, bicí) totiž obsahují senzory umožňující měřit tlak vyvíjený hudebníkem na jednotlivé klávesy. Tuto informaci je možné použít pro úpravu hlasitosti přehrávané noty – v případě použití obálky typu ADSR se jedná o hodnotu sustain, tj. amplitudu přehrávaného tónu po jeho ustálení (to nastane ve chvíli, kdy proběhne část attack a decay). Zpráva AfterTouch má délku tří bajtů, přičemž ve druhém bajtu se přenáší kód noty (přeneseně vlastně číslo stlačené klávesy) a v bajtu třetím síla stisku klávesy. Nulová hodnota značí minimální tlak a hodnota 127 tlak maximální. Mnoho senzorů však nedokáže rozlišit všech 128 úrovní, proto se například mohou vracet jen násobky osmi (rozsah 0–127 by měl zůstat zachován).
Obrázek 4: Několik MIDI zařízení (včetně elektronických varhan) zapojených spolu se zesilovačem do většího zvukového celku.
5. Zpráva Channel Pressure
Podobný význam jako zpráva předchozí má i zpráva Channel Pressure, v ní je však přenesen průměrný tlak vyvíjený hudebníkem na všechny stlačené klávesy. Tato zpráva je použita především u levnějších elektronických hudebních nástrojů, které neobsahují senzory na všech svých klávesách, ale pouze senzor jediný. V tomto případě není možné rozlišit, pro jakou klávesu je tlak měřen (měří se pouze všechny stlačené klávesy současně) a z tohoto důvodu musí být použit i odlišný typ zprávy. Ta má délku pouhých dvou bajtů, protože prostřední bajt (který u předchozí zprávy nesl informaci o kódu stlačené klávesy) není použit. Přenáší se pouze stavový bajt a průměrná síla stisku kláves, přičemž hodnota 0 značí minimální tlak a hodnota 127 tlak maximální. Opět však platí, že mnoho senzorů nedokáže rozlišit všech 128 úrovní tlaku, proto se některé hodnoty nemusí v datovém toku vůbec objevit.
Obrázek 5: Na gameportu není přímo vyveden standardní pětikolíkový konektor typu DIN použitý u MIDI, proto se musí použít redukce (buď s oddělovacím optočlenem nebo bez něj).
6. Zpráva Pitch Wheel (Pitch Bend)
Již samotné jméno zprávy Pitch Wheel napovídá, k čemu se tato zpráva využívá. Některé elektronické hudební nástroje obsahují ovládací prvek, pomocí něhož je možné měnit výšku jednotlivých tónů ve stupnici. Právě informace o aktuálním nastavení tohoto ovládacího prvku se přenáší ve zprávě typu Pitch Wheel. Délka této zprávy je rovna třem bajtům. Po stavovém bajtu následují dva datové bajty, ve kterých je přenesena čtrnáctibitová hodnota (z předchozího textu již víme, že je možné využít pouze sedm bitů z každého bajtu, neboť nejvyšším bitem je určeno, zda se jedná o stavový či datový bajt). Přenesená čtrnáctibitová hodnota je považována za posun tónů ve stupnici o k×n centů (jeden cent odpovídá jedné setině temperovaného půltónu, tj. 1/1200 oktávy), kde n je vypočteno následovně: přenesená_hodnota-8192 a k je konstanta závislá na použitém nástroji (přesnější vztah je specifikován až v General MIDI). Záporný výsledek výpočtu značí posun tónů směrem dolů, kladný výsledek nahoru.
Obrázek 6: Pitch wheel na elektronických klávesách. Každé ladicí kolečko má svoji jasně definovanou střední polohu, která je ve zprávě Pitch Wheel zakódována jako hodnota 8192.
Obrázek 7: Zapojení standardních pětikolíkových konektorů typu DIN pro MIDI na gameport v případě, že se použije oddělovací optočlen.
7. Zpráva Program (patch) Change
Pomocí zprávy typu Program Change je možné změnit typ hudebního nástroje, který se syntetizér pokusí napodobit. Například je možné, aby syntetizér zahrál notu podobně jako varhany, klavír nebo trumpeta – výška základního tónu je vždy stejná (a odpovídá například komornímu a), liší se však přidané harmonické a neharmonické složky, pomocí nichž může posluchač určit, jaký hudební nástroj daný tón hraje. Délka zprávy přenášející tuto informaci je dlouhá dva bajty; po bajtu stavovém následuje bajt, ve kterém je uvedeno číslo nástroje od 0 do 127. Je tedy možné rozlišit až 128 různých nástrojů, samozřejmě v závislosti na schopnostech použitého syntetizéru. Samotná norma MIDI neurčuje, jaký nástroj se pod daným číslem nachází. I z tohoto důvodu bylo vytvořeno General MIDI, kde je již předepsáno, že například nástroj číslo 1 odpovídá klavíru a nástroj číslo 57 trumpetě (pozor, v GM jsou nástroje číslovány od 1 do 128, tj. k přenášené hodnotě se přičítá jednička).
Obrázek 8: Jedna z možných variant propojovacího kabelu gameport–MIDI.
8. Standard General MIDI (GM)
O standardu nazvaném General MIDI neboli zkráceně GM jsme se v předchozích odstavcích už několikrát zmínili. V jednoduchosti se dá říci, že General MIDI v některých oblastech upřesňuje (a zpřísňuje) normu MIDI. Například všechna zařízení, která se označují jako GM-compatible, musí dokázat současně přehrát minimálně 24 tónů, tj. mají čtyřiadvacetihlasou polyfonii, přičemž minimálně 16 tónů je melodických spolu s osmi bicími. Tato zařízení také musí podporovat všech šestnáct kanálů (viz předchozí část tohoto seriálu), přičemž kanál číslo 10 je rezervován pro bicí nástroje. Taktéž jsou v této normě přesně určeny čísla hudebních nástrojů, která se – jak jsme si již řekli v předchozí kapitole – nastavují pomocí zprávy Program Change. U GM-compatible zařízení je tedy jisté, že nástroj číslo jedna bude vždy hrát jako klavír atd. Další vlastnosti General MIDI si uvedeme v následujícím pokračování – jedná se především o formát souboru, ve kterém je možné ukládat celé skladby
Obrázek 9: Netradiční použití rozhraní MIDI ve formě komunikačního portu – pro počítače Atari ST byla vytvořena hra MIDI Maze, kterou bylo možné hrát na více počítačích propojených právě přes MIDI. Využilo se přitom faktu, že počítače Atari ST byly tímto rozhraním standardně vybaveny a naopak neobsahovaly síťovou kartu.
Skupiny nástrojů tak, jak jsou definovány v General MIDI (čísluje se od 1 do 128):
Číslo programu/nástroje | Skupina nástrojů |
---|---|
01 – 08 | klavíry |
09 – 16 | laděné bicí |
17 – 24 | varhany |
25 – 32 | kytary |
33 – 40 | basové zvuky |
41 – 48 | smyčce |
49 – 56 | ansáblové zvuky |
57 – 64 | žestě |
65 – 72 | plátkové |
73 – 80 | píšťaly |
81 – 88 | elektronické sólové zvuky |
89 – 96 | elektronické doprovodné zvuky |
97 – 104 | elektronické zvukové efekty |
105 – 112 | etnické |
113 – 120 | perkusivní |
121 – 128 | zvukové efekty |
9. Literatura a odkazy na Internetu
- Basic MIDI, Paul White,
Sanctuary Publishing Ltd, London 1999.
ISBN 1 86074 262 9 - A Beginner's Guide to MIDI,
R A Penfold, Babani Publishing Ltd,
London 1993. ISBN 0 85934 331 6 - MIDI for Organists,
C E Pykett - MIDI Maze,
http://en.wikipedia.org/wiki/MIDI_Maze - HoofJaw & MIDI.com – Your MIDI File Center!,
http://www.hoofjaw.com/Default.aspx - Kenton Releases New MIDI Merge Box,
http://www.dolphinmusic.co.uk/news/news-story/news_id/1925 - How Optical Isolation Works (with Switching Power Supply) – Illustration,
http://www.bb-elec.com/tech_articles/optical_isolation_illustration.asp - Opto-isolator,
http://en.wikipedia.org/wiki/Opto-isolator - Musical Instrument Digital Interface,
http://en.wikipedia.org/wiki/Musical_Instrument_Digital_Interface - Daves Old Computers – Atari ST,
http://www.classiccmp.org/dunfield/atarist/index.htm - A MIDI Pedalboard Encode,
http://www.pykett.org.uk/a_midi_pedalboard_encoder.htm - MIDI Note Number, Frequency Table,
http://tonalsoft.com/pub/news/pitch-bend.aspx - Note names, MIDI numbers and frequencies,
http://www.phys.unsw.edu.au/jw/notes.html - The MIDI Specification,
http://www.gweep.net/~prefect/eng/reference/protocol/midispec.html - Essentials of the MIDI protocol,
http://ccrma.stanford.edu/~craig/articles/linuxmidi/misc/essenmidi.html - General MIDI,
http://en.wikipedia.org/wiki/General_MIDI - Obecné MIDI (General MIDI),
http://www-kiv.zcu.cz/~herout/html_sbo/midi/5.html