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í.)
- 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.
- 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. - 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í.