On Tue, Dec 22, 2015 at 06:51:47AM +0100, Clemens Ladisch wrote:
Ryan C. Underwood wrote:
Basically, the rawmidi virtual plugin enforces a 256-byte limit on events, and emits multiple events if e.g. a >256 byte sysex is encountered.
All sequencer clients have such a limit.
I was not objecting to a limit. I was questioning the utility of a _hard-coded_ limit.
This does not seem to be documented behavior for snd_seq_event_input(), nor is the fixed limit described anywhere.
Yes, the documentation is lacking.
What's the best way to submit a documentation change, patch the docs embedded in the code and mail that here?
Would it be better if the maximum event size could be configured through params? That would avoid needing this clumsy workaround by sequencer clients.
Handling split messages cannot be avoided; the API is not capable of sending arbitrarily large messages.
So, the client writing to rawmidi has local knowledge about the largest sysex he will generate. I only propose that alsa-lib be willing to accept this local knowledge over its own hard-coded default when sizing the event buffer. (For example, the device buffer size is configurable by the sequencer client.)
Of course, I won't bother if such a patch would be rejected, and will instead change the documentation.