Closed szszoke closed 1 day ago
I can see documented that Elektroid is not supported in Overbridge mode and I suppose this is because the lack of ALSA MIDI devics.
Exactly. As of now, Elektroid doesn't work if the machine is in Overbridge mode.
I could add a ALSA MIDI client inside Overwitch in the future but definitely I won't do it for the current release as it's taking too long already. This will avoid having to fiddle with the machine menus and I like it.
Most probably I'll give it a try. What I don't lilke is that this will duplicate the MIDI ports, as there would be the the JACK port and the ALSA one, and the latter will be in need of a2jmidid
so perhaps removing the JACK port and adding the ALSA one is the way to go.
Let's leave it here for now.
It would also be preferable to have ALSA-only MIDI ports instead of both ALSA and JACK for PipeWire.
PipeWire would enable to connect ALSA MIDI ports into any JACK-aware application and browsers would also play better with ALSA MIDI ports, so things like elk-herd would still work (in theory).
I think having ALSA-only MIDI ports is the way to go forward.
Hey,
How do you feel about this now after some time?
I myself recently encountered a roadblock when I wanted to use my Digitakt as an audio interface and also send samples at the same time with Elektroid.
Audio sent to the Digitakt in class compliant mode came out distorted (as you and some others have already discussed it over at Elektronauts).
It would have been nice being able to use Elektroid with my Digitakt in overbridge mode.
I think we could do this.
GUI wise, does it make sense to add a new "Native Ports" device so the user can make the connections from qpwgraph
or the like? Is this what you'd like to have?
This could be useful in other scenarios when trying to use complex cable routings.
This does not make sense from the CLI.
There's another totally different option I believe. It would consist of creating an ALSA virtual device (card) in Overwitch that Elektroid could connect to. This would need no changes in Elektroid but in Overwitch.
I'll try a few things during the following days and confirm the second option.
The first option could be a good start I think.
Another option could be that Elektroid looks for Overwitch nodes, shows them in the device selector dropdown and sets up links between itself and the Overwitch nodes when a device is selected.
I don't know how this would work with Jack.
You might have an easier time if you use the native PW API for this because it handles MIDI natively.
As you pointed out, using the PW API would allow more flexibility because the device could be opened in a DAW and in Elektroid at the same time.
This last option would also work for the CLI in my opinion because it would be Elektroid itself that would make the connections.
I did some research last weekend.
A couple of things to mention.
snd-virmidi
module, which will create virtual card-like devices that can be accessed directly from Elektroid as it is. No new development needed.qpwgraph
from the PipeWire MIDI bridge to connect the virtual devices with the Overwitch ports back and forth.A bit far-fetched but...
Will this be enough for you?
Using a virtual MIDI device between Overwitch and Elektroid would work for me.
I guess Elektroid does some sort of device query and the name of the MIDI port doesn't matter - right?
I guess Elektroid does some sort of device query and the name of the MIDI port doesn't matter - right?
It does both. It shows all but also tries to find the best one.
Devices are shown as they are. When connecting to the selected one, it tries to match the name of the device with any of the connectors regex. If it does, it tries to connect with that connector (and if it fails it will try the rest); if it doesn't, its gonna try with all of them.
This approach speeds up the connection because some connectors take some seconds to detect the device and having several to test was very slow as many of the messages end up not being received and fail with a timeout.
For this to work, connectors are order by the time it takes to connect. As the elektron connector is the fist one, it connects very fast.
Before fixing this issue one way or another, this other issue needs to be addressed in Overwitch.
Is it normal that I get so many virtual raw MIDI devices? My PipeWire and other apps only seem to see two.
snd-virmidi enable=1 midi_devs=2
I guess this can be closed now that the latest OS for the Elektron boxes supports class-compliant MIDI even in Overbridge mode.
Absolutely. This can be closed now.
A small recap first.
The idea was to do this.
snd-virmidi
.But as Overbridge 2.13 devices expose their MIDI ports as Class Compliant. all the MIDI code in Overwitch was unneeded and was removed.
Now, Elektroid just works with the new devices in Overbridge mode without doing anything special.
The ability of accessing raw MIDI ports is still a feature of Elektroid.
I can see documented that Elektroid is not supported in Overbridge mode and I suppose this is because the lack of ALSA MIDI devics.
Is there anything else in the way of Elektroid working in Overbridge mode?
Say if Elektroid would be JACK-aware and could connect to the MIDI node created by Overwitch, would it work?