Warning: This is EXPERIMENTAL, and also DOES NOT WORK ON WINDOWS.
Also going to be quite technical, purposefully, so that if things go wrong you need to know how to roll back.
If you are a tech-savvy person using macOS or Linux, we have a gift for you
The Duo X working as a class-compliant UAC2 Audio* and MIDI device.
*Audio is input only for now, with fixed 48kHz sample rate (same as used inside the unit).
WIth that said, let me give you the details…
With the Duo X we are now running Linux 4.9 kernel. This is past 3.10 where composite devices were introduced. (for comparison, the Duo runs 3.4)
This is quite important, as composite devices allow us to have many USB configurations all at once - could be ethernet, mass storage, serial, audio, midi, printer, etc etc
During Duo X development we researched this a little and discovered it is actually possible to make it work, but with some caveats…
The Duo X USB driver has issues sending out data in a way that makes USB audio output work.
I tried a couple different things, backported some fixes from more recent kernels, but still could not make USB audio output to work. Since it is not a feature that was planned for Duo X launch, USB audio input seemed good enough for a start.
Current plan is to update the kernel version to mainline at a later point, where this issue is likely to be fixed in there already. There are more important things for us to be focused on at the moment, so we revisit this when we update kernel.
So what we are able to enable and get working is USB audio input and USB MIDI device modes (MIDI being both input and output).
Saying “USB audio input” can be a bit confusing, so to clear it up: We can have the Duo X act as a USB soundcard that provides 2 playback channels. You can send audio from your DAW or music application into the Duo X, but you cannot retrieve audio from it (for now).
You can though send and receive MIDI from the Duo X.
In the future we will leverage this mode to provide a mass storage device, so you can quickly upload your own samples, soundfonts and other things. But some work on our side needs to be done first before this is possible, so please be patient.
For now we can enjoy audio and MIDI through USB, without resorting to netjack tricks.
So, how to enable this?
Very simple, with the Duo X connected to your system, you just need this:
ssh firstname.lastname@example.org "touch /data/enable-usb-multi-gadget && reboot"
If you are confused or don’t understand what that does, PLEASE DO NOT TRY IT.
When we say it is EXPERIMENTAL, we mean it.
The usual Duo X Ethernet gadget will change to a composite device that has ethernet, audio and MIDI all at once.
Depending on the operating system, it might or might not work well.
Windows gets quite confused by this, and the USB audio driver does not start under Windows, so it is quite pointless to even try this there.
It does work quite nicely on macOS and Linux though, and I guess other BSDs will handle it too.
After this is enabled, 2 more audio inputs will appear in the web gui.
These will be the USB audio inputs, which now you can put some FX or connect directly to the outputs.
Since Duo X starts with “aggregated” MIDI mode by default, no new MIDI ports will appear, the DIN MIDI and USB MIDI just get combined.
In case you need to get back to the old behaviour, you do:
ssh email@example.com "rm /data/enable-usb-multi-gadget && reboot"
That is assuming you can still connect to the unit.
To the brave souls out there that feel like trying this, please let us know how it goes.
There is a backup in case things get really wrong (like you not being able to connect to it anymore), but it involves deleting all user data…
PS: You might need to enter “mod” as password somewhere…