[alsa-devel] [PATCH v5 1/2] amidi: add delay option

Clemens Ladisch clemens at ladisch.de
Tue Aug 23 12:37:11 CEST 2016


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.


Regards,
Clemens


More information about the Alsa-devel mailing list