05.09.2013 Views

2.3 Relaxatie-oscillator

2.3 Relaxatie-oscillator

2.3 Relaxatie-oscillator

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.2 PC-Software<br />

Het programma dat de data op de PC opneemt, de sequencer, moet deze data kunnen exporteren als<br />

een standaard MIDI File. Ons converteringsprogramma kan zowel type 0 (single multi-channel track)<br />

als type 1 (one or more simultaneous tracks) MIDI Files importeren. Het formaat waarnaar we converteren<br />

is een textbestand met getallen, gescheiden door een komma en een ‘carriage return’: (hier<br />

vanwege de overzichtelijkheid weergegeven in zes kolommen.)<br />

40 mit<br />

384<br />

0,0<br />

3,32<br />

9,56<br />

14,28<br />

19,36<br />

26,44<br />

31,52<br />

41,60<br />

48,52<br />

53,44<br />

58,60<br />

80,56<br />

85,52<br />

92,64<br />

114,68<br />

235,76<br />

240,68<br />

516,64<br />

528,60<br />

539,64<br />

545,68<br />

699,72<br />

710,76<br />

726,88<br />

733,84<br />

738,72<br />

743,68<br />

804,64<br />

809,68<br />

876,64<br />

881,60<br />

888,64<br />

893,60<br />

898,64<br />

903,68<br />

920,72<br />

925,68<br />

1218,72<br />

1223,68<br />

1384,60<br />

1395,64<br />

etc.<br />

In MIDI Files wordt de informatie in pakketten, ‘chunks’ genaamd, ingebed. De pakketten hebben<br />

een header met een vaste structuur en een gedeelte dat volgt met een variabele structuur. Omdat er bij<br />

de vaste structuur opgegeven wordt hoeveel data er in de daarnavolgende variabele structuur komen,<br />

kunnen MIDI Files altijd gelezen worden. Immers, zonder de opbouw van stuurcodes te kennen, kunnen<br />

namelijk data overgeslagen worden. In hoeverre de gegevens ook verwerkt kunnen worden hangt<br />

uiteraard van het implementatieniveau af van de software.<br />

Met verwijzing naar de appendix, waar een uitvoerige beschrijving over de opbouw van MIDI Files<br />

wordt gegeven, laten we de basisstructuur van MIDI Files zien. Het conversieprogramma volgt die<br />

structuur. Om inzicht in de opbouw van dit programma te krijgen, laten we een aantal details weg,<br />

zodat een soort C++ raamwerk van dit programma overblijft:<br />

while ( ( c=getc(fp)) != EOF)<br />

switch (head)<br />

{<br />

case MHDR:<br />

{<br />

if (what2do!=ERR) // process header data if head == TRUE<br />

switch (what2do)<br />

{<br />

case HDR:<br />

..<br />

case HBL:<br />

..<br />

case FMT:<br />

..<br />

case NTB:<br />

..<br />

case RES:<br />

..<br />

} // escape from switch (what2do)<br />

// endif (what2do!=ERR)<br />

break; // escape from case MHDR<br />

}<br />

case MSIG:<br />

{<br />

if (mfmt==1 && what2do!=ERR) // process time/signature tempo track data in format 1<br />

{<br />

switch (what2do)<br />

{<br />

case SHDR:<br />

40

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!