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:
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.