Standard interfejsu MIDI

[-----]

Poniższy opis jest przedrukiem artykułu, który ukazał się w numerze 3/87 miesięcznika KOMPUTER.

[-----]

Urządzenia typowo wykorzystujące interfejs MIDI wyposażone są w gniazdo odbiorcze MIDI-in i gniazdo nadawcze MIDI-out. Ponadto urządzenie może być również wyposażone w gniazdo pośredniczące MIDI-thru które pozwala na przekazanie dalej informacji wpływająeej przez gniazdo MIDI-in. Wykorzystywane są tu typowe 5-bolcowe gniazda typu DIN, stosowane także w popularnym sprzęcie audiofonicznym. Do gniazda nadawczego może zostać przyłączony tylko jeden odbiornik. Komunikacja większej liczby urządzeń możliwa jest przy wykorzystaniu gniazd MIDI-thru. W ten sposób unika się kłopotliwych w realizacji i zawodnych "połączeń na kablu".

Połączenie elektryczne między nadajnikiem a odbiornikiem zrealizowane jest w postaci tzw. pętli prądowej. Przyjęto, że dla wysterowania odbiornika powinien wystarczać prąd rzędu 5mA. Ponieważ odbiornik jest tylko jeden, w układzie nadajnika można wykorzystać standardowe bramki z serii 74LSxx. Długość kabla połączeniowego nie powinna przekraczać 15metrów.

W 5-bolcowym gnieździe przewidziano, że wyprowadzenia o numerach 5 i 4 przeznaczone są do podłączenia pętli prądowej. Wyprowadzenie o numerze 2 przeznaczone jest do połączenia mas poszczególnych urządzeń. Wyprowadzenie numer 1 przeznaczone jest do sterowania pracą urządzeń (start/stop). Wyprowadzenie numer 3 słuźy do przesyłania sygnału taktującego (24 "uderzenia" na ćwierćnutę).

W interfejsie MIDI informacje przesyłane są w postaci szeregowej. Przyjęto, że szybkość przesyłanej informacji powinna wynosić 31250 bitów na sekundę (z toleraneją 1%). W zdefiniowanym protokole określono obszerny zestaw komunikatów, które umożliwiają współpracę poszczególnyeh urządzeń realizujących funkcje interfejsu. Znaczna część komunikatów przeznaczona jest dla syntezatorów.

Przesyłana szeregowo informacja grupowana jest w bajty. Transmisja każdego bajtu rozpoczyna się od tzw. bitu startu (logiczne "0"), po którym wysyłane jest osiem bitów informacji i tzw.bit stopu (logiezne "1"). W ten sposób odbiornik rozpoznaje początek przesyłanych danyeh przez przejście ze stanu logicznego "1" do stanu "0". W czasie gdy linią interfejsu nie jest przesyłana żadna intormacja, odbiornik odczytuje stan logiczny "1". Jest to typowa konwencja wykorzystywana w interfejsach szeregowych asynchronicznych. Dzięki temu do realizaeji interfejsu MIDI można wykorzystać standardowe układy scalone nadajników/odbiorników (UART) stosowane np.w konstrukcjach interfejsu RS 232C.

W komunikatach mogą występować bajty informacji dwóch typów:

Typowy komunikat składa się z jednego bajtu sterującego (wysyłanego jako pierwszy) i jednego lub kilku bajtów danych. Komunikaty odwołujące się do funkcji interfejsu realizowanych w czasie rzeczywistym nie zawierają bajtów danych i mogą być przesyłane w dowolnym momencie - nawet w trakcie przesyłania innych komunikatów.

W przewidzianych w standardzie komunikatach wydzielono dwie klasy:

W standardzie MIDI przewidziano możliwość współpracy 16 urządzeń. Aby możliwe było rozróżnienie urządzeń, wprowadzono koncepcję kanałów. Kanał określany jest przez 4 mniej znaczące bitu w pierwszym bajcie komunikatu typu kanałowego. W klasie komunikatów kanałowych wyróżnia się podgrupę wykorzystywaną do obsługi syntezatorów. Do najważniejszych z nich należy zaliczyć: "note-on", "note-off", "program-change", "channel-pressure", "control-change" i "pitch-wheel-change".

Komunikaty "note-on" i "note-off" informują o przyciśnięciu lub zwolnieniu klawisza. W przesyłanych po kodzie sterującym danych zawarta jest informacja o numerze dźwięku i jego dynamice, z tym że informacja o dynamice występuje tylko w przypadku współpracy z klawiaturą wrażliwą na siłę, z jaką został przyciśnięty klawisz.

Komunikat "program-change" wysyłany jest w przypadku zmiany wykorzystywanego w syntezatorze programu (zestawu parametrów określających brzmienie). W bajcie danych wysyłany jest numer programu.

Komunikat "channel-pressure" wykorzystywany jest do określenia głośności dźwięku w wybranym kanale.

Komunikat "control-change" związany jest z urządzeniami sterującymi (np. modulatorami). Po kodzie sterującym podawany jest numer sterownika i odpowiednia wartość.

Większość syntezatorów wyposażonych jest w specjalną manetkę pozwalającą regulować wysokość dźwięku. Nazywana jest ona "note-bender" lub "piteh-wheel". Ta druga nazwa bierze się stąd, że w niektórych urządzeniach zamiast joysticka wykorzystywane jest obracające się koło. Ponieważ kontroler wysokości dźwięku jest jednym z najczęściej stosowanych urządzeń,przewidziano do jego obsługi specjalny komunikat "piteh-wheel-change". Przesyłane po kodzie kontrolnym dane pozwalają na określenie wysokości dźwięku z 14-bitową rozdzielczością.

Do komunikatów systemowych należy zaliczyć te, które odwołują się do wszystkich urządzeń połączonych interfejsem MIDI. Należą do nich:

Jako komunikaty systemowe należy traktować również komunikaty związane z obsługą funkcji realizowanych w czasie rzeczywistym:

Należy jeszcze wspomnieć o komunikatach związanych z dodatkowymi możliwościami urządzeń, przewidzianymi przez producenta. W protokole standardu MIDI wprowadzono w tym celu komunikat "system--exclusive", w którym po kodzie sterującym wysyłany jest identyfikator producenta urządzenia (nadawany przez komitet standaryzaeyjny MIDI) i dowolnie długi ciąg danych. Przesyłanie tego typu komunikatu ulega zakończeniu przy rozpoznaniu dowolnego bajtu sterującego (z wyjątkiem komunikatów związanych z obsługą funkcji czasu rzeczywistego). Komunikat "system-exclusive" wykorzystywany jest najczęściej do przesyłania parametrów i programów do sekwencerów i syntezatorów.

Wykorzystanie kanałów przypisanych poszczególnym urządzeniom może w interfejsie MIDI odbywać się w czterech trybach:

Zamieszczony opis standardu MIDI nie wyczerpuje oczywiście całego zagadnienia. Przygotowany został na podstawie materiałów zamieszczanych w pismach zachodnich. Czytelników, którzy zainteresowani są pełną informacją o standardzie, musimy na razie odesłać do "International MIDI Association", gdzie za "jedyne" 35 dolarów USA można zakupić specyfikację standardu (niestety egzemplarza redakcyjnego nie posiadamy).

ANDRZEJ J.PIOTROWSKI

[-----]

[-----]