ahlstromcj/seq66

MIDI Input not possible: "[midi-input]: in-bus data line error"

chrneumann opened this issue · 21 comments

I built the latest (dev and release) code from source together with rtmidi (i.e., default options). The problem is that I can't get MIDI input (output works fine) working. On startup (after enabling a MIDI input in the preferences), I get the following error:
[seq66] [midi-input]: in-bus data line error [seq66] rc: '[midi-input]: in-bus data line error' [seq66] [midi-input]: in-bus data line error

Wanted to try it with portmidi, but I get build errors.

Running on Linux with Jack. Seq24/64 and other MIDI software works fine.

Any suggestions?

Tried it with 0.9.7.2.1, works fine.

Oh, I meant 0.97.2.1.
I built it again with 0.98.6 (tag) code from Github. The error is gone if I remove the rc (tried that before), but still I don't have any MIDI inputs. I guess normally it should be enabled in Preferences > MIDI Input > Input Buses? I do that (enable bus [1], which is my keyboard. Then I have to check and uncheck the "Record input..." option to have the "OK" button enabled. The MIDI input won't show up in Jack (Carlas' patchbay) as it does with 0.97. If I restart seq66, I get the error again.

I'm using JACK and USB hardware. There is no a2jmidid running, but Cadence (with which I start JACK) has a ALSA MIDI Bridge enabled.

jack_lsp lists:

a2j:Midi Through [14] (capture): Midi Through Port-0
a2j:Midi Through [14] (playback): Midi Through Port-0
a2j:KeyRig 49 [20] (capture): KeyRig 49 MIDI 1
a2j:XONE:K2 [24] (capture): XONE:K2 
a2j:XONE:K2 [24] (playback): XONE:K2 

The rc:

[midi-input]

 4      # number of input MIDI buses

 0  0   "[0] 0:0 a2j:Midi Through [14] (capture): Midi Through Port-0"
 1  0   "[1] 0:1 a2j:KeyRig 49 [20] (capture): KeyRig 49 MIDI 1"
 2  0   "[2] 0:2 a2j:XONE:K2 [24] (capture): XONE:K2 "
 3  0   "[3] 1:3 Output:events-out"

Thanks for the quick support :)

I'm trying the latest versions to see which introduced the bug. 0.98.2 works.

Okay, that's also the latest version that works for me.

I confirm that midi controls (in and out) do nor work in 0.98.6. I checked out 0.98.2 and it works for me (Linux, ALSA midi, built from source). Also, there seems to be a regression regarding the saving and restoring of the midi control in and out buses (works fine in 0.98.2, but needs to be set manually in the GUI at every start in 0.98.6).

Oh wait, actually only MIDI (control automation) output works, input still doesn't (with 0.98.2). Any hints? This is quite an important feature for me, otherwise I cannot use seq66 for my live set. :-/

The newest version is now in master and tagged: 0.98.10.

One nagging issue: clicking the checkbox for MIDI input or output controls doesn't save them properly, not sure why. The work-around for now is to not restart, but exit the app and restart the app, rather than clicking the restart button. Not sure what is up with that. Also check the "midi-enabled" flags in the 'ctrl' file.

Hi, it seems MIDI input is working correctly with jack, but not with ALSA. For the moment, I can use jack, even if I'm more used to ALSA (and most of my applications use ALSA). Thanks for the quick reaction.

OK, really sorry to keep this thread going....

I am very confused now. I checkout out and compiled 0.98.10.

ALSA still does nothing. I do not understand how the whole auto connect business works, I only use virtual ports (with both ALSA and Jack) and wire them up using a patchbay tool (qjackctl). So in this case, the names or numbers of the ports should not matter (they are all named "midi in 0", "midi in 1" etc), right?

So I connect a controller (or for testing just a virtual keyboard) to one of the input ports, then I select this input port as the control input in the seq66 gui. WIth ALSA (launched with qseq66 -A -m), nothing happens, even if I wire the control keyboard to all the input ports at once.

Doing the same thing with Jack works. Again, I do not use auto-connect (qseq -t -w) and wire it up with my patch bay. So far so good.

I have another issue with the MIDI output : I never get queue events, only on and off events, even with the queue modifier on. Is this normal behavior?

Any help appreciated :-)
Screenshot from 2022-07-19 21-20-05
Screenshot from 2022-07-19 21-19-02
Screenshot from 2022-07-19 21-18-26

Thanks for assuring me that I was not hallucinating :-)

Gonna try out ALSA with auto-connect, although it doesn't really integrate into my workflow. Otherwise, I'm gonna stick with Jack MIDI for the moment. Lastly, let me investigate on the queue output. I will open a separate issue if the problem is confirmed.

Let me know if I can beta-test some other features, seems that my setup is not so common :-)

It's not that uncommon. See #60. As far as I grok, there are two classes of users; those who desire a 'lightweight' experience and just want to use the app with their hardware and not any other software and need things to just start inputting/outputting, and people invested in joining together MIDI apps and plugins in a more complex system (most often, in this day and age, using a dedicated patchbay app). Afaiu seq66 has inherited default behaviour orientated toward the first group.

I have done a lot of refactoring of the handling of ports and port-mapping. So if issues crop up, probably calls for another issue creation. So closing this one. Amazing how many tweaks are needed when refactoring! In any case, keep reporting! I'll get it right eventually! :-)