USB Port 1 input - appears not to work!

ok, so I was testing the Hapax (see next post) with the Osmose (recording/playback MPE), and found a small bug.

Osmose Port 1 is correctly SENDING mpe data,
however, it does not appear to RECEIVE mpe midi data on Port 1,
so you have to send the MPE back on Port 2. ( * )

Ive tried changing usb haken mode, and this does not appear to change anything.

its not really an issue, as MPE is a subset of MPE+
but will cause issues with devices (like the hapax) that don’t support multiple virtual ports over usb.

anyway, I managed to solve this in my hardware setup by using a iConnectivity mioXM, this allowed me to re-route the Hapax output to Port 2.

of course, Im sure Expressive E will sort this all out, but something to watch out for.


( * ) I tested this in multiple ways… not only using mioXM, but also by direct connection with USB to my Mac, and then routing via Ableton Live.

4 Likes

background, post I made about connecting Osmose to Hapax (and found the issue)

ok… tl;dr;
yes it works - testing both in/out and recording/playback.
din directly, usb you will need a ‘router’ (see below)

but its of course not quite as simple as just plug it in :laughing:

using midi din

k, this works as expect…
except you need to set pitch bend range in ext midi to 1/96
(you also need to have din mode = dsp in, as per normal)

usb connection

this does NOT work … kind of…
the issue is what appears to be a bug in Osmose firmware…
from what I can see Osmose is NOT accepting midi input on Osmose Port 1!
(even with usb haken mode 1/play)
this is problematic for hapax, as you cannot select virtual ports, it always uses port 1.

however, with my iConnectivity mioXM , I can setup custom routing, so I can get it to work as follows:

Osmose Port 1 → mioXM → Hapax (usb device)
Hapax (usb device) → mioXM → Osmose Port 2 (!)

you will also need to set the pitch bend range to 1/48
(edit: after a factory reset, seems 1/48 is the default)

why is this the case… as I say I think a bug… it seems logical Osmose Port 1 should accept midi.
the reason Port 2 works is although its MPE+, this is a superset of MPE.

why not use Port 2 for input to hapax, as I said above you cannot select it… but also the MPE mode on the hapax has no idea about MPE+ , so may or may not work… also using MPE has a bit less data.

4 Likes

I agree, the fact that virtual USB In port 1 doesn’t send incoming MIDI to the Haken engine causes lots of problems. I have all my MIDI gear connected to a Conductive Labs MRCC (MIDI Interface/Router). The MRCC supports four virtual In streams for each connected USB device, but only one Out stream. This means that I can’t send any MIDI data via MRCC → Osmose USB → Haken engine.

For now I use Osmose’s DIN MIDI I/Os as a workaround.

I’m not quite sure if Expressive E considers this a bug though. Osmose’s manual states that one should send external MIDI MPE data to USB virtual port 2 (which is not always possible in real life).

I sent a feature request to support, asking for an option to swap both virtual ports. Let’s hope they’ll fix that asap…

1 Like

I think expressive-e perhaps ‘assumed’ hardware/software would support multiple ports, as its part of the spec.
so the way they looked at it was…
USB Port 1 → Osmose MCU (only) , currently only used for clock.
USB Port 2 → Haken Engine

but yeah, unfortunately… its pretty common for hardware to not support multiple USB Ports on a single usb connection. ( * ) , perhaps to simplify routing, or just ‘dont know better’?

I think generally, once everything else is a bit more stable on the Osmose.
expressive-e should re-work the midi implementation.
whilst it works, its not intuitive, and feels like two products (Osmose / Haken Engine) glued together.

in particular I think the ‘controller mode’ could be much cleaner…


( * ) in fairness, these multiple ports were less common until a few years back, so I think some devs were/are unaware of them… and perhaps support is not so easy to retro fit.
we also see that not all hardware that support usb host, support usb hubs, which causes similar issues.

3 Likes

Expressive E support replied (in a very nice and honest way) that they consider problems arising from having only USB Port 2 connected to the Haken Engine pretty niche and that therefore it is unlikely that they will change that or add options to work around it in the near future.

1 Like

yeah. unfortunately, Im not entirely surprised…
I mean, computers support this, so , it’s kind of reasonable to say, that this is an issue of the ‘other hardware device’ not implementing the midi spec fully… so they should fix this.
e.g. I have actually talked to Squarp about this for their hardware sequencer Hapax.

I guess, one question here is… how much more dev EE plan to put into Osmose firmware? we have seen little change since the initial bug fix releases - so we will see over next few months etc. ( * )


( * ) personally, I don’t want to get into the discussion on ‘expectations’.
the gulf between what users expectations vs developers delivery/ the variation in number of updates from different developers… seems to be growing at an alarming rate … causing a huge amount of frustration… and has no ‘right answer’

1 Like

I agree. I understand their point of view. Same goes for Conductive Labs in my case (they also replied that they probably won’t fix/change this issue on the MRCC).

I use Osmose’s DIN MIDI I/O instead. Currently I don’t see any downsides.

It’s also important to note that Osmose uses MPE+ when playing its own keybed. Recording its MPE output in a DAW and playing it back (or playing Osmose’s sound engine from another MPE controller) would loose the nuances of MPE+, mainly in the attack phase of the sound. That means that just recording audio when playing the Osmose should be the best approach anyway.

3 Likes

They had a job vacancy listed for an Osmose firmware developer somewhere in recent months, and it was full of positive statements of intent to do with listening to user feedback and building up the capabilities of the Osmose in the years ahead.

I dont remember exactly where I saw it, someone on a forum or discord drew attention to it at the time.

edit: it was on discord but I also found a link to the advert on reddit:

https://www.reddit.com/r/Osmose/comments/137bw0c/expressive_e_is_looking_for_a_senior_embedded/

2 Likes

I explored recording and playback of MPE data with Osmose a little deeper now, and my finding is that it only works with USB Port 2. MIDI Din and USB Port 1 don’t send CC 74 for the lower half of the key.

Now I’m confused because I think it worked at some point with MIDI Din (as I wrote in one post above). Perhaps something changed with a firmware update, but more likely is that I only tried it briefly back then and used a sound where the issue wasn’t that obvious.

1 Like

Ive no issue with this…

both on din and USB Port 1, I get all mpe messages (including CC74)

do you have Ext Midi set to MPE?
(thats the only thing I can think that you could have set incorrectly)

edit: Im on firmware v1.4.4 ,so latest firmware
(if you are using a beta firmware, then you’ll have to contact EE)

2 Likes

Yes, thanks a lot, that’s it! I accidentially left “Ext. MIDI” switched to non-MPE during my explorations and forgot about it. The confusing part is that this affects Din MIDI and USB Port 1, but not USB Port 2. (Well, it makes sense though.)

The other thing that always confuses me is that huge UI page with “synth engine” vs “ext. MIDI”. It feels like switching between two different operating modes, but it’s not: both are always working in parallel.

BTW: I read somewhere on a forum "Make sure you are not filtering out CC87 that controls higher resolution for pressure and aftertouch,“ – but I never see CC87 on my MIDI monitor, no matter of the settings. Do you know anything about that?

2 Likes

yeah, easy to do/overlook

yeah, I don’t think the ‘mode switching’ is well done - unfortunately, I think some of this is a quirk with integrating with the haken engine. could be better for sure.

USB Port 2 you can think of as input/output of the haken engine, so will be MPE+ (rather than MPE) , this is where you will see CC87 (etc)


"Make sure you are not filtering out CC87 that controls higher resolution for pressure and aftertouch,“

frankly, this is overly generalised… this will only be useful if you are using with the haken engine which uses MPE , pretty much Osmose → Osmose/Other Haken instrument.

so, basically, if you want to record MPE+ from USB Port 2, and then send it back to your Osmose on USB Port 2.

however this assumes that your daw (etc) will even store these CCs correctly.
and whilst its correct that the MPE spec says any CC can be sent on a voice channel (and so should be recorded by a daw) - in practice very few DAWs do this, most only store the ChAT,CC74,PB and note on/off , so the ‘basic mpe’ standard.
probably the notable exception here is Cubase. (at least it was when I last tried it years ago)

but even if they did record these MPE+ CCs, none of their per note editing features would work, as this would need explicit MPE+ support which none have ( as MPE+ is not a standard ;))

so yeah, Id advise taking this all with a pinch of salt.

MPE+ is great from a technical standpoint, and if you are just routing messages (or somehow recording it ‘raw’) back and forth into a Haken Engine, but outside of that there is little to no support… so for most users, they probably don’t care and just can rely on MPE.
… this is why EE have the MPE mode on port 1 :wink:

2 Likes

That was my understanding of CC87. But I just don’t see it, even when I’m monitoring what is sent out to USB Port 2?

1 Like

its definitely there :laughing:

if its not, the only thing I can think of is, is its been turned off in the EM Editor …
on C3 page there is MIDI I/O which says if Y/Z are using MPE+ (cc87) or not

however, selecting any factory present should have this on.
(actually I haven’t checked all… but not seen one where its turned off… e.g. Abyss Lands has it turned on)

the only exception to this would be if you have messed with your settings in the editor…
inside midi settings (in editor) there is setting
Preset Loading / Midi Encoding

this defaults to replace, which means the presets midi settings will be changes when you change preset.
if you changed this to preserve then this would not happen.
so if you’d set to MPE (rather than MPE+) and changed this to preserve,
then this could I guess get you to a situation where cc87 would never be sent.

all that said , not something people would ‘accidentally’ do :wink:

(generally, I’d not recommend fiddling with settings etc in EM Editor without checking in the manual what they do)

btw: this all assumes using factory presets, its possible if you have used 3rd party presets, who knows what they set the midi io too… but I assume you test using factory presets

2 Likes

You’re right. I double checked with a different MIDI Monitor and It’s there on USB Port 2.

2 Likes