mirror of
https://github.com/thestk/stk
synced 2026-01-11 20:11:52 +00:00
72 lines
1.5 KiB
C++
72 lines
1.5 KiB
C++
/************** Test Main Program Individual Voice *********************/
|
|
|
|
#include "miditabl.h"
|
|
#include "MIDIInpt.h"
|
|
|
|
#define ATOUCHMAX 2
|
|
|
|
int main(int argc,char *argv[])
|
|
{
|
|
long i, j;
|
|
int oneOn = 0;
|
|
int lastTouch = 0;
|
|
int aTouchThin = 0;
|
|
MY_FLOAT temp,temp2;
|
|
MIDIInpt controller;
|
|
|
|
if (argc!=1) {
|
|
printf("useage: testMIDI\n");
|
|
exit(0);
|
|
}
|
|
|
|
while(1) {
|
|
if (controller.nextMessage() > 0) {
|
|
temp2 = controller.getByteThree();
|
|
temp = controller.getByteTwo();
|
|
if (controller.getType()==9) {
|
|
if (temp2 < 1.0) {
|
|
if (oneOn == 1) {
|
|
printf("NoteOff 0.0 1 %f %f\n",temp,64.0);
|
|
}
|
|
oneOn -= 1;
|
|
}
|
|
else {
|
|
printf("NoteOn 0.0 1 %f %f\n",temp,temp2);
|
|
oneOn += 1;
|
|
}
|
|
}
|
|
else if (controller.getType()==8) {
|
|
if (temp2 < 2.0) temp2 = 64.0;
|
|
if (oneOn ==1) {
|
|
printf("NoteOff 0.0 1 %f %f\n",temp,temp2);
|
|
}
|
|
oneOn -= 1;
|
|
}
|
|
else if (controller.getType() == 11) {
|
|
j = (int) temp;
|
|
printf("ControlChange 0.0 1 %i %f\n",j,temp2);
|
|
}
|
|
else if (controller.getType() == 13) {
|
|
// aTouchThin += 1;
|
|
// if (aTouchThin == ATOUCHMAX) {
|
|
// temp2 = fabs(temp - lastTouch);
|
|
// if (temp2 > 10) {
|
|
// printf("AfterTouch 0.0 1 %f\n",temp);
|
|
// lastTouch = temp;
|
|
// }
|
|
// aTouchThin = 0;
|
|
// }
|
|
}
|
|
else if (controller.getType() == 12) {
|
|
j = (int) temp;
|
|
printf("ProgramChange 0.0 1 %i\n",j);
|
|
}
|
|
fflush(stdout);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|