// // Programmer: Craig Stuart Sapp // Creation Date: Mon Jan 4 02:24:31 PST 1999 // Last Modified: Tue Jan 5 19:05:45 PST 1999 // Filename: ...linuxmidi/cpp/mplay.cpp // Syntax: C++ // $Smake: g++ -DLINUX -O3 -Wall -o %b %f Sequencer.cpp && strip %b // #include #include "Sequencer.h" int main(void) { Sequencer sequencer; // MIDI I/O interface int outputDevice = 0; // MIDI output device number to send to int keynumber = 60; // MIDI keynumber to play int velocity; // MIDI attack velocity int userInput; // computer keyboard input number cout << "There are " << sequencer.getNumOutputs() << " MIDI outputs:.\n"; sequencer.displayOutputs(); cout << "\nEnter a device number to send out on (offset zero): "; cin >> outputDevice; while (1) { cout << "Enter a key number to play (negative=off, >127=quit): "; cin >> userInput; if (userInput > 127) { exit(0); } else if (userInput >= 0 && userInput < sequencer.getNumOutputs()) { outputDevice = userInput; cout << "Changing to device " << outputDevice << ": " << sequencer.getOutputName(outputDevice) << endl; continue; } else { keynumber = userInput; } if (keynumber < 0) { keynumber = -keynumber; velocity = 0; } else { velocity = 127; } // send a MIDI note-on message on MIDI channel 1: sequencer.write(outputDevice, 0x90); // MIDI chan 1 note-on command sequencer.write(outputDevice, keynumber); // MIDI key number sequencer.write(outputDevice, velocity); // MIDI attack velocity } return 0; }