05.09.2013 Views

2.3 Relaxatie-oscillator

2.3 Relaxatie-oscillator

2.3 Relaxatie-oscillator

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Sourcecode van het midifile-conversieprogramma<br />

Voor het conversieprogramma hebben we gebruik gemaakt van een programma dat we eerder geschreven<br />

hadden op een Atari ST in Pure-C (Borland C). Voor de PC moesten we de functies die specifiek<br />

te maken hadden met vensters en de afhandeling van de muis omzetten, zodat deze aan MS-Windows<br />

voldeed. Daarnaast hebben we bepaalde functies omgezet in methoden behorend bij de class CMyDlg.<br />

In vergelijking met Ansi-C hebben we hier een groot voordeel, doordat we functionaliteit van bijelkaar<br />

horende methodes kunnen samenvoegen. Bovendien blijft het programmeren van de grafische schil<br />

daaromheen overzichtelijk. We programmeren in Microsoft Visual C++ (2003).<br />

Het stroomdiagram waarin we de methode Convert beschrijven, behandelen we in hoofdstuk 5.<br />

Een overzicht van alle methoden die in de class CMyDlg voorkomen:<br />

Methoden voor de uitvoer naar het scherm GetMsg, SaveMsg<br />

Methoden voor het vragen van een filenaam voor de invoer- en uitvoerfile FileODlg, FileSDlg<br />

Methode voor het converteren van een MIDI File naar een textbestand Convert<br />

Alle constanten en ‘#define’-waarden staan in de bijbehorende headerfile ‘MyDlg.h’:<br />

#pragma once // just a compiler directive<br />

#define MHDR 0 // different kind of headers<br />

#define MSIG 1<br />

#define MTRK 2<br />

#define HDR 0 // kind of metaevents (META_TP)<br />

#define HBL 1<br />

#define FMT 2<br />

#define NTB 3<br />

#define RES 4<br />

#define SHDR 5<br />

#define SHL 6<br />

#define STAIL 7<br />

#define THDR 8<br />

#define TRKL 9<br />

#define TTAIL 10<br />

#define FINISH 11<br />

#define ERR 12<br />

#define MIDIEVNT 0 // kind of events, nb. second is running status<br />

#define SYSEXEVNT 2<br />

#define MTAEVNT 4<br />

#define META_FF 0 // order to parse metaevent<br />

#define META_TP 1<br />

#define META_LEN 2<br />

#define META_DATA 3<br />

#define SQN 0 // kind of metaevents (META_TP)<br />

#define TXT 1<br />

#define COPY 2<br />

#define SQTRNM 3<br />

#define INSTRNM 4<br />

#define LYRIC 5<br />

#define TXTMRK 6<br />

#define TXTCPT 7<br />

#define EOTR 0x2f<br />

#define TEMPO 0x51<br />

#define SMPTE 0x54<br />

#define TMSIG 0x58<br />

#define KEYSG 0x59<br />

#define SEQSP 0x7f<br />

#define AFTER_TOUCH 0x0d // kind of midi channel commands with 1 data byte<br />

#define PRG_CHNG 0x0c<br />

#define NOTE_ON 0x09 // kind of midi channel commands with 2 data byte<br />

64

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

Saved successfully!

Ooh no, something went wrong!