void start(void) { comparestate = 1; sentout.reset(); // initialize the MIDI output storage receivedin.reset(); // initialize the MIDI input storage midiinput.setPort(synth.getInputPort()); midiinput.open(); }
int main(void) { MidiInput midiin; MidiOutput midiout; midiout.setPort(0); midiout.open(); midiin.setPort(0); midiin.open(); MidiMessage message; int sysexloc; unsigned char *sysexdata = NULL; int sysexsize = 0; int i; int running = 1; cout << "sysexio -- display and echo SYSEX messages from MIDI input" << endl; cout << "Press Middle C to quit." << endl; while (running) { if (midiin.getCount() > 0) { message = midiin.extract(); if (message.p0() == 0xf0) { sysexloc = message.p1(); sysexdata = midiin.getSysex(sysexloc); sysexsize = midiin.getSysexSize(sysexloc); // print out the sysex data to the screen: for (i=0; i<sysexsize; i++) { cout << hex << (int)sysexdata[i] << " "; if ((i + 1) % 30 == 0) { cout << endl; } } cout << endl; // Now echo the messages to MIDI output (as a demo // for how to send Sysex outputs) midiout.rawsend(sysexdata, sysexsize); // As a courtesy, mark the midiin sysex buffer free // but this is not necessay (it will be erased when // more space is needed for storing a sysex. midiin.clearSysex(sysexloc); } else if ((message.p0() & 0xf0) == 0x90) { // Exit the program when a middle C note is pressed. if (message.p1() == 60 && message.p2() > 0) { running = 0; } } } } return 0; }
int main(int argc, char** argv) { Options options(argc, argv); checkOptions(options); keyboardTimer.setPeriod(10); int command = 0; MidiInput midiin; midiin.setPort(inport); midiin.open(); MidiEvent midimessage; performance.read(options.getArg(1).data()); performance.setPort(outport); performance.setMaxAmp(maxamp); performance.open(); performance.setTempoMethod(tempoMethod); performance.play(); while (command != 'Q') { while (midiin.getCount() > 0) { midiin.extract(midimessage); processMidiCommand(midimessage); } performance.xcheck(); eventIdler.sleep(); if (keyboardTimer.expired()) { keyboardTimer.reset(); command = checkKeyboard(); if (command == 'Q') { break; } else { keyboardCommand(command); } } } return 0; }