Co trzeba wiedzieć o MIDI.pdf

(468 KB) Pobierz
113656416 UNPDF
EiS 2003-03
TECHNOLOGIA
Co trzeba wiedzieć o MIDI
Artur Kraszewski
MIDI obchodzi właśnie 20-lecie swego powstania, jest więc jednym z najstarszych obecnie
obowiązujących w technologii muzycznej standardów. Jego popularność nie maleje, co więcej -
ciągle zdobywa nowych zwolenników i użytkowników.
W poniższym artykule zbierzemy w jedną całość podstawowe informacje, które mogą okazać się
przydatne w przypadku osób wykorzystujących MIDI w swojej pracy z dźwiękiem. Zaczniemy od
początku, a zatem:
czym jest MIDI? Najprościej rzecz ujmując jest to format
jednokierunkowego przesyłania danych, zawierających
informacje o charakterze muzycznym. Nie są to jednak dane
audio, a jedynie komunikaty w postaci cyfrowej, informujące
urządzenie odbiorcze o tym, że został wyzwolony dźwięk o
określonej wysokości, czasie trwania, dynamice i innych
parametrach uwzględnionych w specyfikacji MIDI.
MIDI zostało wymyślone po to, by przenosić określone zbiory
poleceń. Idea tego formatu była taka, że grając na jednym
instrumencie wyposażonym w MIDI można sterować innym
instrumentem dzięki poleceniom note-on i note-off (włączenie i
wyłączenie nuty). Każdej informacji note-on towarzyszy
komunikat Velocity, który zawiera w sobie informację o sile nacisku na dany klawisz. MIDI
uwzględnia jeszcze szereg innych parametrów charakteryzujących dany dźwięk, takich jak
wysokość tonu, modulacja dźwięku itp. Od chwili swego powstania MIDI było systematycznie
wzbogacane, umożliwiając coraz wierniejsze przenoszenie treści muzycznych, z natury rzeczy
113656416.001.png 113656416.002.png
dość opornie poddających się wszelkiego typu standardom. Jednak oryginalna specyfikacja MIDI
nigdy nie została zmieniona, dlatego nawet instrumenty z początku ery MIDI, choć pozbawione
szeregu współcześnie stosowanych funkcji, współpracują z każdym obecnie produkowanym
urządzeniem.
Transmisja danych MIDI odbywa się w formacie szeregowym,
czyli bit za bitem z szybkością 31.250 bitów na sekundę. To
wystarczająco szybko, by tą metodą przekazać ilość danych
towarzyszących nawet najbardziej wyrafinowanym wykonaniom
muzycznym.
Teraz trochę liczb. Na przesłanie pojedynczej informacji MIDI
note-on potrzeba ok. 1 milisekundy (dokładniej 0,96ms). W
przypadku MIDI każdy bajt składa się z dziesięciu bitów, a
informacja note-on zajmuje trzy bajty (pierwszy to numer kanału
będący częścią bajtu statusu, drugi to numer nuty, a trzeci to
velocity - szybkość nacisku klawisza). Przesłanie informacji o
naciśnięciu 10-głosowego akordu zajmie 10ms: komunikat
opisujący dziesiątą nutę w akordzie dotrze do odbiornika 10
milisekund po odebraniu komunikatu opisującego pierwszą nutę.
Sterując urządzenie generujące dźwięki (np. moduł
brzmieniowy) z klawiatury sterującej MIDI trzeba brać to
opóźnienie pod uwagę, ale nawet grając najbardziej wymyślne
akordy nigdy nie uderzamy wszystkich dźwięków z idealną
precyzją, stąd jego wpływ na stronę wykonawczą jest praktycznie rzecz biorąc pomijalny.
Nieco inaczej sprawa wygląda w przypadku przesyłaniu komunikatów MIDI wewnątrz komputera,
gdzie nie występują żadne ograniczenia wynikające z konieczności transmisji szeregowej "po
kablu". Oczywiście należy liczyć się z pewną zwłoką w reakcji aplikacji odbierającej komunikat
MIDI (syntezatora programowego) od aplikacji nadawczej (sekwencera MIDI), ale owe opóźnienie
nawet w przypadku powolnych komputerów nie powinno przekroczyć 2ms. Jeśli jednak gramy na
klawiaturze MIDI wyzwalając dźwięki w zainstalowanym w komputerze syntezatorze wirtualnym,
wówczas oprócz opóźnienia w przesłaniu danych z klawiatury do syntezatora należy wziąć pod
uwagę tzw. latencję, czyli czas potrzebny komputerowi na przeliczenie danych wygenerowanych
przez syntezator i wyemitowanie dźwięku na wyjściu karty dźwiękowej. Choć współczesne
interfejsu audio potrafią zejść z poziomem latencji do 1.5ms, to jednak w praktyce latencja rzędu
10ms jest całkiem przyzwoitym wynikiem. Sumując to z kolejnymi 10ms, wynikającymi z czasu
transmisji szeregowej z klawiatury do komputera, otrzymujemy 20ms i jednocześnie odpowiedź na
pytanie, dlaczego niektórzy bardziej wymagający instrumentaliści nie przepadają za grą z
wykorzystaniem instrumentów wirtualnych zainstalowanych w komputerze, preferując rozwiązania
sprzętowe.
Kanały w MIDI odgrywają taką samą rolę jak kanały w telewizorze podłączonym do sieci
kablowej - na każdym można przesłać inną informację. Mając telewizor z podglądem wielu
kanałów, można oglądać wiele kanałów jednocześnie. Odpowiednikiem takiego telewizora z
możliwością równorzędnego podglądu wielu kanałów jest w świecie MIDI syntezator (lub moduł
czy sampler) multitimbralny. W przypadku MIDI pojedynczym kablem lub za pośrednictwem
wirtualnego portu MIDI można przesłać do 16 kanałów, z których każdy - trzymając się analogii
do telewizji kablowej - zawiera inną treść, czyli w naszym wypadku opisuje co ma grać dany
instrument zarówno w sferze pojedynczych dźwięków jak i całych akordów. Zadaniem
użytkownika jest określenie tych samych kanałów po stronie odbiorczej i nadawczej. Chodzi o to,
że kanał, na którym przesyłamy informacje o grze perkusji, musi sterować tym blokiem syntezatora
lub samplera, który odpowiada za odtwarzanie dźwięków perkusji, a nie np. fortepianu.
Chcąc w swej aranżacji wykorzystać więcej niż 16 instrumentów, musisz skorzystać z
113656416.003.png
dodatkowego portu MIDI - w świecie fizycznym jest to dodatkowe gniazdo MIDI, a w świecie
wirtualnym kolejny port, którego nazwę powinieneś znaleźć w opcjach ustawień sekwencera i
programowego syntezatora/samplera. Chcąc za pośrednictwem MIDI odtwarzać partię, do
wykonania której potrzebne są 64 instrumenty, musisz dysponować czterema portami MIDI -
zarówno po stronie sterowania jak i odtwarzania.
Coraz więcej współcześnie produkowanych instrumentów wyposażonych jest w interfejs USB,
który pozwala na transmisję znacznie większej liczby kanałów za pośrednictwem jednego kabla,
bez kłopotliwych wielokrotnych połączeń. USB ma jednak rację bytu w przypadku transmisji do i z
komputera; jeśli chcemy podłączyć klawiaturę sterującą ze sprzętowym modułem lub
syntezatorem, to w dalszym ciągu będziemy potrzebować kabli i gniazd MIDI.
General MIDI to standard wprowadzony do użycia w 1991 roku. Wprawdzie od chwili
rozpowszechnienia syntezatorów wirtualnych coraz bardziej traci on na znaczeniu, jednak warto
przypomnieć sobie, czym jest i do czego może być potrzebny.
Od samego początku występował problem współpracy pomiędzy różnymi urządzeniami MIDI,
ponieważ każdy producent używał własnej metody zapisu programów w pamięci. Informacja MIDI
o numerze programu np. 18 w jednym syntezatorze uruchamiała dźwięk fletu, w innym organy
Hammonda, a w jeszcze innym - zestaw perkusyjny. Sprawa nabrała znaczenia, gdy pomiędzy
różnymi studiami nagraniowymi i twórcami zaczęły krążyć dyskietki zarejestrowane w systemie
SMF (Standard MIDI Files - patrz niżej). To spowodowało zintensyfikowanie prac nad ustaleniem
wspólnego standardu, który został określony mianem General MIDI (GM). General MIDI
wprowadził listę 128 brzmień, które w każdym syntezatorze kompatybilnym z tym standardem
muszą odpowiadać za barwę konkretnego instrumentu bądź efektu. I tak - pierwsze sześć
programów to różne odmiany brzmienia typu Piano, od 16 do 20 mamy różnego typu organy, od
24 do 32 - gitary, od 32 do 39 - basy, itd. aż do 128. Aranżer, który zapisał swoje pomysły za
pomocą sekwencera w standardzie SMF, może być pewien, że po odtworzeniu na innym
instrumencie, ustawiony przez niego slap electric bass będzie brzmiał przynajmniej podobnie (choć
z tym akurat bywa różnie - trudno od instrumentu za 600 zł wymagać, by jego bank General MIDI
brzmiał tak, jak w instrumencie za 6.000 zł). Coraz częściej można spotkać się (szczególnie w
przypadku banków brzmień dla samplerów) z zestawami General MIDI, w których poszczególne
brzmienia są znakomicie spróbkowanymi instrumentami oryginalnymi, a nie ich syntetycznymi
odpowiednikami, których plastikowe brzmienie kojarzono z tanimi instrumentami klasy keyboard.
Oprócz zgodności brzmień GM ma swoje dodatkowe wymagania. Instrumenty GM muszą
dysponować co najmniej 24-głosową polifonią i muszą współpracować z 16 kanałami MIDI
jednocześnie. Zestaw perkusyjny musi mieć określony strój - bęben centralny (stopa) w niskim C,
werbel w D, itd., a jednocześnie musi odpowiadać perkusyjnej części MIDI na kanale 10.
Parametry, których GM nie narzuca, to górne możliwości danego instrumentu. Może on mieć
dowolną polifonię powyżej 24 i dowolną liczbą programów powyżej 128, a mimo to w dalszym
ciągu będzie sklasyfikowany jako instrument kompatybilny z GM.
Choć General MIDI nie ma już takiego znaczenia jak kiedyś (zresztą jego pozycja jako standardu
zawsze była dość niepewna), to jednak w dalszym ciągu jest chętnie stosowane właśnie z uwagi na
to, iż zachowuje główną myśl aranżacyjną zawartą w utworze. Plik zapisany w standardzie SMF i
odtwarzany na różnych instrumentach jest jak dyrygent, który dyryguje różnie brzmiącymi
orkiestrami, ale zawsze o tym samym składzie instrumentalnym. I o to w tym wszystkim chodziło.
Sekwencer MIDI jest elektronicznym odpowiednikiem pozytywek na taśmy perforowane i
występuje zarówno w postaci programowej jak i sprzętowej. Sekwencer nie rejestruje samych
dźwięków, lecz dane określające owe dźwięki - na podobieństwo perforowanej taśmy papierowej
stosowanej w pozytywkach. Jeżeli umieścisz taśmę perforowaną w rozstrojonej pozytywce lub w
pozytywce z brakującymi strunami, otrzymasz dźwięk zmieniony, nawet gdy taśma jest taka sama
jak poprzednio. W ten sam sposób sekwencer wysyła polecenia w formie komunikatów MIDI do
modułu odbiorczego, syntezatora czy samplera.
Praca z sekwencerem przypomina trochę pracę komputerowego edytora tekstów. Tak jak w
edytorze możesz pisać, przenosić i wycinać bloki liter (w przypadku MIDI odpowiednikiem liter są
nuty). Możesz zmienić wygląd, wielkość pisma, przenosić dane lub zachowywać je na dysku.
Sekwencer musi mieć jednak większe możliwości niż przeciętny edytor tekstu, ponieważ
informacja MIDI zawiera w sobie dużo więcej treści niż tekst. Sekwencer organizuje swoje
informacje muzyczne w postaci ścieżek, przez co upodabnia się do wielośladu. Każda ścieżka jest
zazwyczaj pojedynczym kanałem MIDI - na podobieństwo partii piana lub basu w partyturze.
Ścieżki mogą być wyłączane (tak jak w wielośladzie) i w ten sposób słyszysz tylko te partie, które
Cię w danym momencie interesują.
Podstawową metodą edycji w sekwencerze jest kwantyzacja, używana do automatycznego
wyrównania w czasie pojedynczych nut. Sekwencer robi to przez przesuwanie każdej nuty w
czasie do przodu lub do tyłu, tak by umieścić ją dokładnie w rytmie. Użytkownik sam definiuje
siatkę kwantyzacji, czyli decyduje o wartości najmniejszej jednostki tempa muzycznego
rozpoznawanego przez sekwencer. Aby wykonywać tę czynność - podobnie jak i wiele pozostałych
- sekwencer musi posiadać wewnętrzny zegar dający punkt odniesienia i stabilną bazę czasową.
Częstotliwość zegara sekwencera podaje się w jednostkach zwanych PPQ (pulses per quarter-notes
- impulsy na ćwierćnutę), która waha się od 24 do 960.
Sekwencery
MIDI pozwalają na bardzo zaawansowaną edycję kontrolerów towarzyszących zdarzeniom MIDI.
Można je edytować liczbowo przez wpisywanie odpowiednich wartości lub znacznie bardziej
intuicyjnie, po prostu kreśląc narzędziem ołówka ich oczekiwany przebieg. Oto okno edytora
pianolowego programu Cubase. W dolnym rzędzie znajdują się pionowe paski, pokazujące
aktualną wartość kontrolerów (od 0 do 127) dla poszczególnych dźwięków. Z rozwijanego menu
wybieramy rodzaj kontrolerów, który chcemy w danym momencie edytować.
Standard MIDI Files (SMF) to sposób wymiany informacji pomiędzy jednym sekwencerem a
drugim, będący czymś na kształt jednolitego formatu zapisu tekstu w przypadku edytorów, jakim
jest np. RTF czy TXT. Każdy sekwencer używa własnego formatu do zapisywania informacji na
dysku i do rzadkości należą wypadki, gdy sekwencer wyprodukowany przez jedną firmę może bez
konwersji czytać pliki stworzone na sekwencerze innej firmy. Jednak większość sekwencerów ma
113656416.004.png
możliwość zapisu i odtwarzania danych w standardzie SMF. Niektóre typy informacji są
charakterystyczne tylko dla danego typu sekwencera i zostaną utracone w procesie konwersji, lecz
informacje o charakterze typowo muzycznym pozostaną niezmienione. SMF jest zwykle używany
jako platforma wymiany danych między różnego typu programami komputerowymi, sprzętowymi
sekwencerami i urządzeniami (keybordami, stacjami roboczymi) MIDI.
Oryginalna specyfikacja MIDI zakładała istnienie trzech typów SMF: 0, 1 i 2, ale obecnie
stosowane są tylko dwa pierwsze. W przypadku SMF w formacie 0 wszystkie informacje zapisane
są na jednej ścieżce. Ponieważ każde zdarzenie MIDI zawiera w sobie informację o numerze
kanału, ścieżka taka może być bez problemu rozbita na pojedyncze ścieżki zawierające informacje
o poszczególnych instrumentach wykorzystywanych w aranżacji - np. w przypadku sekwencerów z
rodziny Cakewalk używa się do tego celu skryptu Tracks.CAL. Plik SMF w formacie 1 zawiera
informacje MIDI w formacie wielościeżkowym, włącznie z nazwami poszczególnych ścieżek - i
jest gotowy do natychmiastowego użycia i edycji.
Synchronizacja jest jednym z najważniejszych aspektów współpracy urządzeń lub programów
wykorzystujących do komunikacji protokół MIDI. Najprostszą formą synchronizacji jest
wprowadzona wraz pierwotną specyfikacją MIDI synchronizacja MIDI Sync (MIDI Clock).
Uwzględnia ona transmisję następujących komunikatów: Start (nakazujących urządzeniu
podporządkowanemu rozpoczęcie odtwarzania z chwilą początku songu), Stop (zatrzymujących
odtwarzanie), Continue (nakazujących odtwarzanie od wskazanego miejsca) oraz Song Position
Pointer (nakazujących skok w odtwarzaniu do określonego miejsca w songu). Urządzenie
nadrzędne (Master) wysyła do urządzenia podporządkowanego (Slave) komunikaty zegarowe z
częstotliwością 24 impulsów na ćwierćnutę. MIDI Sync jest bazą czasową zależną od tempa -
jeżeli główny sekwencer przyspiesza, wysyła więcej impulsów na sekundę, co powoduje
przyspieszanie urządzenia Slave.
Jeśli zachodzi potrzeba synchronizacji dźwięku i obrazu należy skorzystać z innego typu
synchronizacji - MIDI Time Code. Jest ona formą synchronizacji SMPTE i odnosi się do czasu
rzeczywistego wyrażonego w godzinach, minutach, sekundach i ramkach. SMPTE jest złożonym
sygnałem audio nagrywanym na specjalnych ścieżkach urządzenia rejestrującego przy pomocy
generatora kodu czasowego (Time Code). Urządzenie odczytujące ten kod może być w każdej
chwili dosynchronizowane do dowolnego miejsca na nośniku, na którym zapisano kod czasowy.
Kod SMPTE nie może być używany do przesyłania za pomocą przewodu MIDI, gdyż MIDI jest
sygnałem cyfrowym. Aby urządzenia MIDI mogły odczytywać SMPTE i dostosowywać się do
niego, muszą być wyposażone w sprzętowy lub programowy konwerter SMPTE na MIDI Time
Code (MTC). MTC jest odpowiednikiem SMPTE, ale zamiast w oparciu o sygnał audio pracuje na
bazie specjalnych komunikatów MIDI. Po otrzymaniu komunikatu MTC sekwencer MIDI
przelicza go na takty, bity i impulsy zegara, które korespondują z odpowiadającymi im jednostkami
czasu rzeczywistego. Synchronizacja MTC nie przenosi zmian tempa.
Ani SMPTE ani MIDI nie są jednak wystarczająco dokładne, by zapewnić dobrą synchronizację w
procesie cyfrowej rejestracji sygnału. Najwyższej jakości urządzenia cyfrowe audio są
synchronizowane wzajemnie za pomocą sygnału zwanego wordclock. Ten sygnał zegarowy jest
zgodny z pojedynczym impulsem próbkującym. Specjalizowane urządzenia używają do
synchronizacji zarówno SMPTE jak i wordclock oraz jakiegoś innego odnośnika
synchronizującego.
Komunikaty MIDI dzielą się na siedem kategorii o różnej funkcjonalności i przeznaczeniu: Note,
Key Aftertouch, Channel Aftertouch, Controller, Program Change, Pitch Bend i System Exclusive.
W ramach kategorii Note sklasyfikowano komunikaty Note On i Note Off, informujące o
włączeniu i wyłączeniu nuty. W niektórych klawiaturach MIDI, oprócz informacji o naciśnięciu i
puszczeniu klawisza, przetwarzane i wysyłane na zewnętrz są komunikaty o sile nacisku -
Aftertouch. Parametr ten może służyć do określenia głośności granego dźwięku, jego modulacji lub
zmian brzmienia. Aftertouch występuje w postaci Key Aftertouch - różny dla poszczególnych
Zgłoś jeśli naruszono regulamin