An HTML-based MIDI Remote demonstrating additions in MR API 1.3

You don’t need loopMIDI anymore. That’s the whole point. Create MIDI 1.0 endpoints. Or import your loopMIDI ports. (Although loop MIDI compatibility has already been fixed, just not in general release yet).

Guys I’m conscious that we’re taking this thread off topic. All the above stuff have their own threads.

Sorry for the noise @m.c and others.

I’m muting this now.

No problem at all :slight_smile:
By the way I chose loopMIDI ports for the script, simply because I was too lazy to adapt to the new Win MIDI. I will soon do so though.

Totally understand. Have a look at my app mentioned above. Even if you don’t use the app itself, the read me might be useful to you.

Or ideally join the windows MIDI Discord, if you haven’t already. Pete from MS is super active and helpful over there.

:folded_hands:

I know, it’s just that I’m mostly into (re)designing some of my scripts these days, so didn’t really bother with MIDI ports. I know that very soon some issues will be fixed :slight_smile:

Yup. Main thing is. (Example for others who might not get it):

If you have 2 loopMIDI ports in loopMIDI. You can simply recreate those as windows MIDI 1.0 endpoints. You can even use the same name if your app requires specific loopMIDI port names.

Sure thing.
Note that (and this goes for @d.rubtsov mostly) that when we load the HTML, we can always choose different ports. And when we run the script inside Cubendo, we can always alter it to follow these different ports. What we must be careful is to have them crossed, i.e. a selected Port as a MIDI In in the HTML, should be defined in the MIDI Remote script as a MIDI out.

Yes.
This is exactly why my MIDI Port Creator app will insist on WM to and WM from when creating MIDI 1.0 endpoints.:

  • Windows MIDI 1.0 endpoints: WM to “name” and WM from “name”
  • Windows 2.0 endpoints: “name” (just 1 port as it is bidirectional - A and B are usually seen in the DAW)
  • Import from loopMIDI: will create Windows MIDI 1.0 endpoints named exactly as you have them in loopMIDI

:slight_smile:

This looks really great !

@m.c absolutely, let me know when you are ready!

This looks great. Admittedly a lot of the mid remote back-end may as well be in Chinese to me..

Is there anyway to get this kind of functionality with the Expression maps? - What I’ve been wanting for years and years is a page that syncs with the selected track and updates the available articulations - pressing on an articulation for example selects that articulation or applies that articulation to a lane direction or attribute.

Seems like all the pieces are there with the midi remote and new expression map system of C15

Hi, I don’t think so. I mean, I never saw something inside the MIDI Remote API for articulations.
On the other hand, since articulations can already be remotely accessed, it shouldn’t be very hard to do something for it, but, again, that’s not something really that relative to the MIDI Remote. Unfortunately, I never got into this mechanism, so cannot help for now :frowning:

@m.c your script is fantastic! I was looking at some of the messages sent to Cubase with a MIDI monitor, and I was able to reverse engineering some of the messages, but can you point me to some documentation regarding the script syntax in Cubase MIDIRemote? I would like to send some of this messages with MetaGrid and keyboard maestro instead of relying on a web page.

Sure. This is from Steinberg official: Introduction | MIDI REMOTE API

You mean by keeping my script active, but just let it receive from meta or maestro? Doable of course. What type of messages are you interested in?

Sure. This is from Steinberg official: Introduction | MIDI REMOTE API

Thanks!

You mean by keeping my script active, but just let it receive from meta or maestro? Doable of course. What type of messages are you interested in?

Exactly; I already tried creating a Keyboard maestro macro to load a specific plugin on an insert slot and it works; The macro in turn can be activated from a metagrid button.
What I don’t know if what is going to happen to the plugin number address as soon as I install a new plugin.
For example, from the quick test I made, if I send F0 00 00 00 04 02 01 00 65 F7 I can load Magneto in the first slot, but I’m wondering if this message will remain the same when I’m going to install some new plugins.
Also, I’ve found that some control change messages are used to determine the loop length in Cubase; I presume all of this implementation is going to be detailed in the link in MIDI Remote API link, right?

@m.c you should offer your expertise as a business, I’m sure there’s many professional working Cubendo users who would hire you.

I totally agree!

It won’t stay the same most probably.
The messages you see is one that tells my script “Hey, please load the plugin which you (the script) gave me the index 0x65.” The way the script populates its map of plugins is by iterating through the collections of plugins, and when finding one not previously in the map, insert it. So, these are numbers that are not some absolute indexes for Cubase.

Nope. The link I posted is about the general structure of a midi remote script, it doesn’t document what I’ve been doing in my script.
You can always open my script and inspect it for all the MIDI Messages sent/received, but in the case of plugin selections, it won’t be of help in the use case you describe as explained earlier. Instead it would be much more simple to use the script I’ve posted in the other thread.

Concerning the control messages for the loop lengths, yes, they can be used, but if you ask me, it would be an overkill to keep this big script just for these. I can always help inserting this type of stuff in another script. But I highly advice against using this particular script as a whole.

Hi, it’s a complicated thing. Though I would love to work with musicians/engineers, my current state as a dev wouldn’t leave me much time dealing with individuals unfortunately. I occasionally help some friends here in Greece at their Studios, but mostly because they are… friends.
That being said, I’m trying to find some spare time to finish a utility targeting individuals with more advanced needs than the usual (play,stop,volume) things. I guess it will come out, sooner than later. Thank you for your kind words!

I’ve noticed that while using this MIDI Remote there’s a constant stream of MIDI messages sent to IAC Bus 2 by Cubase.
The stream is composed by several control change messages on channel 1 and 2 and also system exclusive messages.
Is this an intended behavior?

Yes, there are a lot of exchanges happening. I wouldn’t say totally constant, more it’s about when things changing. For example, if we have automations in volume/pan and other params.