Feature Request: Midi Mapping

X-Keys is OK, as is Novation, but Midi, or OSC I suppose, would open the possibilities up to many many more custom control opportunities. I know I’ve got about a dozen different midi controllers that have knobs, faders, user-defined button colors, etc. Perhaps MimoLIve could take a look at Resolume for inspiration in this area.

@Troy oh absolutely. I could see a good midi controller like that being of great use to those running live productions or trying to replace or upgrade legacy systems.

MQTT protocols is also very help for many programming are also very easy I using that in my many embedded programming assignment help.

Another vote for MIDI …

Farrago (sound board from Rogue Amoeba) does a great job with this.

They have a small button that appears at the bottom of the ‘Inspector’:

32

When you press that button it changes to ‘Learning’:

41

And then send it a MIDI signal and it turns that into a trigger:

50

Very simple, incredibly useful … I have a set of Korg pads that map straight into firing sounds.

I would LOVE the same for layers, etc!

(Also, is there any reason why can’t we have an ‘Off on Show Start’ layer trigger? … I have some layers that are used in pre-show, but they have to be manually turned off when the show ‘starts’ … )

Thanks
Wibbly

I think there is some mapping utilities out there you could possibly do this independently of ML. I’ve personally just set shortcut keys in ML and have used those but having midi controller access would be nice too.

I just set this up today using endpoint URLs and Keyboard Maestro. I have it “Recalling” my layer sets, and it works flawlessly.

I set this up by activating a layer set, then right-clicking and choosing “Copy Layer Set’s API Endpoint”. Then, in Keyboard Maestro, I build the URL by adding http://localhost:8989 + contents of Clipboard + /recall. That’s it!

You can use “Allow Recording” checkbox in Keyboard Maestro to “learn” which MIDI key you want to assign by simply pressing it.

Oh… make sure you go to mimoLive > Preferences > Remote Control and check the “Allow Remote Control Access” box, otherwise this won’t work. :wink:

Lastly, for more info, I found https://docs.mimo.live/docs/endpoints extremely helpful in arriving here.

1 Like

I would love use my old Novation Nocturn rotary controls in ML
Already I assigned buttons in Automap qwerty mapping and I’m able to turn on and off layers

Lot’s of cool make-shift solutions going on for button presses, but those are the simplest possible controls, and they are well-handled with MimoRemote already.
It would get much more interesting if we could map rotary dials (like the layer volume dials) or sliders (like layer position or opacity) to hardware controls. The mouse is not your friend when you have a project with several dozen layers and hundreds of variants and you want to control multiple things at the same time.
Mimolive is so powerful and capable, it is a shame when the limitation becomes how quickly you can navigate and control its finer details with a mouse.

Are there any news regarding Midi Mapping?
Would love to be able to assign to MPD 218.
Would make things better and more precise.

Why not simply use http://charlie-roberts.com/midiStroke/ to map midi to keystrokes and use keystrokes for mimoLive?

Because keystrokes don’t do that well to represent sliders or dials.

Keystrokes also provide no feedback to the controller device, so, for instance, you can’t illuminate a button on the device according to the live status of the controlled layer.

There are a bunch of ways to “fake” midi control, but the best way is to have mimoLive actually accept midi, or OSC.

1 Like

I like the idea of the “learn Midi” button.
BTW: Now you can switch off other layers by switching on the Automation layer.

2 Likes

Thanks to @DaveTheNerd tips and @Oliver_Boinx encourage, I’m using now my Novation Launchpad as Mimolive midi control.

It is possible use the potentiometers to control the layer volume? (from another controller, Akai APC mini)

Exactly. Button presses are not a problem. There are tons of ways to send button commands.

Dials and sliders are the more difficult thing to address, and they are where the power of a midi system would really shine–particularly if they had bi-directional feedback, or could at least be polled for value.

OSC would also be a great control solution to allow the support of many types of external controllers. OSC is also nice because it is easily used across a network. It was designed to provide more flexibility than midi. We could always externally remap midi to OSC where needed.

Imagine being able to control opacity of a layer with a physical slider. Or position of a layer with dials, or a joystick. It opens up so many possibilities.

Yes, amazing thoughts.

You can do this by simply submitting an http-Link to your mac. Whatever mapper you use, set it to send an http-request that is able to change the value(s), you want to change.

For e.g.: With a right click at the “Y-Rotation”-field, you can get the URL to change this value. Set it to whatever you want before you copy the URL. Then change it again and copy a second, third, fourth URL. You can use as many as you want to map.

You could also change multiple values by submitting more than one variable inside the update= string.

1 Like

Not looking to complain, but that is a pretty clumsy way to reinvent the wheel.

There are standard ways this is done with performance devices, and this isn’t it.

I mean, it works, and it is certainly better than nothing, but it isn’t what it could/should be.

1 Like

So, you suggest a mapper for the mapper?

Well, what Boinx has done is basically to recreate OSC without all the benefits of simplicity, readability, and parameter handling.

If the API had readily adjustable parameters it would be workable, but the idea of copying a bunch of “endpoints” and then cycling through them to simulate a smooth ramp of values doesn’t exactly seem efficient. Doing this for each item you’d want to adjust is a pretty undesirable process.

We really didn’t need a new way to do this. We needed Mimo to adopt one of the ways of doing it that everything else uses. OSC being (arguably) the most useful.

Here is an example mimo endpoint that adjusts shadow distance to 3px:

http://127.0.0.1:8989/api/v1/documents/762552328/layers/8EF4238B-8678-4FF2-BDBC-A01D40C72D5A/variants/131FEA1C-E21A-4384-9304-03D1FE196EC3?include=data.attributes.input-values&fields[input-values]=tvGroup_Appearance__Shadow_Distance_TypeBoinxY&update={"input-values"%3A{"tvGroup_Appearance__Shadow_Distance_TypeBoinxY"%3A0.006}}

In OSC, it would look like:
127.0.0.1:8000/layer/3/shadow_distance/3

Note how easy it would be to adjust those parameters to different values.without needing to return to mimo to capture an updated endpoint.