Feature Request: Midi Mapping

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.

A mapper needs an endpoint. :slight_smile:

If you want to change more simultaneously, I’d recommend to bundle the changes with scripts.

httpRequest(...)

Instead of ... copy the Endpoint between the brackets.
Seperate each command by a new line.

Then you’re also able to change multiple values from different layers. Certainly, you’re also able to switch on/off whatever you want (through one MIDI-Signal). At the mapper call the Endpoint of the script, or the bundled scripts from a LayerSet.

This flexibility is only available through automation. (Even using X-Keys).

I think that Achim was refering on this, when posting that:

And with this you could also activate the changes onKeypress. (mapper to keyboard key).Amazing!

Is there a way to change the layer volume?

Sure. Do you want to map onKeypress? Simply give your Automation-variants different Keys, which you let press your mapper.

Here you are:

I mean, midi potentiometer control…

:slight_smile: When you map it… :slight_smile: Between 0% and 100% :slight_smile: … If you’re able to find 100 key Combinations? Baybe 20 are enough? … I’d try to use Variants. :slight_smile:
Just kidding.

Variants +
/cycleThroughVariantsBackwards and
/cycleThroughVariants

You’d need a first and a last variant, which prevents the wheel from cycling from 100 to 0 or from 0 to 100.

That could bring the solution.