Polski
Ściąga wiadomości MIDI: każdy typ, status byte i zakres
Ta aplikacja jest całkowicie darmowa. Nie trzeba zakładać konta. Nie ma subskrypcji ani skomplikowanych pobrań, a nic nie jest zablokowane. Zoptymalizowana pod Apple Silicon.
Wiadomość MIDI 1.0 to status byte, który mówi, czym jest wiadomość, a po nim zero, jeden lub dwa data byte. Jest siedem wiadomości kanałowych, od Note Off pod 80 hex do Pitch Bend pod E0, każda niesie kanał w ostatniej cyfrze, oraz zestaw wiadomości systemowych od F0 do FF, które nie mają żadnego kanału. Tabele poniżej obejmują każdą z nich, z zakresami każdego data byte, a każdy wiersz linkuje do strony na tym serwisie, która tłumaczy daną wiadomość dogłębnie.
Wartości pochodzą z podsumowania wiadomości MIDI 1.0 od MIDI Association i jej listy Control Change, czytanych 27 października 2026. Tworzę InputConfig, darmową aplikację na Maca, która czyta i wysyła MIDI, więc jedna tabela mówi, które z tych wiadomości obsługuje.
Kroki
- Odczytaj pierwszy bajt wiadomości w hex.
- Jeśli to 80 do EF, pierwsza cyfra nazywa wiadomość, a druga to kanał, 0 dla kanału 1 aż do F dla kanału 16.
- Jeśli to F0 do FF, to wiadomość systemowa bez kanału, więc znajdź ją w tabeli systemowej.
- Odczytaj data byte, które następują, każdy od 0 do 127, według tabeli kanałowej.
- Dla Control Change znajdź numer kontrolera w tabeli CC.
Odróżnij status byte od data byte
Każdy bajt w MIDI 1.0 jest albo status byte, albo data byte, a decyduje o tym najwyższy bit. W tabeli MIDI Association każdy status byte jest zapisany od 1 w systemie dwójkowym, a każdy data byte od 0.
- Status byte. 80 do FF hex, 128 do 255. Zaczynają wiadomość.
- Data byte. 00 do 7F hex, 0 do 127. Dlatego prawie każda wartość w MIDI kończy się na 127.
- Kanał. W wiadomości kanałowej druga cyfra hex to kanał, 0 do F, który aplikacje pokazują jako kanały 1 do 16. Czyli 90 to Note On na kanale 1, a 9F to Note On na kanale 16.
- Wartości 14-bitowe. Gdy 128 kroków nie wystarcza, dwa data byte łączą się: drobna połowa, LSB, i gruba połowa, MSB. Razem biegną od 0 do 16383, a Pitch Bend umieszcza swój środek na 8192, czyli 2000 hex.
Bajt 128 lub więcej zaczyna wiadomość, a bajt poniżej 128 niesie wartość. Kanały MIDI i MSB i LSB idą dalej w obu sprawach.
Przeczytaj wiadomości kanałowe
Te siedem niesie muzykę: nuty, nacisk, pokrętła, zmiany brzmień i kółko pitch. Kolumna statusu jest w hex, a niską cyfrę ustala kanał.
| Wiadomość | Status (hex) | Data byte 1 | Data byte 2 | Więcej |
|---|---|---|---|---|
| Note Off | 80 do 8F | Numer nuty, 0 do 127 | Velocity zwolnienia, 0 do 127 | numery nut |
| Note On | 90 do 9F | Numer nuty, 0 do 127 | Velocity, 0 do 127 (0 działa jak Note Off) | velocity |
| Polyphonic key pressure | A0 do AF | Numer nuty, 0 do 127 | Nacisk, 0 do 127 | aftertouch |
| Control Change | B0 do BF | Kontroler, 0 do 119 | Wartość, 0 do 127 | lista CC |
| Program Change | C0 do CF | Program, 0 do 127 | Brak | program change |
| Channel pressure | D0 do DF | Nacisk, 0 do 127 | Brak | aftertouch |
| Pitch Bend | E0 do EF | Drobna połowa (LSB), 0 do 127 | Gruba połowa (MSB), 0 do 127 | pitch bend |
Note On z velocity 0 liczy się jako Note Off, czego używa własny przewodnik MIDI Association po Arduino do kończenia nuty. Numer kontrolera Control Change kończy się na 119, bo 120 do 127 zajmują wiadomości trybu kanału poniżej. Zakresu Pitch Bend w półtonach nie ma w wiadomości wcale: ustala go odbiornik, a tabela MIDI zauważa, że można go ustawić przez RPN 0. Program Change i channel pressure niosą jeden data byte, a pozostałe pięć niesie dwa.
Poznaj wiadomości trybu kanału
Wiadomości trybu kanału używają status byte Control Change, B0 do BF, z numerami kontrolerów 120 do 127. Zmieniają to, jak kanał się zachowuje, a nie jak brzmi.
| Kontroler | Nazwa | Co robi |
|---|---|---|
| 120 | All Sound Off | Wycisza wszystkie głosy naraz |
| 121 | Reset All Controllers | Przywraca kontrolery do stanu domyślnego |
| 122 | Local Control | 0 to wyłączone, 127 to włączone: czy klawisze grają własnym brzmieniem syntezatora |
| 123 | All Notes Off | Zwalnia każdą trzymaną nutę |
| 124 i 125 | Omni Mode Off i On | Czy urządzenie słucha na jednym kanale, czy na wszystkich |
| 126 i 127 | Mono Mode On i Poly Mode On | Jedna nuta na kanał albo akordy |
Lista MIDI Association zauważa, że 124 do 127 też wyłączają wszystkie nuty. Przycisk panic to głównie CC 123 i CC 120 wysłane na wszystkich 16 kanałach. MIDI panic wymienia dokładne bajty.
Przeczytaj wiadomości systemowe
Wiadomości systemowe zaczynają się od F i nie niosą kanału, więc może je czytać każde urządzenie na kablu. F0 do F7 to wiadomości wspólne systemu, a F8 do FF to wiadomości czasu rzeczywistego, jedyne dozwolone w środku wiadomości SysEx.
| Status (hex) | Wiadomość | Dane | Więcej |
|---|---|---|---|
| F0 | System Exclusive | Maker ID, potem dowolna liczba data byte, aż do F7 | SysEx |
| F1 | MIDI Time Code quarter frame | Jeden bajt: kawałek time code | |
| F2 | Song Position Pointer | Dwa bajty: 14-bitowa liczba beatów od początku, gdzie beat to 6 zegarów | |
| F3 | Song Select | Jeden bajt: który utwór lub sekwencja | |
| F6 | Tune Request | Brak. Prosi syntezatory analogowe o dostrojenie oscylatorów | |
| F7 | End of Exclusive | Brak. Kończy wiadomość SysEx | |
| F8 | Timing Clock | Brak. Wysyłany 24 razy na ćwierćnutę | zegar MIDI |
| FA, FB, FC | Start, Continue, Stop | Brak | zegar MIDI |
| FE | Active Sensing | Brak. Opcjonalny, co najmniej co 300 ms, gdy urządzenie zacznie go wysyłać | |
| FF | Reset | Brak. Przywraca odbiorniki do stanu po włączeniu |
F4, F5, F9 i FD są niezdefiniowane. Clock, Start i Stop to wiadomości systemowe, więc nigdy nie niosą kanału. O zrzutach SysEx i aplikacjach, które je wysyłają, zobacz stronę SysEx librarian na Maca.
Poznaj numery CC warte zapamiętania
Wiele ze 120 numerów Control Change zostało niezdefiniowanych, ale kilka ma nazwy w standardzie MIDI, których trzymają się syntezatory i aplikacje. Pochodzą z listy Control Change od MIDI Association.
| CC | Nazwa | Więcej |
|---|---|---|
| 0 i 32 | Bank Select, MSB i LSB | MSB i LSB |
| 1 | Modulation wheel | lista CC |
| 2 | Breath controller | |
| 4 | Foot controller | |
| 6 i 38 | Data Entry, MSB i LSB | NRPN i RPN |
| 7 | Channel Volume | |
| 10 | Pan | |
| 11 | Expression | |
| 64 | Pedał sustain (damper): 0 do 63 wyłączony, 64 do 127 włączony | pedał sustain |
| 65, 66, 67 | Portamento, Sostenuto i pedał Soft, włączony lub wyłączony | |
| 98 i 99 | Numer NRPN, LSB i MSB | NRPN i RPN |
| 100 i 101 | Numer RPN, LSB i MSB | NRPN i RPN |
Kontrolery 32 do 63 to drobne połowy, LSB, kontrolerów 0 do 31, i tak Bank Select staje się CC 0 plus CC 32. CC 64 to przełącznik, więc każda wartość od 64 w górę znaczy, że pedał jest wciśnięty. Lista MIDI CC wymienia każdy numer.
Zobacz, co InputConfig czyta i wysyła
InputConfig zamienia MIDI z klawiatury, kontrolera padów albo DAW w klawisze, kliknięcia, głośność Maca i więcej, a MIDI z kontrolera do gier lub klawiatury wysyła przez wirtualny port o nazwie InputConfig. Oto uczciwa lista, wiadomość po wiadomości.
| Wiadomość | Przypisz jako wejście | Wyślij jako wyjście |
|---|---|---|
| Note On i Off | Tak, jako trzymany przycisk | Tak, z velocity ustawionym w wierszu |
| Control Change | Tak, jako przełącznik, pokrętło albo obrót | Tak, stała wartość albo położenie gałki lub spustu |
| Pitch Bend | Tak, plus i minus jak gałka | Tak, z osi gałki albo z przycisku |
| Aftertouch | Tak | Nie |
| Program Change | Tak, i może aktywować preset | Tak |
| Start, Continue, Stop | Tak | Tak |
| Timing Clock | Nie | Nie |
| System Exclusive | Nie | Nie |
| NRPN i RPN | Nie | Nie, wysyła pojedyncze wiadomości |
Dwa szczegóły potykają ludzi. Przyciski nie czują velocity, więc każde wyjście MIDI Note gra z velocity ustawionym w jego wierszu, od 1 do 127, a spust na CC 11 to sposób na dynamikę. A pokrętło w trybie Switch strzela, gdy wartość przekroczy połowę, co zamienia pedał sustain w przełącznik włącz i wyłącz.


Jeśli element steruje nutą, CC, pitch bend albo Program Change, InputConfig potrafi go przypisać. MIDI na klawisz i wyjście MIDI opisują konfigurację.
Gdy wiadomość nie jest taka, jak oczekiwano
Większość niespodzianek bierze się z numeracji, a nie ze zepsutego sprzętu. Idź tą drabiną, od najmniejszego kroku:
- Sprawdź liczenie kanałów. Bajt mówi od 0 do 15, a aplikacja od 1 do 16. Urządzenie na kanale 10 wysyła 99 dla Note On.
- Sprawdź liczenie programów. Wiadomość niesie od 0 do 127, a wiele list brzmień pokazuje od 1 do 128, więc brzmienie 1 jest wysyłane jako 0.
- Sprawdź ukryty Note Off. Note On z velocity 0 kończy nutę, więc log pełen Note On nadal może zwalniać klawisze.
- Zdekoduj surowe bajty. Wklej je do dekodera wiadomości MIDI albo obserwuj, jak przychodzą w testerze MIDI.
Błąd o jeden to najczęstszy błąd w MIDI.
Idź głębiej w jedną wiadomość
- Nuty. Velocity, numery nut i mapa perkusji General MIDI.
- Nacisk. Aftertouch kanałowy i polifoniczny.
- Kontrolery. Pedał sustain, MSB i LSB, NRPN i RPN oraz MIDI learn.
- Brzmienia. Program Change.
- Wysokość dźwięku. Pitch Bend.
- Czas i bezpieczeństwo. Zegar MIDI, MIDI panic i MIDI Thru.
- Dane. SysEx.
Każda strona tutaj bierze jeden wiersz tabel i tłumaczy go na przykładach. Jeśli to wszystko jest dla Ciebie nowe, zacznij od czym jest MIDI.
Krótka wersja
- Najpierw status. Bajt 80 hex lub więcej zaczyna wiadomość, a bajty po nim to wartości od 0 do 127.
- Wiadomości kanałowe. 80 do EF, z kanałem w ostatniej cyfrze.
- Wiadomości systemowe. F0 do FF, bez kanału: SysEx, zegar, Start, Stop i reszta.
- Duże liczby. Dwa data byte dają 0 do 16383, jak w Pitch Bend.
Odczytaj pierwszą cyfrę status byte, a wiesz, jakiego rodzaju jest wiadomość.
Pytania
Ile jest typów wiadomości MIDI?
MIDI 1.0 ma siedem wiadomości kanałowych (Note Off, Note On, polyphonic pressure, Control Change, Program Change, channel pressure i Pitch Bend), wiadomości trybu kanału na CC 120 do 127 oraz wiadomości systemowe od F0 do FF.
Czym jest status byte MIDI?
To pierwszy bajt wiadomości, od 80 do FF hex. Mówi, czym jest wiadomość, a dla wiadomości kanałowych, na którym z 16 kanałów się znajduje.
Czym różni się CC od NRPN?
CC to jedna wiadomość z numerem kontrolera i wartością od 0 do 127. NRPN wybiera parametr przez CC 99 i 98 i ustawia go przez Data Entry na CC 6 i 38, więc jedna zmiana to trzy lub cztery wiadomości.
Które wiadomości MIDI obsługuje InputConfig?
Przypisuje nuty, Control Change, pitch bend, aftertouch, Program Change oraz Start, Continue i Stop, a wysyła nuty, Control Change, pitch bend, Program Change i transport. Nie obsługuje zegara, SysEx ani NRPN.
Czy zegar MIDI jest wiadomością kanałową?
Nie. Timing Clock, F8, to systemowa wiadomość czasu rzeczywistego bez kanału, wysyłana 24 razy na ćwierćnutę.
Więcej po polsku
Pełne poradniki, po angielsku
Kto pisze. Ryleigh Newman tworzy InputConfig i na co dzień steruje własnym Makiem za pomocą kontrolera, bo ręce nie działają najlepiej. Ta strona jest przetłumaczona z angielskiego. Główne przyciski i menu aplikacji są po polsku, gdy Mac jest ustawiony na polski. Reszta aplikacji i witryny jest po angielsku.
Ta strona w innych językach: English, Deutsch, Español, Français, Italiano, 日本語, 한국어, Português, Русский, ไทย, 繁體中文, 简体中文
Za darmo. macOS 14 lub nowszy. Bez konta, nic nie opuszcza Twojego Maca. Open source na GitHubie.