Sushi and MIDI input

I just wrote and debugged a VST synth with Juce on a Windows platform, cross-compiled it on Ubuntu using the Elk Juce fork, transferred it to a Pi 4 and ran it successfully under Sushi. Other than struggling a little with the config json file, it was all rather straightforward. Thank you. Nice job.

My question here is about connecting a USB MIDI keyboard to Sushi. The current documented method involves polling the device numbers using aconnect and making the connection after Sushi is already running.

For a headless embedded platform, where there is no user input, is there any way that Sushi can support dynamic handling of MIDI input devices? For example, if the system turns on and automatically loads Sushi with no USB keyboard plugged in, is there a way to enable MIDI input when one is plugged in? Or, failing that, if the system is turned on with a USB keyboard plugged in, does it typically always have the same connection ID?

2 Likes

Hi @robertsonics,
we are indeed working right now on a new release that will have dynamic MIDI routing among the other things.

But at the moment it is still possible although it requires quite some hacks using an external client.

Using a program (written e.g. in Python or whatever other language for this features), it is possible to query the available ALSA ports at run-time, register a callback when a new device is connected and mimic what aconnect does.

At the lower-level, the official documentation is ALSA Sequencer’s C API:
https://www.alsa-project.org/alsa-doc/alsa-lib/group___seq_event.html

1 Like

Thanks. I’ll check out the current solution and look forward to the new release.