Struktura komunikatów MIDI – trochę o bitach i bajtach

W tym krótkim artykule przedstawiam informacje o strukturze komunikatów MIDI. Z punktu widzenia muzyka to nie jest wiedza niezbędna do pracy z MIDI. Jeśli jednak jesteś osobą dociekliwą (a może ciekawską?) i masz zacięcie do informatyki, bitów i bajtów, to dowiedz się, co zawiera strumień danych MIDI na poziomie binarnym.

Interfejs MIDI jest dwukierunkowym połączeniem asynchronicznym. Prędkość transmisji w tym standardzie wynosi 31250 bitów na sekundę. Format danych MIDI jest ośmiobitowy (informacja podzielona jest na bajty). Dodatkowo zawsze występują dwa bity kontrolne – startu i stopu. Innymi słowy, do każdego bajtu dołączony jest bit startu (na początku bajtu) i bit stopu (na jego końcu).

Zdarzenia MIDI (zwane także rozkazami) mogą składać się z jednego lub z większej liczby bajtów. Zdarzenia przesyłane są jako komunikaty. Typowy komunikat składa się z jednego bajtu sterującego (status byte) i jednego lub kilku bajtów danych (data byte). Rodzaj bajtu jest rozpoznawany na podstawie wartości swojego najstarszego bitu. Jeżeli wynosi ona „1”, jest to bajt sterujący, a jeżeli „0”, to jest to bajt danych. Bajt sterujący zawiera informację o tym, które z zadań określonych w standardzie MIDI ma wykonać instrument. Mogą to być np.: Note On/Off (włącz/wyłącz nutę), Control Change (zmień któryś z parametrów urządzenia), Program Change (zmień brzmienie). Bajt sterujący określa również numer kanału MIDI, na którym ma zostać odebrane transmitowane zdarzenie. Informacja o numerze kanału reprezentowana jest przez cztery bity (bajt sterujący jest podzielony), w konsekwencji czego liczba dostępnych kanałów MIDI jest ograniczona do 16. Bajt danych może przyjmować 128 wartości (od 0 do 127). Dzieje się tak dlatego, że wartość najstarszego bitu jest stała i zawsze wynosi „0”. Z tej przyczyny, maksymalna wartość wielu parametrów w elektronicznych instrumentach muzycznych wynosi 127.

Dodaj komentarz