>Mark Knecht wrote: >> I recently purchased an RME HDSP 9652 card. The card is working fine >> for audio, but the MIDI interface is a timing disaster. The interface >> works, but won't keep time. A 2 minute song is Rosegarden takes abut >> 2:45 to play every time. You can hear how the HDSP isn't delivering >> closely spaced MIDI events together, but is sort of smearing them out. > >The hdsp driver doesn't send more than one MIDI byte per timer tick. >IMHO it should be modified to send in a loop until the FIFO is full
that's what this tried to do: if (hmidi->output) { if (!snd_rawmidi_transmit_empty (hmidi->output)) { if ((n_pending = snd_hdsp_midi_output_possible (hmidi->hdsp, hmidi->id)) > 0) { if (n_pending > sizeof (buf)) n_pending = sizeof (buf); if ((to_write = snd_rawmidi_transmit (hmidi->output, buf, n_pending)) > 0) { for (i = 0; i < to_write; ++i) snd_hdsp_midi_write_byte (hmidi->hdsp, hmidi->id, buf[i]); } else { clear_timer = 1; } } } else { clear_timer = 1; } how does this end up writing only a single byte? unless n_pending is always either 0 or 1, which on closer inspection, i see that it is ... yikes. >(however, I don't know if the HDSP has a FIFO at all). And it should start it does have a FIFO. >sending in output_trigger() instead of delaying it to the next timer tick. hmm. i modelled this code on another PCI driver that had MIDI support. is there an example you can point me to that starts from within the equivalent output_trigger? --p ------------------------------------------------------- This SF.NET email is sponsored by: FREE SSL Guide from Thawte are you planning your Web Server Security? Click here to get a FREE Thawte SSL guide and find the answers to all your SSL security issues. http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0026en _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel