Skip to contentSkip to conversation

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

PATCH In review Ralf Beck 2 participants 4 messages May 7, 2014 – May 8, 2014

lore
Share & tools
lore

Ralf Beck

author
#0 lore raw

PATCH 1/1 : 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

core/seq/seq_virmidi.c 2014-05-07 19:33:38.931906859 +0200 renamed from core/seq/seq_virmidi.c.orig 2014-05-07 19:30:44.175914670 +0200 +1 -0
@@ -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;
#1 lore raw
Quoted 1 line · Ralf Beck

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.

Quoted 2 lines
+        vmidi->parser->nostat = 1;
     vmidi->seq_mode = rdev->seq_mode;

The patch formatting is still broken.

And please read Documentation/SubmittingPatches,

Regards,
Clemens

author
#2 lore raw

Am 07.05.2014 22:41, schrieb Clemens Ladisch:

Quoted 3 lines
Quoted 1 line · Ralf Beck

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.

Quoted 1 line

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.

Quoted 1 line

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?

Quoted 2 lines
Quoted 1 line

+ vmidi->parser->nostat = 1; vmidi->seq_mode = rdev->seq_mode;

The patch formatting is still broken.

I'll look into that.

Quoted 1 line

And please read Documentation/SubmittingPatches, I'l look into that.

I'l look into that.

Regards
Ralf

Quoted 2 lines

Regards, Ralf

#3 lore raw
Quoted 4 lines · Ralf Beck

Am 07.05.2014 22:41, schrieb Clemens Ladisch:

Quoted 1 line

This is a bug in Bitwig.

I agree, but see above. I can't change Bitwig.

You can submit a bug report.

Quoted 4 lines
Quoted 1 line

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.

Quoted 2 lines

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