Frank Neumann wrote: > Takashi Iwai <[EMAIL PROTECTED]> wrote: > > just to be sure: any realtime events can come in? > > No, I checked that. The M3r sends active sensing (0xfe), but I filtered that out. > In the data I get the only MIDI bytes > 0x7f are the F0 at the start and the > 0xF7 at the very end. Also, I think a SysEx message cannot be interrupted by > any other message, right?
Realtime messages can interrupt any other message, but it's unlikely that your device would send one. > I checked that - no overruns during the whole transfer. Maybe some bytes have been ignored. Please try the following patch: --- m3r2.c.orig Thu Feb 06 09:12:34 2003 +++ m3r2.c Thu Feb 06 09:42:42 2003 @@ -75,6 +75,8 @@ numbytes++; // fprintf(stderr, "\r%06d bytes written... ", numbytes); } + else if (ch != 0xfe) + fprintf(stderr, "dropped %02x\n", ch); break; case ST_IN_SYSEX: if (ch < 0x80) @@ -92,6 +94,8 @@ numbytes); state = ST_DONE; } + else if (ch != 0xfe) + fprintf(stderr, "dropped %02x\n", ch); break; default: It may be possible that your program waits too long before starting to read data. (If some bytes come in before your first call to rawmidi_read(), they're simply ignored.) Please try removing the drain() in line 58. HTH Clemens ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel