MIDI cz.1.pdf

(540 KB) Pobierz
ep_11_089-093_midi_cz1.indd
K U R S
MIDI – cyfrowy interfejs
instrumentów muzycznych ,
część 1
Akronim MIDI jest
prawdopodobnie znany
wszystkim Czytelnikom EP.
Choć kojarzymy go głównie
z plikami dźwiękowymi,
jego znaczenie w świecie
muzyki i sztuki jest znacznie
większe. W cyklu artykułów,
który właśnie rozpoczynamy,
postaramy się przybliżyć
stronę techniczną standardu
MIDI. Po teorii przyjdzie czas
na narzędzia, które ułatwiają
samodzielną budowę urządzeń
wyposażonych w ten interfejs.
Na koniec zaprezentujemy
układ interfejsowy, który
posłuży do zbudowania w pełni
funkcjonalnego instrumentu.
MIDI – cyfrowy interfejs instru-
mentów muzycznych ( Musical In-
strument Digital Interface ) – wpro-
wadzono niemal ćwierć wieku
temu w odpowiedzi na potrzebę
łączenia elektronicznych urządzeń
muzycznych różnych producentów.
Choć początkowo chodziło głównie
o łączenie klawiatur muzycznych
z urządzeniami syntetyzującymi
dźwięk (syntezatorami), MIDI zy-
skało znacznie większe znaczenie.
Nie jest możliwe, aby współ-
czesne kompozycje muzyczne były
tworzone bez udziału technik elek-
tronicznej syntezy. Powodem jest
mnogość powstających utworów,
podkładów filmowych i innych
kompozycji służących rozrywce.
Dodatkowe problemy stwarza po-
trzeba synchronizacji, w szczególno-
ści w przypadku przedstawień cza-
su rzeczywistego. Ze względu na
ograniczenia organizacyjne, a cza-
sem niewystarczające umiejętności,
muzycy nie zawsze są w stanie
sprostać wszystkim problemom sa-
modzielnie. Na ratunek przychodzi
wówczas MIDI.
Dzisiejsze systemy MIDI dają
muzykom niezwykle duże możli-
wości. Komponowanie muzyki sta-
je się prostsze, gdyż powstające
utwory mogą być łatwo zapisy-
wane, parametrycznie odtwarzane
i są łatwo edytowalne. Co więcej,
ułatwiona jest również współpra-
ca członków zespołu – wszystkie
części utworu mogą być tworzo-
ne oddzielnie, a następnie łączone
w sposób cyfrowy. Pomyłki i trudne
fragmenty kompozycji nie stanowią
przy tym problemu – mogą być
łatwo poprawiane lub dodawane
manualnie, bez potrzeby ponowne-
go nagrywania.
MIDI to jednak nie tylko in-
terfejs instrumentów muzycznych.
Standard ten został rozbudowany
o protokoły, które umożliwiają ste-
rowanie urządzeniami i zarządza-
nie przedstawieniami. W połączeniu
z podprotokołami synchronizacji daje
to ogromne możliwości. Właśnie
dzięki tym rozszerzeniom MIDI wy-
korzystuje się nawet w takich miej-
scach, jak teatry i parki rozrywki.
Choć zalety są niepodważalne,
należałoby odsłonić również drugą
stronę zagadnienia. MIDI z defini-
cji dotyczy elektronicznej dziedziny
muzyki. Mimo że syntetyzowany
dźwięk może obecnie niemalże do-
wolnie wiernie imitować brzmienie
instrumentów klasycznych, to zna-
czenie naturalnie tworzonej muzyki
pozostaje niezachwiane. Czy w przy-
szłości się to zmieni – zobaczymy.
Trochę historii
Z historią MIDI nieodłącznie
związane są przynajmniej dwie
firmy muzyczne – Roland i Sequ-
ential Circuits. Już w początku lat
osiemdziesiątych produkowały one
elektroniczny sprzęt muzyczny na
skalę masową. Sprzedawane urzą-
dzenia co prawda miały możliwość
łączenia, ale wyłącznie z produkta-
mi tego samego producenta. W ro-
ku 1982, w trakcie targów przemy-
słu muzycznego wymienione firmy
wykorzystały okazję i postanowiły
połączyć siły w celu stworzenia in-
terfejsu uniwersalnego. Efekt prac
zaprezentowano na kolejnych tar-
gach 1983 roku. Pomysł łączenia
urządzeń różnych producentów
spotkał się z dużą aprobatą, a inne
firmy (jako pierwsza Yamaha) rów-
nież zapragnęły MIDI na pokładzie
swojego sprzętu. Aby uniezależnić
standard od producentów, powo-
Elektronika Praktyczna 11/2005
89
27876349.036.png
K U R S
Tab. 1. Wiadomości dźwiękowe
Wiadomość Bajt statusu I bajt danych
II bajt danych Komentarz
generacji dźwięku
(note on event)
1001 kkkk
k – kod kanału
0nnn nnnn
n – kod nuty*
0sss ssss
s – siła uderzenia
(głośność)
W przypadku nastawy zerowej głośności (s=0),
wiadomość ta jest równoznaczna z wiadomością
wygaszenia dźwięku.
wygaszenia dźwięku
(note off event)
1000 kkkk
k – kod kanału
0nnn nnnn
n – kod nuty*
0sss ssss
s – szybkość
puszczenia Wygasza wygenerowany wcześniej dźwięk.
modulacji dźwięku
(polyphonic
key pressure /
aftertouch)
1010 kkkk
k – kod kanału
0nnn nnnn
n – kod nuty*
0sss ssss
s – wartość siły
Dotyczy dźwięku już wybrzmiewającego, dostarczając
informacji o sile nacisku na klawisz (jeśli klawiatura
posiada taką opcję). Interpretacja zależy od
syntezatora (zachodzi przykładowo modulacja
obwiedni lub częstotliwości).
modulacji kanału
(channel pressure /
aftertouch)
1101 kkkk
k – kod kanału
0sss ssss
s – wartość siły
[brak]
Dotyczy wszystkich dźwięków wybrzmiewających na
danym kanale, dostarczając informacji o sile nacisku
na całą klawiaturę (jeśli klawiatura posiada taką
opcję). Interpretacja jak wyżej.
zmiany brzmienia
kanału
(program change)
1100 kkkk
k – kod kanału
0bbb bbbb
b – kod brzmienia** [brak]
Zmienia brzmienie, jakie będzie przyporządkowywane
dźwiękom generowanym na danym kanale
w przyszłości.
zmiany tonu kanału
(pitch bend)
1110 kkkk
k – kod kanału
0zzz zzzz
z – poziom zmiany [LSB]
0zzz zzzz
z – poziom
zmiany [MSB]
Przesuwa ton wszystkich wybrzmiewających na
danym kanale dźwięków w górę lub w dół względem
ich tonów podstawowych, domyślnie w zakresie
+/– 2 półtonów (lub zależnie od zerowego
sterownika RPN). Wiadomość ta odpowiada pokrętłu
modulacji tonu, w które wyposażona jest większość
klawiatur muzycznych.
z = 0x0000 – przesunięcie o –2 półtony
z = 0x2000 – brak zmiany
z = 0x3FFF – przesunięcie o +2 półtony
sterująca
(control change)
1011 kkkk
k – kod kanału
0sss ssss
s – kod sterownika***
0www wwww
w
– nowa wartość
sterownika
Wiadomość zmieniająca właściwości danego kanału
poprzez manipulowanie wartościami sterowników.
Więcej informacji w dalszej części artykułu.
* – patrz tabela 2
** – patrz tabela 3
*** – patrz tabela 4
łano organizację pod nazwą MIDI
Manufacturers Association (MMA).
To ona do dziś zajmuje się rozwi-
janiem standardu MIDI, dbaniem
o jego spójność i rozprowadzaniem
dokumentacji na jego temat.
Trzeba przyznać, że w defini-
cja standardu udała się wzorowo.
Do dziś nie ma tu znaczących
odstępstw czy rozłamów. Wersja
standardu MIDI z roku 1983 była
oznaczana numerem 1.0 i – co
ciekawe – numer ten wciąż nie
został zmieniony! Oczywiście, po-
wstało wiele rozszerzeń, a niektó-
re zagadnienia doprecyzowano, ale
dzisiejsze MIDI jest wciąż zgodne
ze swoim poprzednikiem sprzed
dwudziestu kilku lat.
W roku 1991 wprowadzono for-
malne rozszerzenie o nazwie General
MIDI. Określało ono wymogi stawia-
ne syntezatorom (minimalną możli-
wą liczbę wspólnie wygrywanych
dźwięków, liczbę obsługiwanych ka-
nałów itp.), „na stałe” przyporząd-
kowywało kody różnym brzmieniom
instrumentów oraz wprowadzało kil-
ka rozszerzeń funkcjonalnych. Dzięki
GM urządzenia stały się zgodne nie
tylko z punktu widzenia techniczne-
go, ale również muzycznego. Utwór
odtwarzany na jednym syntezatorze
powinien był brzmieć podobnie na
innych, zgodnych z rozszerzeniem
GM urządzeniach.
Kolejne rozszerzenie wprowadzo-
no w roku 1999 i nazwano GM2.
Jest ono kompatybilne ze swoim po-
przednikiem, dodając MIDI jeszcze
więcej funkcjonalności. W rozszerze-
niu GM2 wprowadzono nowe ele-
menty protokołu (uniwersalne komu-
nikaty SysEx) i dodatkowe sterowni-
ki, o których powiemy wkrótce.
Innym rozsze-
rzeniem standardu
MIDI 1.0 jest GM
Lite. Jest to w rze-
czywistości GM1
o zmniejszonych
możliwościach. GM
Lite jest implemen-
towany w prostszym
sprzęcie, w którym
pełna funkcjonalność
GM1 byłaby zbędna.
Dalsza część ar-
tykułu poświęco-
na jest standardo-
wi MIDI 1.0 wraz z rozszerzenia-
mi GM1 i GM2. Będzie to miało
znaczenie w przypadku zagadnienia
banków brzmień, sterowników i pro-
tokołu wiadomości specjalnych.
Sprzętowe tło
By zrozumieć, czym jest MIDI,
należy w pierwszej kolejności przyj-
rzeć się urządzeniom je wykorzy-
stującym. Historycznie pierwszym
i najbardziej oczywistym jest klawia-
tura muzyczna. Zbiera ona informa-
cje o działaniach podejmowanych
przez artystę i przetwarza je na ko-
Rys. 1. Sposób łączenia klawiatury muzycznej z sekwen-
cerem i modułami dźwiękowymi
90
Elektronika Praktyczna 11/2005
27876349.037.png 27876349.038.png 27876349.039.png 27876349.001.png 27876349.002.png 27876349.003.png 27876349.004.png 27876349.005.png 27876349.006.png 27876349.007.png 27876349.008.png 27876349.009.png
K U R S
Kody nut
C C# D D# E F F# G G# A A# B
–1 0 1 2 3 4 5 6 7 8 9 10 11
0 12 13 14 15 16 17 18 19 20 21 22 23
1 24 25 26 27 28 29 30 31 32 33 34 35
2 36 37 38 39 40 41 42 43 44 45 46 47
3 48 49 50 51 52 53 54 55 56 57 58 59
4 60 61 62 63 64 65 66 67 68 69 70 71
5 72 73 74 75 76 77 78 79 80 81 82 83
6 84 85 86 87 88 89 90 91 92 93 94 95
7 96 97 98 99 100 101 102 103 104 105 106 107
8 108 109 110 111 112 113 114 115
116
117
118
119
9 120 121 122 123 124 125 126 127
munikaty MIDI, o których dalej. Ta-
kie „nieme” klawiatury (nie mające
możliwości syntetyzowania dźwięku)
są spotykane rzadziej niż urządze-
nia uniwersalne i zaliczają się ra-
czej do sprzętu profesjonalnego.
Urządzeniem umożliwiającym
syntetyzowanie dźwięku jest moduł
dźwiękowy (syntezator lub sampler).
Może to być na przykład „czarna
skrzynka”, wyposażona w złącza
MIDI, wyjścia głośnikowe i interfejs
użytkownika, poprzez który zacho-
dzi konfiguracja urządzenia. Dopie-
ro połączenie wolnostojącego modu-
łu dźwiękowego i niemej klawiatury
muzycznej (dokonywane poprzez
MIDI) daje w wyniku w pełni funk-
cjonalny instrument. W rzeczywi-
stości jednak większość klawiatur
MIDI posiada wbudowany moduł
dźwiękowy. Klawiatury tego typu
nazywa się często syntezatorami,
co bywa nieco mylące.
Syntezator i sampler to funk-
cjonalnie te same urządzenia, róż-
niące się jednak sposobem syn-
tezy dźwięku. Syntezator tworzy
dźwięki sztucznie, poprzez syntezę
częstotliwościową i manipulowanie
obwiednią. Sampler to natomiast
urządzenie posiadające w swej pa-
mięci nieulotnej cyfrowo zapisane
próbki dźwięku wygenerowane-
go przez instrument rzeczywisty.
W jego przypadku synteza pole-
ga na odtwarzaniu próbek z szyb-
kością zależną od wygrywanego
tonu. W efekcie można otrzymać
brzmienie przypominające instru-
ment rzeczywisty, bazując tylko na
kilku zbiorach próbek różnych to-
nów i informacji o obwiedni (jedna
próbka to zbyt mało, by odtworzyć
naturalne brzmienie kilu oktaw).
Kolejnym urządzeniem MIDI jest
sekwencer. Również on może mieć
postać skrzynki wyposażonej w złą-
cza MIDI i interfejs użytkownika
(czy stację dysków). Sekwencery
używa się do cyfrowego zapisy-
wania lub parametrycznego odtwa-
rzania ciągu komunikatów MIDI.
Jest to zatem układ, mający swój
odpowiednik w klasycznej technice
audio w postaci magnetofonu. Rów-
nież sekwencer może być wbudo-
wany w klawiaturę muzyczną.
Co ciekawe, jednym z najszybciej
wprowadzonych urządzeń z interfej-
sem MIDI była karta
rozszerzeń dla kom-
putera PC. Urządzenia
tego typu mogą praco-
wać jako sekwencery,
syntezatory, samplery,
urządzenia interfejso-
we i inne, zależnie od
oprogramowania ste-
rującego komputerem
(lub sprzętowego po-
ziomu skomplikowa-
nia karty w przypadku
wersji profesjonalnych).
Krótko scharakte-
ryzowane urządzenia
należą do najbardziej popular-
nych. Należy mieć świadomość, że
w rzeczywistości rodzajów urządzeń
z interfejsem MIDI jest multum.
Zaliczają się do nich urządzenia
przetwarzające sygnał dźwiękowy
na komunikaty MIDI, urządze-
nia interfejsowe (na podobieństwo
switch –y w sieciach Ethernet), czy
nawet układy automatyki.
Od strony użytkownika
Urządzenia wyposażone w inter-
fejs MIDI posiadają na swojej obu-
dowie zwykle trzy złącza o nastę-
pujących oznaczeniach: MIDI IN,
MIDI OUT i MIDI THRU (są to
gniazda starego typu – DIN545).
W przypadku sekwencerów, synte-
zatorów i urządzeń interfejsowych
liczba wymienionych gniazd może
być większa od jedności.
MIDI IN to wejście interfejsu.
Przykładowo, poprzez złącze to
syntezator otrzymuje wiadomości
dźwiękowe, czego wynikiem jest
generacja dźwięku, a klawiatura
Słowa dwubajtowe
Ze względu na umowę, według której
bajty danych wiadomości MIDI muszą
posiadać wyzerowany najstarszy bit, część
informacyjna wiadomości jest zawsze
złożona z bajtów o wartościach z zakresu
0...127 (0x00...0x7F). Przy przesyłaniu
dwubajtowego słowa dwa kolejne bajty
danych składają się na wartość 14–bitową,
z czego najczęściej pierwszy tworzy jego
część LSB, a drugi – MSB (są wyjątki
od tej reguły, dlatego kolejność będzie
w artykule zawsze określana). Przykładowo,
jeśli mówimy, że należy przesłać wartość
0x12EF, to w rzeczywistości trzeba przesłać
kolejno bajty 0x6F i 0x25. Zagadnienie to
ma szczególne znaczenie przy określaniu
wartości sterowników i we wiadomościach
specjalnych podprotokołu MTC.
Rys. 2. Sposób łączenia klawiatur muzycznych z kom-
puterem PC
Elektronika Praktyczna 11/2005
91
Tab. 2. Kody nut dla wiadomości dźwiękowych (wg GM2)
Numer
oktawy
27876349.010.png 27876349.011.png 27876349.012.png 27876349.013.png 27876349.014.png 27876349.015.png 27876349.016.png 27876349.017.png 27876349.018.png 27876349.019.png 27876349.020.png 27876349.021.png 27876349.022.png 27876349.023.png 27876349.024.png 27876349.025.png 27876349.026.png 27876349.027.png 27876349.028.png
K U R S
Tab. 3. Skrócona lista kodów brzmień
banku podstawowego (wg GM2)
Zakres
kodów
Kategoria
Rys. 4. Postać ramki MIDI w warstwie fizycznej
0...7 pianino i fortepian
8...15 instrumenty perkusyjne
16...23 instrumenty organowe
24...31 gitary
32...39 gitary basowe
40...47 instrumenty smyczkowe
48...55 instrumenty zespołowe
56...63 blaszane instrumenty dęte
64...71 drewniane instrumenty dęte
72...79 fujarki
80...95 instrumenty elektroniczne
96...103 instrumenty elektroniczne FX
104...111 instrumenty tradycyjne
112...119 Perkusje
120...127 efekty dźwiękowe
IN). Po połączeniu i odpowiednim
skonfigurowaniu obydwu urządzeń,
w odpowiedzi na uderzenia kla-
wiszy moduł powinien generować
odpowiednie dźwięki. Dodając do
łańcucha sekwencer i dodatkowe
moduły dźwiękowe (odpowiedzial-
ne za generację dźwięku o różnych
barwach) otrzymamy zestaw przed-
stawiony na rys. 1 . Sekwencer
może tutaj pracować jako cyfrowy
magnetofon lub być przezroczy-
sty, czyli może kopiować sygnały
z wejścia IN na wyjście OUT.
Przedstawiony zestaw ma dzisiaj
małe znaczenie praktyczne. Moduły
dźwiękowe produkowane są obecnie
w postaci modułów wielobrzmienio-
wych ( multitimbral ), czyli mogą-
cych generować jednocześnie wiele
dźwięków o różnych barwach (stąd
łańcuch modułów dźwiękowych
można byłoby zastąpić pojedynczym
urządzeniem). Co więcej, zarówno
wielobrzmieniowe moduły dźwię-
kowe, jak i sekwencery wbudowy-
wane są obecnie w klawiatury mu-
zyczne. Duże znaczenie mają przy
tym komputery PC, które mogą
pracować jako sekwencery, moduły
dźwiękowe, urządzenia interfejsowe
itd. Przykład zestawu zawierającego
komputer jako jedno z ogniw łańcu-
cha MIDI przedstawiono na rys. 2 .
W przedstawio-
nym przypadku
PC–et pracuje
jako sekwencer.
DIN. Standard MIDI określono tak-
że dla szybkiego medium, jakim
jest FireWire (IEEE1394). Ma ono
znaczenie w przypadku wykorzysty-
wania komputera PC w roli ogniwa
rozgałęzionego łańcucha MIDI. Fi-
reWire pozwala przeskoczyć ograni-
czenie prędkości, jakim obarczony
jest interfejs MIDI DIN. W artykule
skupimy się jednak tylko na tym
drugim, ponieważ jest on (i praw-
dopodobnie jeszcze długo będzie)
podstawą świata MIDI.
MIDI DIN ma postać asynchro-
nicznego interfejsu szeregowego
z izolacją galwaniczną, pracującego
w konfiguracji pętli prądowej. Izola-
cja galwaniczna pozwala wyelimino-
wać problem pętli masy, występują-
cej przy łączeniu urządzeń, znajdu-
jących się na różnych potencjałach.
Dzięki konfiguracji pętli prądowej,
w roli izolacji galwanicznej mogą
być stosowane transoptory.
Sposób zagospodarowania wy-
prowadzeń złącza DIN545 (złą-
cze 5–stykowe z rozstawem w ką-
cie 180 stopni) przedstawiono na
rys. 3 . Końcówki o numerach 1
i 3 nie są wykorzystane, natomiast
wyprowadzenie 2 (potencjał masy,
ekran) powinno być dołączone do
masy wyłącznie po stronie nadaj-
nika (MIDI OUT). Oznacza to, że
wyprowadzenie 2 gniazda MIDI IN
wewnątrz urządzenia pozostawia
się zawsze bez połączenia.
Kable połączeniowe powinny
mieć prostą postać, tj. końcówki
powinny być łączone według re-
guły 1:1. Należy przy tym stoso-
wać dwużyłowy przewód ekrano-
wany (łączyć wyłącznie końcówki
4. i 5.), a ekran dołączać do koń-
cówek o numerze 2 po obu stro-
nach kabla. Długość przewodu nie
powinna przekraczać 15 m.
Prędkość bitowa interfejsu MIDI
DIN wynosi 31,250 kbd (z tolerancją
1%). Przesyłane dane mają postać
10–bitowych ramek, składających
się z: bitu startu, 8 bitów danych
i bitu stopu (patrz rys. 4 ). Przesył
pojedynczej ramki trwa zatem około
320 ms. Logicznemu zeru odpowia-
da przepływ prądu o wartości około
5 mA (minimalna wartość, gwaran-
tująca przełączenie transoptorów),
natomiast logicznej jedynce – prze-
muzyczna może odbierać za jego
pośrednictwem komunikaty sterują-
ce jej pracą. MIDI THRU jest wyj-
ściem, dostarczającym bezpośred-
niej kopii sygnału z wejścia MIDI
IN i służy do łączenia urządzeń
w łańcuch ( daisy chain, o którym
dalej). MIDI OUT to natomiast
właściwe wyjście danego urządze-
nia. Przykładowo, w przypadku kla-
wiatury muzycznej poprzez złącze
to nadawane są wiadomości dźwię-
kowe, odpowiadające działaniom
podejmowanym przez artystę.
Najprostszym przykładem prak-
tycznym jest połączenie klawiatu-
ry muzycznej (złącza MIDI OUT)
z modułem dźwiękowym (do MIDI
Rys. 3. Sposób zagospodarowania styków złącza DIN545
dla interfejsu MIDI DIN (widok złączy i gniazd od strony
czołowej)
Warstwa
fizyczna
MIDI zde-
finiowano na
dwóch płaszczy-
znach. Pierwsza
dotyczy podsta-
wowej, histo-
rycznie pierw-
szej jego wersji,
umożliwiającej
łączenie typo-
wych urządzeń
MIDI. Ten ro-
dzaj interfejsu
kojarzony jest
z 5–stykowym
złączem DIN545
i nazywany
w skrócie MIDI
92
Elektronika Praktyczna 11/2005
27876349.029.png 27876349.030.png 27876349.031.png 27876349.032.png 27876349.033.png 27876349.034.png
 
K U R S
rwa w przepływie. Czasy narastania
i opadania zboczy sygnałowych po-
winny być krótsze niż 2 ms.
Jak łatwo zauważyć, ramka
warstwy fizycznej jest podobna do
właściwej dla jednego z wariantów
interfejsu RS–232. Oznacza to, że
do obsługi MIDI wykorzystywać
można (z zastosowaniem konwerte-
rów napięciowo–prądowych z opto-
izolacją) moduły UART mikrokon-
trolerów oraz komputerów PC.
przyporządkowują kanałowi 10
funkcję specjalną (GM2 dopuszcza
tę opcję również dla kanału 11).
Jest on przypisywany instrumentom
perkusyjnym, przez co interpreta-
cja wiadomości generacji dźwięku
odbieranych na kanale 10 prze-
biega nieco inaczej niż na reszcie
kanałów. Ponieważ typowe instru-
menty perkusyjne generują dźwięk,
którego nie opisuje się w kategorii
tonalnej, w GM założono, że infor-
macja o tonie na kanale 10 będzie
interpretowana jako informacja
o rodzaju instrumentu perkusyjnego.
Przykładowo, tonowi F3 na kanale
10 odpowiada dzwon, a tonowi B3
– talerz.
stanowi zakodowany numer kana-
łu, na którym są przesyłane. Zwy-
kle zawierają one jeden lub dwa
bajty danych. Zestawienie dostęp-
nych wiadomości dźwiękowych
wraz z niezbędnymi komentarzami
przedstawiono w tab. 1 .
Ponieważ wiadomości należące
do kategorii dźwiękowej są wyko-
rzystywane najczęściej, mogą być
one przesyłane w tzw. trybie bie-
żącym (ang. running status ). Ozna-
cza to, że bajt statusu ostatnio
transmitowanej wiadomości jest
pamiętany przez urządzenie od-
biorcze i jeśli następna wiadomość
jest identycznego typu, nie musi
być ona poprzedzana bajtem sta-
tusu. Innymi słowy, jeśli zachodzi
potrzeba przesłania dwu lub wię-
cej wiadomości tego samego typu
(np. „generuj dźwięk”), wystarczy
raz nadać odpowiedni bajt statusu,
a następnie przesyłać ciąg bajtów
danych (np. naprzemian bajt okre-
ślający ton i jego głośność). Funk-
cję tę wykorzystuje się najczęściej
przy przesyłaniu wiadomości gene-
racji dźwięku, która może służyć
również do jego wygaszania (przy
nastawie zerowej głośności „gene-
rowanego” dźwięku). Działanie to
pozwala zmniejszyć liczbę bajtów
przesyłanych poprzez interfejs,
a ponieważ jego pasmo jest ogra-
niczone (31,25 kbd), możliwość ta
bywa cenna.
Według rozszerzenia GM1 urzą-
dzenie syntetyzujące dźwięk po-
winno mieć możliwość jednocze-
snej interpretacji minimum 24
dźwięków o minimum 16 różnych
brzmieniach. GM2 narzuca jeszcze
surowszy nakaz, aby moduł mógł
symultanicznie odtwarzać mini-
mum 32 dźwięki. Jak już wspo-
mniano, zarówno GM1 jak i GM2
przypisują kanał 10 (i ewentualnie
11 w przypadku GM2) instrumen-
tom perkusyjnym.
Rafał Baranowski, EP
Rafal.Baranowski@ep.com.pl
Protokół i kanały
Wartości przesyłane poprzez in-
terfejs MIDI można podzielić na
bajty statusu i bajty danych. Ich
połączenie daje w wyniku tzw.
wiadomość (komunikat). Bajt sta-
tusu określa rodzaj i przeznaczenie
wiadomości, natomiast bajty da-
nych stanowią jej część informa-
cyjną. Wiadomości mogą składać
się wyłącznie z bajtu statusu lub
posiadać nieokreśloną liczbę bajtów
danych. W najczęstszym przypadku
komunikat stanowi jednak jeden
bajt statusu i dwa bajty danych.
Aby móc odróżnić bajt statusu
od bajtów danych (w celu wyróżnie-
nia początku wiadomości), najstarszy
bit tego pierwszego musi przyjmo-
wać zawsze wartość wysoką. Analo-
gicznie, bajty danych muszą posia-
dać wyzerowany bit MSB, tj. muszą
zawierać się w przedziale 0...127.
Interfejs MIDI jest logicznie
dzielony na 16 kanałów , nume-
rowanych od 1 do 16. W rozpo-
czynającym większość wiadomości
bajcie statusu kodowany jest nu-
mer kanału, na którym dany ko-
munikat jest przesyłany. Podział
logiczny jest świetnym pomysłem
i stwarza ciekawe możliwości.
Przede wszystkim umożliwia ko-
munikację z wieloma urządzeniami
połączonymi w łańcuch tak, jakby
każde urządzenie wykorzystywało
osobne łącze fizyczne. Wybór adre-
sata wiadomości zachodzi więc po-
przez wybór kanału (kodu kanału
w bajcie statusu), na którym dana
informacja jest przesyłana (urządze-
nia powinny ignorować wiadomo-
ści odbierane na kanałach innych
niż własne). Co więcej, każdemu
kanałowi przyporządkowywany jest
osobny zestaw ustawień. Innymi
słowy, wiadomości mogą być inter-
pretowane w sposób zależny od ka-
nału, na którym zostały odebrane.
Choć kanały są w ogólności
równoprawne, rozszerzenia GM
Rodzaje wiadomości
Jak już wspomniano, rodzaj
wiadomości dźwiękowej jest deter-
minowany przez jej pierwszą część
– bajt statusu. Wiadomości mogą
przy tym należeć do jednej z opi-
sywanych dalej kategorii:
– wiadomości dźwiękowych (ang.
channel voice messages ),
– wiadomości zmiany trybu (ang.
channel mode messages ),
– wiadomości systemowych (ang.
system common messages ),
– wiadomości czasu rzeczywistego
(ang. system real–time messages ).
Wiadomości dźwiękowe i wiado-
mości zmiany trybu przesyła się
zawsze na jednym z dostępnych
kanałów. Numer kanału (1...16) ko-
duje się na młodszej części bajtu
statusu danej wiadomości w po-
staci czterobitowej (bajt statusu
wiadomości kanałowej ma postać
0x*0...0x*F).
Wiadomości systemowe i czasu
rzeczywistego nie są wiadomościa-
mi kanałowymi. Ich bajt statusu
nie zawiera informacji o kanale,
ponieważ wiadomości te są adreso-
wane z reguły do wszystkich połą-
czonych urządzeń.
Wiadomości dźwiękowe
Kategoria wiadomości dźwięko-
wych jest dość obszerna. Zawie-
ra ona wyłącznie te wiadomości,
które bezpośrednio dotyczą gene-
racji dźwięku. Za ich pośrednic-
twem można dźwięk wygenerować,
ustalić jego parametry (jak ton,
głośność, barwę, obwiednię itp.)
i ostatecznie go wygasić.
Wiadomości dźwiękowe są wia-
domościami kanałowymi, stąd
młodszą część ich bajtu statusu
Przydatne adresy internetowe:
[1] http://www.midi.org – witryna
organizacji MMA
[2] http://www.borg.com/~jglatt
– obszerny zbiór artykułów na te-
maty MIDI
[3] http://www.epanorama.net/
links/music.html#midi – zbiór cie-
kawych odnośników
Elektronika Praktyczna 11/2005
93
27876349.035.png
Zgłoś jeśli naruszono regulamin