Limitations of the USB Host port on the Anyma Phi
Summary: the USB Host port on the Anyma Phi has speed limits, does not support USB hubs, and is unable to drive a Haken Continuumini. It would be great if those limitations could be fixed, and more importantly, they should not carry over to the Anyma Omega.
The USB Host port on the Anyma Phi
The USB Host port on the Anyma Phi is a distinctive feature: not many synths have it. Its ability to directly connect to, and power, a MIDI controller makes small and simple rigs possible.
And while supporting the MPE standard is not really useful for a paraphonic synth, it can be nonetheless be used expressively together with MPE controllers.
The upcoming, polyphonic Anyma Omega will support the MPE standard, and it too will have a USB Host port. It's important that its USB Host port works better than the Anyma Phi one.
Three MPE controllers
I connected, in turn, three MPE controllers to the USB Host port of my Anyma Phi (running the latest firmware version, 1.1.0):
Of the three, only the Seaboard has a battery; the other two are powered via USB.
Also, only the Linnstrument also has standard, five-pin MIDI connectors: all three can send MIDI over USB.
The three controllers emit MIDI data at different speeds. I didn't actually measure the speed, I only got a sense of it by looking at the MIDI messages with the KMIDIMon program on Linux.
The Seaboard is the slower of the bunch; it emits a fairly slow and consistent message flow, irrespective of how many notes are played and how much the fingers move around.
On the Linnstrument, the message speed from the five-pin MIDI port is intrinsicly limited, but the USB speed is quite variable. It is also configurable, and can go up to three times the speed of the five-pin MIDI port.
Finally, the Continuumini is the fastest of the bunch, with a very high time resolution even when playing one single note, so much that the KMIDIMon program could not keep up.
The MIDI speed on the Seaboard and the Continuumini is not configurable: the former is slow, the latter is fast.
A simple patch
In order to avoid risking to overload the Anyma Phi CPU, I created a simple patch with one Virtual Analog oscillator, one State Variable filter, and the reverb, for a total load of 36%.
I then routed six signals as follows:
- X axis -> Pitch Bend -> Oscillator pitch;
- Z axis -> Channel Aftertouch -> Expression -> OSC1 Level;
- Y axis -> Control Change #1 -> Controller A -> OSC1 Shaper;
- Control Change #16 -> Controller B -> Filter cutoff;
- Control Change #18 -> Controller C -> Filter resonance;
- Control Change #17 -> Controller D -> Reverb wet/dry.
The Seaboard and the Continuumini only emitted the first three; the Linnstrument also emitted the last three using its Low Row feature on three additional X/Y/Z axes.
Passing through the computer
As a comparison, I connected the three controllers and the Anyma Phi (using its USB Device port) to the computer via a powered USB hub, and routed the messages from all three to the Anyma Phi.
I was able to play the Anyma Phi patch from any of the controllers (including the Continuumini, see below), and even using all three at a time (for some definition of play :-) ). Of course they were interfering with each other, all of them trying to control the one poor note, but even then, the interaction remained responsive all the time.
And now the point of all this: using the USB Host port of the Anyma Phi, first directly, then via USB hubs.
The Seaboard Block
The Seaboard Block has a battery, so it doesn't need power over USB. It worked flawlessly when connected to the USB Host port, no doubt helped by its low MIDI speed. Nonetheless it stayed expressive, so no problems here.
The Linnstrument 128
When connected via the five-pin MIDI port, the Linnstrument had no problems either, playing responsively and accurately, also helped by the low speed of the five-pin MIDI port.
The Anyma Phy did manage to properly power the Linnstrument from its USB Host port, even when the Linnstrument was not in Low Power mode. However, it often lost notes and was not very responsive. Getting it to a playable state required increasing the Linnstrument USB output delay from the default of 235 to the maximum of 512, and setting the Pitch/X axis to Quantize Hold. Even then, it still lost the occasional touch, so much that using the five-pin MIDI port is still preferable.
The Haken Continuumini
The Continuumini created the most problems to the Anyma Phi. It was not powered properly from the USB Host port, its display showing ErrP (Power Error). I used a USB Y-cable and a power bank to work around that, but even then the Continuumini display started flickering after being connected to the Anyma Phi, and there was no sound nor any evidence of the Anyma Phi receiving MIDI messages.
As a check, I connected the Continuumini to the computer using the same Y-cable and powerbank (even though it was not necessary), and the Anyma Phi could flawlessly receive and play the Continuumini messages via the computer, as before.
USB hubs connected to the USB Host port
Finally I tried using two different USB hubs, in turn connected to the USB Host port of the Anyma Phi, with all three controllers connected to them.
The same powered USB hub, successfully used before when connected to the computer, was not recognized by the Anyma Phi. It did not light up and no MIDI message seemed to be received by the Anyma Phi from any controller.
A different, non-powered USB hub also didn't seem to be recognized by the Anyma Phi. The Continuumini showed the same ErrP message as before, and the Linnstrument was being correctly powered, but again, no MIDI message seemed to be received from any controller.
Given that the Anyma Phi worked properly with all three controllers when messages were routed via the computer, it looks like there are problems with the USB Host port itself. It seems to have a low speed limit that, while not problematic for standard MIDI speeds, is quite limiting when using USB, which can be quite faster.
Also it does not seem to recognize common USB hubs; I don't know if it does recognize any specific model.
Finally, it's incompatible with the Haken Continuumini, making the two unable to work together without an intermediate device.
It would be great if these limitations could be solved by an Anyma Phi firmware update but, as a participant in the Anyma Omega kickstarter, I'm more concerned that these limitations may be carried over to the Anyma Omega.
I'm sure Aodyo already has plans to test the Omega USB Host port with an extensive collection of MIDI controllers, including a number of MPE ones. Hopefully this investigation is additional evidence of the need for such in-depth testing.
Interesting feedback. Thank you.
One thing to keep in mind is that the Anyma Phi being monophonic connecting MPE controllers to play it is not necessary the first use case.
The USB MIDI Host is meant to allow the connexion of MIDI Class compliant device but it seems that this "standard" is still subject to various interpretation among MIDI controller manufacturer.
What we tested on our side among MPE device though are 2 of the one you listed:
- ROLI Seaboard Rise and Seaboard Block are working with the Anyma Phi
- Haken Continuumini was also tested but with the result you described with this "not enough power" message on the Continuumini although the power provided should be enough. We made a few attempts to check this was a USB software protocol trick (by rising the available power message) but with no success so far.
- We do not have any Linnstrument in our workshop yet so we couldn't make any test on this one. We weren't aware of the various speed available on this one. (This could make it a valuable test unit for our tests with the Omega).
- USB Hub is not really something we expect to work as the device is intended to manage one controller device.
One thing to keep in mind is that the main target of this USB MIDI Host port is to allow the use of the Anyma Phi with a controller which does not feature any DIN connector, so the expected MIDI speed is currently the standard MIDI speed.
The Anyma Omega will be done using a new generation board so there will be much more ressources available to manage a higher speed MIDI (and the merge and routing of MIDI coming from the various MIDI port: USB device, USB Host, DIN MIDI In ... and the "internal" command coming from the keyboard and ribbons, the CV/Gate signal etc.).
This is part of the necessary spec for the MPE compatibility of the Omega.
Once this would be done, we could then check what could be transferred back from the Omega to the Phi.