Jak by mělo vypadat MIDI

Hodně lidí mě kontaktuje kvůli tomu, že jim MIDI soubory na jejich zařízení nehrají správně. Po delším odkládání jsem se odhodlal napsat pár řádek, jak by měl MIDI soubor správně vypadat, aby to hrálo všude a korektně a hlavně – jak to opravit.

Tedy, MIDI file – je soubor obsahující pouze data – „notičky“ a další kontrolery a eventy /události/ a žádné zvuky. Proto se musí věnovat pozornost tomu, co se nachází za nastavení na začátku skladby. Nebudu se rozepisovat o tom, co jaké příkazy dělají – Ti, kteří s MIDI pracují to „snad“ 🙂 vědí a Ti, kteří neví, tak si to vygooglí 🙂

 

Na začátek tabulka rozdílů jednotlivých norem a z ní následující doporučení:

GM GS XG level 1 XG level 2 XG level 3 GM 2
Datum 1991 1991 1994 1997 1998 1999
Organizace MMA Roland Yamaha MMA
Minimální požadavky
Současně
znějících
melodických
zvuků
16 16 32 společných 64 společných 128 společných 16
Současně
znějících
perkusivních zvuků
8 8 16
MIDI
melodických
kanálů
15 15 16 společných 32 společných
(na 2 portech)
64 společných
(na 4 portech)
14
Rytmických/
perkusivních kanálů
1 (#10) 1 2 (#10 a #11)
Doporučení kanálů #1: piano ;
#2: basa;
#3: plochy;
#4: melodie;
#5: melodie (duet);
#6: kytary;
#10: bicí;
#16: vokály/harmony
#1: melodie;
#2: melodie (duet);
#3: basa;
#4: plochy;

#5: kytara;
#10: bicí;
#16: vokály/harmony
jako GM/GS
Dostupné zvukové banky
Melodické nástroje 128 226 480 1074 1149 256
Sady bicích 1 8 + 1 SFX sada 9 + 2 SFX sady 34 + 2 SFX sady 35 + 2 SFX sady 9
Zvuků bicích na sadu 47 61 72 61
Efektové bloky reverb, chorus reverb, chorus reverb, chorus, variation reverb, chorus, variation, insertion 1, insertion 2, total EQ reverb, chorus, variation, insertion 1, insertion 2, total EQ
Formát souboru SMF format 0 SMF format 1
Tempo 32 bpm – 280 bpm 20 bpm – 300 bpm

Z této tabulky vyplývá několik poznatků: podívat se na polyfonii, kolik nám v midi může hrát v multitimbralu zvuků a doporučení rozložení MIDI kanálů v MIDI file. Yamaha má kanály přímo dány svojí normou XG a u GM/GS/GM2 to vyplynulo z praxe výrobců. Tak jak se 10 MIDI kanál stal standardem pro bicí, mělo by se dodržovat i plusminus rozložení ostatních nástrojů. Alespoň každý jeden autor/výrobce MIDI by to měl mít u svých skladeb vždy stejně.

Ještě upozorním na to, že  MIDI stopa není MIDI kanál a naopak.

MIDI soubor

Na začátku každé skladby by měl být vložen sysex příkaz, který nastaví nástroj do výchozího nastavení a přepne ho do požadovné normy:

známe:

  • GM reset      GM – System On (Sys Ex) = F0 7E 7F 09 01 F7
  • GS reset       GS – System On (Sys Ex) = F0 41 10 42 12 40 00 7F 00 41 F7
  • XG reset      XG – System On (Sys Ex) = F0 43 10 4C 00 00 7E 00 F7
  • GM2 reset   GM2 – System On (Sys Ex) = F0 7E 7F 09 03 F7

V případě, že chceme zajistit co možná největší kompatibilitu přehrávání, měl by před povelem XGreset  být i GM
tedy:
F0 7E 7F 09 01 F7
F0 43 10 4C 00 00 7E 00 F7

 

Důležité i pro později. Všechny povely, eventy a kontrolery musí mít správné časování. Je třeba ponechat příkazům čas na jejich provedení. Nemůžeme tedy mít vše v jednom čase (častá chyba)

MIDI stopa

Co by měla obsahovat MIDI stopa kromě not? 🙂

 

General MIDI

V roce 1991 se americké a japonské organizace, které dohlížejí na specifikaci MIDI, snažily o zvýšení kompatibility zavedením „doporučené praxe“, nazvané General MIDI (zkratka GM). Jedná se o soubor pravidel a minimálních požadavků na nástroje, které jsou zařazeny do kategorie „General MIDI-compatible“. Tato pravidla lze shrnout takto:

  • Přístroj musí poskytovat minimálně 24-hlasovou polyfonii a minimální 16-ti multitimbrál.
  • Přístroj musí mít minimálně 128 přednastavených zvuků, přístupných prostřednictvím standardních zpráv MIDI. Tato „Obecná sada zvuků MIDI“ je uspořádána do 16 skupin po 8 presetech. Například klavírní presety jsou vždy uloženy v paměťových presetech č. 1 – 8, přednastavení basy č. 33 – 40 atd.
  • Bicí musí být vždy na kanálu 10. Je určena „GM Percussion Map“ pro noty čísla #35 – #81 a musí být použita.
  • Přístroj musí být schopen přijímat MIDI povely nota zapnuta, nota vypnuta, dále hlasitost, ohýbání tónu (pitch bend) a RPN parametry pro ovládání  výšky pitchbendu a hlavního ladění v reálném čase (master coarse and fine tuning).
  •  Nástroj musí být schopen přijmout devět zpráv Control Change („C“): Modulace (cc # 1), Volume (cc # 7), Pan (cc # 10), Expression (cc #11), Sustain (cc #64), RPNs (Registered Parameter Numbers) (cc #100, #101), Reset All Controllers (cc #121), a All Notes Off (cc #123)
  •  Nástroj musí být schopen přijmout dvě specifické zprávy Universal Non-Realtime System Exclusive: „Turn GM System On (Zapnout GM)“ a „Turn GM System Off (Vypnout GM)“.
    Tato pravidla nejenže zaručují vysokou míru kompatibility z jednoho nástroje do druhého, ale také zajišťují,
    že hudební soubor MIDI si zachová svůj základní charakter při hraní na různých nástrojích MIDI.

 

Struktura midi

XG midi

XF standard by měl obsahovat tyto parametry:

  • Název skladby (sequence/Track Name) Měl by být umístěný v čase 1:1:0.
  • Metrum (Time signature)
  • Tempo (Set tempo)
  • Označení XF verze (XF Version ID) – ID ukazuje verzi formátu XF
  • Hlavička textu XF (XF Lyrics Header) – používá definovaný SMF meta-event Cue Point. Data k dalším textovým událostem (lyric meta-events)

XF Informace záhlaví – společné

  • XF Information Header — Common — ID Hlavička
  • Date (year/month/day of publication) – datum
  • Country (country of production) – země
  • Category (genre of song) – kategorie
  • Beat – takt
  • Instrument on Melody part
  • Vocal Type – typ vokálu
  • Composer – skladatel
  • Lyricist – textař
  • Arranger – aranžer
  • Performer (performer or singer) interpret- zpěvák
  • Programmer – programátor
  • Keyword – klíčová slova

– midi podle RolandGM – tune1000

tady to musím dopsat 🙂 ale viz tabulka nahoře:

#1: piano ; #2: basa; #3: plochy; #4: melodie;#5: melodie (duet); #6: kytary; #10: bicí; #16: vokály/harmony

 

– midi podle YamahaXG

Fixní kanály:

CH1: Melodie nebo part, kteý hraje melodii v této skladbě

CH 3: Bass nebo part odpovídající base

CH 10: Bicí (Používat pouze pro bicí.)

  1. Základní nástroje skladby (klavírní, kytarové atd.) By měly používat MIDI kanály očíslované od nejnižší. Příklad: Piano = ch.4 / Kytara rytmická = ch.5, atd.
  2. Pokud je skladba duet, části melodie budou používat kanály MIDI 1 a 2.
    Nepoužívejte pro části melodie MIDI kanály jiné než 1 a 2. To se však nemusí vztahovat na klasické orchestrální skladby atd.
  3. Při použití 17 a více partů ve používejte formát SMF 1 (XG Level 2 nebo vyšší

Použijete-li ve skladbě povel Program Change, dodržujte následující pořadí eventů (povelů):

Control Data:

Number:

Data

Bank Select MSB:

CC#0:

Bank Select LSB:

CC#32:

Program Change:

0 – 127

Volume:

CC#7:

0 – 127

Panpot:

CC#10:

0 – 127

Reverb Send Level:

CC#91:

0 – 127

Chorus Send Level:

CC#93:

0 – 127

Brightness:

CC#74:

0 – 127

Harmonic Content:

CC#71:

0 – 127

Attack Time:

CC#73:

 0 – 127
 Release Time: CC#72:

0 – 127

Pozor: Nechte 1/480 nebo více tiků mezi jednotlivými eventy (událostmi)!!! Ne všechno ve stejném čase

 

Ukončení skladby:

Pro provedení „Fade Out“  používejte univerzální realtime message Master Volume (F0H 7FH 7FH 04H 01H SSH TTH F7H).
Nepoužívejte povely XG Master Volume nebo Master Attenuator

Konec skladby musí být konzistentní.

www.midi.org