Your program is testing for
if (inpacket[0] == SEQ_MIDIPUTC)
.. which will never happen on the raw device.
Try this instead.
-------------------------------------------------------
#include <sys/soundcard.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#define MIDI_DEVICE "/dev/midi"
int main(void) {
unsigned char input;
// first open the midi device for reading.
int seqfd = open(MIDI_DEVICE, O_RDONLY);
if (seqfd == -1) {
printf("Error: cannot open %s\n", MIDI_DEVICE);
exit(1);
}
// now just wait around for MIDI bytes to arrive
while (1) {
read(seqfd, &input,1);
// print the MIDI byte
if(input & 0x0080)
printf("\nreceived MIDI status: %d\n",input );
else
printf("received MIDI data : %d\n",input );
}
return 0;
}
--
(
)
c[] // Jens M Andreasen