[Feature Request] Use JACK/PipeWire for MIDI input
Closed this issue ยท 2 comments
Under Linux, Odin2 seems to use some low-level layer to directly read input from MIDI devices. While this works fine, it's not as convenient as using JACK or PipeWire.
If using JACK (or PipeWire, but PipeWire server has JACK support anyway), then the application will be available to be connected and routed freely using a tool like qpwgraph. For comparison, look at how amsynth behaves:
Using native JACK/PipeWire MIDI:
Using ALSA MIDI, which somehow can still be re-routed using PipeWire:
Observe how odin2 doesn't provide any MIDI input and thus can't be re-routed using PipeWire (or JACK) tools.
For completeness, both Dexed and OB-Xd and OPL Synthesizer ad Surge also suffer from the same issue.
Hi @denilsonsa
Thanks for your request. Odin 2 uses the MIDI abstraction provided by the JUCE framework. As it has to run in a variety of different plugin formats and on three OSs, changing from this behaviour would mean a special solution for your case.
I see the other synths you posted use JUCE as well, so this feature request might be better suited for the JUCE framework itself to support the Pipewire / JACK midi features? ๐
That being said the JUCE module in Odin 2 hasn't been updated in quite a while. Doing so could give a solution to your problem, assuming JUCE has grown to support your case in the meantime.
In any case, I'm stopped active development of Odin 2 apart in favour of another synth project for now, sorry ๐
@TheWaveWarden Thanks for your quick response!
Oh, so JUCE handles that part? That explains why so many tools look similar! :)
I'm not a musician, I'm just enjoying exploring all these audio tools. Maybe someday I'll take music classes, but for now it's just a hobby. Don't worry, no need to make an special case for me. It's just way more convenient to do all the audio routing in one place, instead of trying to figure out which app is consuming the MIDI events.
I'm closing this issue here, and maybe poke people from the JUCE community.