Felipe Ferreri Tonello wrote: > On 23/08/16 11:37, Clemens Ladisch wrote: >> Felipe Ferreri Tonello wrote: >>> On 22/08/16 13:43, Clemens Ladisch wrote: >>>> Felipe F. Tonello wrote: >>>>> + if (data > send_data) >>>>> + usleep(delay * 1000); >>>> >>>> The MIDI data is sent asynchonously, so this delay is not _between_ messages. >>>> You'd have to add 320 µs for any byte not yet sent (I guess you have to use >>>> snd_rawmidi_status_get_avail() to find out how many have been sent). >>> >>> Right. Or I can just use snd_rawmidi_drain()? >> >> This function not only drains the ALSA buffer, but also waits for the >> hardware FIFO to empty. And most drivers do not implement this, in >> which case the framework just does a fixed wait of 50 ms, which would >> correspond to a FIFO size of 156 bytes. > > Ok, so does that mean that it is not safe to use drain()? That additional 50 ms delay might be safe, but not what you want. Regards, Clemens _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel