[alsa-devel] [PATCH]: snd_seq_virmidi.c do not use running status for virmidi raw input
Rationale: Not every rawmidi alsa client (e.q. Bitwig) support running status on input. There is also no need for running status inside a computer.
This patch disables the removal of the status byte when decoding snd_midi_event structures to a rawmidi bytestream
--- sound/core/seq/seq_virmidi.c.orig 2014-05-07 19:30:44.175914670 +0200 +++ sound/core/seq/seq_virmidi.c 2014-05-07 19:33:38.931906859 +0200 @@ -212,6 +212,7 @@ static int snd_virmidi_input_open(struct kfree(vmidi); return -ENOMEM; } + vmidi->parser->nostat = 1; vmidi->seq_mode = rdev->seq_mode; vmidi->client = rdev->client; vmidi->port = rdev->port;
Ralf Beck wrote:
Rationale: Not every rawmidi alsa client (e.q. Bitwig) support running status on input.
Why does Bitwig use RawMIDI when it is only interested in the events?
Anyway, running status is part of the MIDI protocol. This is a bug in Bitwig.
And changing this setting might introduce regressions in other programs that rely on the size of the raw MIDI data.
vmidi->seq_mode = rdev->seq_mode;vmidi->parser->nostat = 1;
The patch formatting is still broken.
And please read Documentation/SubmittingPatches,
Regards, Clemens
Am 07.05.2014 22:41, schrieb Clemens Ladisch:
Ralf Beck wrote:
Rationale: Not every rawmidi alsa client (e.q. Bitwig) support running status on input.
Why does Bitwig use RawMIDI when it is only interested in the events?
Its a closed source application. I'm not the author, so cannot change the application, but i can change the virmidi code.
Anyway, running status is part of the MIDI protocol. This is a bug in Bitwig.
I agree, but see above. I can't change Bitwig.
And changing this setting might introduce regressions in other programs that rely on the size of the raw MIDI data.
Being able to receive MIDI data with running status disabled is mandatory for a midi client. So any client relying on running status always on would be buggy.
Would the patch be acceptable, if i make switching on/off of running status selectable by a module parameter with the current behaviour being the default?
- vmidi->parser->nostat = 1; vmidi->seq_mode = rdev->seq_mode;
The patch formatting is still broken.
I'll look into that.
And please read Documentation/SubmittingPatches, I'l look into that.
I'l look into that.
Regards Ralf
Regards, Ralf
Ralf Beck wrote:
Am 07.05.2014 22:41, schrieb Clemens Ladisch:
This is a bug in Bitwig.
I agree, but see above. I can't change Bitwig.
You can submit a bug report.
And changing this setting might introduce regressions in other programs that rely on the size of the raw MIDI data.
Being able to receive MIDI data with running status disabled is mandatory for a midi client. So any client relying on running status always on would be buggy.
As buggy as Bitwig?
If there is a conflict between two API behaviours, avoiding regressions wins. Bitwig has no excuse; it has been buggy from the beginning.
Would the patch be acceptable, if i make switching on/off of running status selectable by a module parameter with the current behaviour being the default?
A module parameter would be worse.
Regards, Clemens
participants (2)
-
Clemens Ladisch
-
Ralf Beck