Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 de track structuur van een MIDI file interpreteren en laten zien
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 2 big endian – little endian het getal 0x wordt opgeslagen als: intel network 0000 : 0x04 0x : 0x03 0x : 0x02 0x : 0x01 0x04
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 3 Opdrachtje (1) : byte order conversion Maak (en test) een C functie void swap_long( unsigned long int * X ) Deze functie moet de byte order van een 4-byte integer omdraaien. Hint: gebruik shifts ( >) en masks (&), en combineer het geheel met or (|).
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 4 MIDI file format -lijst van tijdstippen en gebeurtenissen -Gebeurtenissen : noot aan, noot uit -Ook (veel!) niet-muziek gebeurtenissen -Polyfoon, geluiddsterkte -Header, gevolgd door N tracks
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 5 MIDI format (1) – header chunk
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 6 MIDI format – RIFF header valt eigenlijk buiten het MIDI format begint met ‘RIFF’ in totaal 20 bytes negeren
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 7 MIDI format (2) – track chunk
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 8 Opdracht (2): MIDI file lezen Maak een C programma dat een je aanroept met als parameter een MIDI file. Het programma leest de RIFF header (als die er is), de MIDI header, en alle Track headers, en print alle informatie daarin uit.