wikiC/2.06
Main page
Alphabetic index
Recent Edits

MIDI

login 38.107.179.224

MIDI staat voor Musical Instrument Digital Interface.
Het is een protocol om digitale muziekinstrumenten onderling, en met computers, te laten communiceren.

MIDI-kabels

Over een enkelvoudige MIDI-kabel kun je informatie slechts 1 kant uit sturen: van MIDI-out (of MIDI-thru) naar MIDI-in. Wil je tussen 2 apparaten tweerichtingsverkeer, dan moet je 2 kabels leggen.

MIDI-protocol

De volgende 6 tabellen geven een overzicht van alle MIDI-instructies:
  1. MIDI_tabel_1 (status- en data-bytes)
  2. MIDI_tabel_2 (nootnummers)
  3. MIDI_tabel_3 (control- en mode-changes)
  4. MIDI_tabel_4 (samenvatting)
  5. MIDI_tabel_5 ("The General" patchlist)
  6. MIDI_tabel_6 (Percussion Keymap)

MIDI-bestanden

Om vanuit C en C++ MIDI files te lezen en te schrijven kun je midifilelib gebruiken. Je kunt het downloaden vanaf: http://www.harmony-central.com/MIDI/dev.html.
Voor uitsluitend lezen, is er ook midifile, dat van dezelfde site kan worden gedownload.
Beide pakketten hebben echter wat problemen: globale variaben, niet thread-safe, een paar kleine bugjes met MIDI-kanalen > 7, code in headerfiles, etc.
Een verbeterde bibliotheek om in de programmeertaal C MIDI-bestanden te lezen is te vinden op http://www.hku.nl/~pieter/EDU/c/rdmid/ (laatst ge-update in 2008).
Een echte C++ bibliotheek voor het lezen van MIDI-bestanden kun je
bij Maarten de Boer ophalen: MIDIFileReader: ftp://www.iua.upf.es/pub/mdeboer/ of http://www.iua.upf.es/~mdeboer/

Opvolgers van MIDI

In de loop van de tijd zijn er een aantal uitbreidingen op het MIDI protocol voorgesteld zoals bijvoorbeeld XMIDI. Verder was er nog ZIPI. De enige opvolger die het echt lijkt te maken is OpenSoundControl. Vermoedelijk ook vanwege het feit dat het platform onafhankelijk is en veel meer kan omvatten dan enkel standaard MIDI gegevens. Daarnaast lijkt ook de aanwezigheid van ethernet op iedere computer ook een belangrijke rol te spelen gezien het internet en de daarin gebruikte protocollen UDP en TCP/IP, die ook binnen Open Sound Control gebruikt worden voor communicatie.

Toine
Ik zie in die tabellen zo 1-2-3 niks over double precision staan. Klopt dat? Wel dat er MSB en LSB staat...

Ben niet 100% zeker maar is het niet zo dat voor double precision van die 2 bytes gewoon een word/int maakt. MSB en LSB geeft dan aan welke volgorde je de 2 bytes moet zetten.
Jorn.
History of this page