Documentation of Editor Protocol

Hi Blokas,

Great release of great product! Thanks!

Question:
Will the editor protocol (SysEx I presume) be documented?
Does the device respond to these messages on other ports then USB 5?

Cheers!

PS I’m one of the ‘super early bird’ customers

1 Like

Hey! Thank you!

The communication is currently in SysEx, the 5th reserved USB port is used entirely for the communication, the other 4 ports are used only for musical data.

We will be looking at using COM / CDC instead for communication, this way the programming MIDI port won’t appear in audio software, resulting in smoother user experience.

We don’t plan to document the protocol we use, as it would require additional maintenance and support, we’d rather focus on making the editor as good as it can be. :slight_smile:

Hi @Giedrius,

Thanks for your reply.

Because of so many possible gear setups, I’m into automating (scripting) a lot of it, and Midihub could play a crucial role in that. I was hoping for a public SysEx description, like the iConnectMIDI4+ (which is indeed controlled by SysEx).

Would another solution, to allow automatically generated setups, be a possibility for Midihub in the future?

The file format of Midihub seems binary, a text based file format would also be really helpful.

I hope my urge for something that can be generated by software other than the accompanying editor comes across.

Cheers!

2 Likes

Hello,

I just started playing with the editor before considering buying the Midihub.
As @Joris I’m considering automation and an open protocol through sysex would be very convenient.
I understand your point about the potential confusion of having that additional control midi port.
But maybe it is a tiny problem regarding the great potential for automation or any future use cases ?
For sure there is that support issue…
Anyway, I just wanted to “+1” the interest for an open protocol :wink:

Hi @Giedrius,

Please keep your SysEx approach, not only because of automation, but also because I foresee that using COM /CDC means that Midihub needs to be connected directly to a computer, and no other system like iConnectMDID4+ can sit in-between, right?
I would like to have Midihub work on the USB Host port of iConnectMDID4+ (with allows class-compliant MIDI devices).

Hope that your production-line is ramping up, now that you had a 1000% plus campaign (congrats!). Can’t wait to get mine…

Thank you! :slight_smile:

A composite device can still be class compliant in all interfaces it provides, I have already tried this out on a couple of phones, they see Midihub correctly, and not having the 5th MIDI port, dedicated for communication with the editor, should provide for a smoother user experience.

Hi @Giedrius,

So you are saying that Midihub would work & be editable via your software when I have it connected via a iConnectMIDI4+ host port? Are you sure? My understanding is that anything besides class compliant MIDI will be terminated there and then. This is also what one typically sees with devices (say) from NI which do more than MIDI (Komplete Series Keyboards). If those are connected to the USB Host port of a iConnectMIDI4+ there MIDI part functions fine, anything else does not. So it renders the Komplete integration useless and makes those controllers ‘dumb’ (only MIDI). (Please understand, the iConnectMIDI4+ is more than a USB Hub, it is also a USB Host and MIDI DIN router). The computer does not ‘see’ the connected USB devices, but has MIDI access. That is why I am pressing for keeping SysEx as a communication protocol.

Cheers,
Joris

A USB device can have multiple interfaces and still be class compliant. I don’t think it’s the issue of the devices connected to iConnectMIDI4+, rather it seems iConnectMIDI4+ is misbehaving being a USB hub then.

A USB device can have multiple interfaces and still be class compliant.

Yes, I’m aware of that.

… it seems iConnectMIDI4+ is misbehaving being a USB hub then.

It is not misbehaving, it is by design as it IS not a USB hub, but more a MIDI router that works in DAW-less setups, and as such hosts USB devices, and routing MIDI from and to them, but only MIDI. Please consult the the specs here if you want: here

So, please allow for these remote kind of setups by having a SysEx protocol (like you seem to have now), instead of local (to computer) only setups.

Cheers,
Joris

my personal opinion…

although I generally don’t like, closed protocols, I agree supporting an api can be a drain on development resources - so, even though I’m a developer, I’m with @Giedrius, its much better concentrating dev effort on editor which 99% of users are going to use.

perhaps a compromise…
not supporting this kind of usage (so keeping dev effort on editor), but perhaps just open up a small ‘crack’ for the adventurous :slight_smile:

perhaps access to the sysex, and a human readable form (json?) of setups could be a compromise - that’s is ‘unsupported’, so use ‘as-is’, undocumented.
(this is not uncommon, many things you can ‘hack’ setups, but the company does not document/support this usage)

I’d agree sysex is useful as it’ll pass thru midi routers and also if we have the option to receive/transmit it to port 5, then this gives options like using sysex librarian - and also an option for send/recall on things like a rPI where the editor is not available.

port 5 is a bit confusing, but I think its not too bad… as it doesn’t appear in the editor.
(guess it just has to be in the manual somewhere?)


another alternative, perhaps later - open source the editor and firmware of midihub?
that way users with different requirements could modify to their requirements on their own (at their own risk of bricking the midihub)

this would also allow the adventurous (developer) access to the binary protocol via the source code, should they wish - but its then not an official api, so doesn’t need to be ‘supported’

3 Likes

For me the most important part of that is to be able to have support on futur OS even if MidiHub is no more supported by Blokas.

I still have my Nord Modular G1 :wink:

2 Likes

This is my worry as well - in the Linux land anything binary-only tends to get left behind sooner than later.

One of the big deciding factors to go with MidiHub instead of competition was the Linux editor, but now that I try the latest version (on Fedora 31), it just complains about missing openssl symbols and crashes with a segfault. Now, I’m quite sure I can get it running by a bit of creative library picking from Ubuntu but that isn’t much of a “native editor” experience, and such things get increasingly difficult as time goes on.

Open-source would be ideal, but public documentation for the editor protocol once the MidiHub and the editor are no longer developed would go a long, long way. Certainly people have reverse-engineered crazier stuff, but…

The latest Linux build is an AppImage one - it’s supposed to make it easy to publish Linux software to be run on a lot of distributions. As you understand, we physically can’t have enough time to make sure it works on every Linux distribution out there, but we’ll definitely look into any reported issues and do our best effort to keep it as cross-compatible as possible.

Could you please create a new topic about the issue you’re seeing and provide the output you get?

Here goes: MidiHub editor on Fedora crashes on launch

Always planned to report that separately, just mentioned in this thread as this does relate to the longevity worry: binary compatibility in Linux GUI world is hard.

I think this has to be revisited. A lot of us are using custom/different platforms to make music. There is a lot of potential if people could port/customize the editor for the platform they want.
First thing that comes to mind is porting to android and ios.
Still as crazy as it sounds I would love to port the editor to my amiga and the norns sound computer.

1 Like

Would you not loose the ability to edit midi hub if it was connected to a host port on a iconnectivy midI 4+.?

Yes, as it is not using Sysex, but a proprietary protocol over (direct) USB.
Would loved to have the option…

1 Like

Nod, being MIDI (SysEx, even if undocumented) would have the benefit of being routable through the other devices. Especially as a big part of the reason for those devices being there is MH’s lack of USB Host support.