MPC Live?
I just remembered that the Organelle M can be a USB host as well as controller. Just 4 knobs but has 25 button keys. Lots of sound mangling / FX features as well.
I prefer TRS MIDI.
I think I saw a superbooth video looking at the ESI X-Synth which is being developed for release later this year. It might fit the bill. Itâs got velocity sensitive keys, poly after touch, a few knobs, midi and audio in and out, battery powered, and unless Iâve imagined it, it was usb-c and had host capability. I cant find the video that confirms the last bit, so maybe I did imagine it.
Oh also, doesnât look like anyone has mentioned this yet: if cost doesnât rule it out, the OP-1 Field fits the bill. I find it a pretty great portable MIDI controller and audio interface for my iPad or Digitakt, or Aria J-6, etc.
To answer the original âwhy?â, because USB is the plug you use to communicate with a computer. There is no way around this. If youâre using USB, there must be a computer at one end of it that we call the âhostâ.
So for a controller to be a host, it has to have a computer in it. Unless the controller is already essentially a computer (like the MPC), itâs expensive to add a computer just for managing USB.
Doubly so because music gear already has its own plug for communicating with other, non-computer gear called MIDI. So the complexity and expense of pretending like youâre a computer just so other gear can use the computer cable to connect to you instead of the music gear cable they were designed to use is often not worth it.
There are tiny modules implementing USB host controllers, like VDIP1 from FTDI. I wouldnât call that a computer.
Maybe Iâm missing it, but that only packages the UART, right? Youâd still need to manage device IDs, MIDI connections/enumeration, packet fixups for broken devices, virtual cables, and all the other âset up a virtual MIDI portâ stuff that has to happen above the driver and below any existing MIDI subsystem. Which, I think, would require some sort of microcontroller?
To look at it another way, single-purpose ports like MIDI or audio donât have to do any special logic or negotiation because thereâs only one type of data that ever flows over them. But USB is general purpose. Literally anything (audio, MIDI, keyboard, mouse, phone sync, self-warming coffee mugs with rainbow LEDsâŚ) can run over it. So the host needs to negotiate what types of services are available and how theyâll be addressed. To do that, it needs something that can run a program. And that requires some sort of computer.
Microcontroller, yes - but I assume youâd have that anyway (for processing MIDI), and thereâs also one embedded on the module, so it can âencapsulate USB device classesâ according to the data sheet. I have not worked with stuff like this for ages, but the other side - USB device - was quite easy to integrate already 20 years ago with FTDI USB/serial chips. If you have specific use cases like USB MIDI, an MCU should be sufficient.
So for a controller to be a host, it has to have a computer in it. Unless the controller is already essentially a computer (like the MPC), itâs expensive to add a computer just for managing USB.
Is it really though? Whatâs needed to do this simple sole task? More computing power than say a 20-dollar smartwatch? I doubt it.
Itâs not power itâs that USB hosting is immensely complex and not something you can drop into most microcontrollers. Over half of the linux kernel code is host side drivers. Moving up to a processor that can just run linux is wildly more cost efficient than attempting to develop a usb host on a microcontroller
The closest open source options are the deluge and the teensy, but both of them have trouble with any remotely non-standard usb midi devices (which is lots of them)
Examples of small, not super cheap MCU that can handle midi host tasks with programming examples.
Iâm still amazed that there is no USB host keyboard or knobs box.
I know you can buy extra boxes and their power supplies and cables etc but thatâs obviously a bore.