: snd_seq_virmidi.c do not use running status for virmidi raw input
diff mbox

Message ID 536A7104.7010009@gmx.de
State Rejected
Headers show

Commit Message

Ralf Beck May 7, 2014, 5:44 p.m. UTC
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

Comments

Clemens Ladisch May 7, 2014, 8:41 p.m. UTC | #1
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->parser->nostat = 1;
>      vmidi->seq_mode = rdev->seq_mode;

The patch formatting is still broken.

And please read Documentation/SubmittingPatches,


Regards,
Clemens
Ralf Beck May 8, 2014, 6 a.m. UTC | #2
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
Clemens Ladisch May 8, 2014, 8:08 p.m. UTC | #3
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

Patch
diff mbox

--- 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;