Quickly switching MIDI Mappings

Discuss music production with Ableton Live.
sefable
Posts: 125
Joined: Thu Aug 29, 2019 8:19 pm

Quickly switching MIDI Mappings

Post by sefable » Thu Sep 26, 2019 9:31 am

Hello,

I have a max for live device with 32 knobs.

I have a Midi controller with 16 physical knobs.

Is there a way to map the 16 physical knobs to the first 16 virtual ones, store that mapping, then map the 16 physical knobs to the last 16 virtual knobs, store that mapping, and then quickly switch between the first and second mapping.

This way, I have a physical control of all the parameter by switching between mappings.

If it's not possible natively, would you have any workaround?

Thanks for your help.

S4racen
Posts: 5830
Joined: Fri Aug 24, 2007 4:08 pm
Location: Dunstable
Contact:

Re: Quickly switching MIDI Mappings

Post by S4racen » Thu Sep 26, 2019 5:31 pm

ClyphX Pro has an add on product called Bindings that allows you to do this.

Https://isotonikstudios.com/clyphx-pro

https://isotonikstudios.com/product/cly ... -bindings/

Cheers
D

sefable
Posts: 125
Joined: Thu Aug 29, 2019 8:19 pm

Re: Quickly switching MIDI Mappings

Post by sefable » Wed Oct 09, 2019 4:10 pm

Thanks for your answer.

I'm looking for a free way to do it.

I'm a developer, but I just can't find the right documentation to build the python remote script.

Anyone could point me to the right direction?

sefable
Posts: 125
Joined: Thu Aug 29, 2019 8:19 pm

Re: Quickly switching MIDI Mappings

Post by sefable » Wed Oct 09, 2019 4:31 pm

This is my max for live device : 

Image
hergeur d image

When I click en "One", I want my 16 physical knobs to be mapped on the 16 first knobs in the device.

When I click en "Two", I want my 16 physical knobs to be mapped on the 16 last knobs in the device.

S4racen
Posts: 5830
Joined: Fri Aug 24, 2007 4:08 pm
Location: Dunstable
Contact:

Re: Quickly switching MIDI Mappings

Post by S4racen » Thu Oct 10, 2019 6:57 pm

As other people are likely to search for a solution similarly, this is the set up that I used at this weekends Synthfest show...

Took about 20 minuets to set top so it may save someone some time....

Bindings Code for 2 x MIDI Fighter Twister

MF_ENC_1 = 1, 0, ABSOLUTE, TRUE, SEL/DEV(SEL) P1

MF_ENC_2 = 1, 1, ABSOLUTE, TRUE, SEL/DEV(SEL) P2

MF_ENC_3 = 1, 2, ABSOLUTE, TRUE, SEL/DEV(SEL) P3

MF_ENC_4 = 1, 3, ABSOLUTE, TRUE, SEL/DEV(SEL) P4

MF_ENC_5 = 1, 4, ABSOLUTE, TRUE, SEL/DEV(SEL) P5

MF_ENC_6 = 1, 5, ABSOLUTE, TRUE, SEL/DEV(SEL) P6

MF_ENC_7 = 1, 6, ABSOLUTE, TRUE, SEL/DEV(SEL) P7

MF_ENC_8 = 1, 7, ABSOLUTE, TRUE, SEL/DEV(SEL) P8

MF_ENC_9 = 1, 8, ABSOLUTE, TRUE, SEL/DEV(SEL) B2 P1

MF_ENC_10 = 1, 9, ABSOLUTE, TRUE, SEL/DEV(SEL) B2 P2

MF_ENC_11 = 1, 10, ABSOLUTE, TRUE, SEL/DEV(SEL) B2 P3

MF_ENC_12 = 1, 11, ABSOLUTE, TRUE, SEL/DEV(SEL) B2 P4

MF_ENC_13 = 1, 12, ABSOLUTE, TRUE, SEL/DEV(SEL) B2 P5

MF_ENC_14 = 1, 13, ABSOLUTE, TRUE, SEL/DEV(SEL) B2 P6

MF_ENC_15 = 1, 14, ABSOLUTE, TRUE, SEL/DEV(SEL) B2 P7

MF_ENC_16 = 1, 15, ABSOLUTE, TRUE, SEL/DEV(SEL) B2 P8

MF_2_ENC_1 = 1, 0, ABSOLUTE, TRUE, SEL/DEV(SEL) B3 P1

MF_2_ENC_2 = 1, 1, ABSOLUTE, TRUE, SEL/DEV(SEL) B3 P2

MF_2_ENC_3 = 1, 2, ABSOLUTE, TRUE, SEL/DEV(SEL) B3 P3

MF_2_ENC_4 = 1, 3, ABSOLUTE, TRUE, SEL/DEV(SEL) B3 P4

MF_2_ENC_5 = 1, 4, ABSOLUTE, TRUE, SEL/DEV(SEL) B3 P5

MF_2_ENC_6 = 1, 5, ABSOLUTE, TRUE, SEL/DEV(SEL) B3 P6

MF_2_ENC_7 = 1, 6, ABSOLUTE, TRUE, SEL/DEV(SEL) B3 P7

MF_2_ENC_8 = 1, 7, ABSOLUTE, TRUE, SEL/DEV(SEL) B3 P8

MF_2_ENC_9 = 1, 8, ABSOLUTE, TRUE, SEL/DEV(SEL) B4 P1

MF_2_ENC_10 = 1, 9, ABSOLUTE, TRUE, SEL/DEV(SEL) B4 P2

MF_2_ENC_11 = 1, 10, ABSOLUTE, TRUE, SEL/DEV(SEL) B4 P3

MF_2_ENC_12 = 1, 11, ABSOLUTE, TRUE, SEL/DEV(SEL) B4 P4

MF_2_ENC_13 = 1, 12, ABSOLUTE, TRUE, SEL/DEV(SEL) B4 P5

MF_2_ENC_14 = 1, 13, ABSOLUTE, TRUE, SEL/DEV(SEL) B4 P6

MF_2_ENC_15 = 1, 14, ABSOLUTE, TRUE, SEL/DEV(SEL) B4 P7

MF_2_ENC_16 = 1, 15, ABSOLUTE, TRUE, SEL/DEV(SEL) B4 P8

MACRO for switching between first 32 parameters and the second 32 across both controllers...

$BANK1to4$ = BIND MF_ENC_1 SEL/DEV(SEL) P1 ; BIND MF_ENC_2 SEL/DEV(SEL) P2 ; BIND MF_ENC_3 SEL/DEV(SEL) P3 ; BIND MF_ENC_4 SEL/DEV(SEL) P4 ; BIND MF_ENC_5 SEL/DEV(SEL) P5 ; BIND MF_ENC_6 SEL/DEV(SEL) P6 ; BIND MF_ENC_7 SEL/DEV(SEL) P7 ; BIND MF_ENC_8 SEL/DEV(SEL) P8 ; BIND MF_ENC_9 SEL/DEV(SEL) B2 P1 ; BIND MF_ENC_10 SEL/DEV(SEL) B2 P2 ; BIND MF_ENC_11 SEL/DEV(SEL) B2 P3 ; BIND MF_ENC_12 SEL/DEV(SEL) B2 P4 ; BIND MF_ENC_13 SEL/DEV(SEL) B2 P5 ; BIND MF_ENC_14 SEL/DEV(SEL) B2 P6 ; BIND MF_ENC_15 SEL/DEV(SEL) B2 P7 ; BIND MF_ENC_16 SEL/DEV(SEL) B2 P8 ; BIND MF_2_ENC_1 SEL/DEV(SEL) B3 P1 ; BIND MF_2_ENC_2 SEL/DEV(SEL) B3 P2 ; BIND MF_2_ENC_3 SEL/DEV(SEL) B3 P3 ; BIND MF_2_ENC_4 SEL/DEV(SEL) B3 P4 ; BIND MF_2_ENC_5 SEL/DEV(SEL) B3 P5 ; BIND MF_2_ENC_6 SEL/DEV(SEL) B3 P6 ; BIND MF_2_ENC_7 SEL/DEV(SEL) B3 P7 ; BIND MF_2_ENC_8 SEL/DEV(SEL) B3 P8 ; BIND MF_2_ENC_9 SEL/DEV(SEL) B4 P1 ; BIND MF_2_ENC_10 SEL/DEV(SEL) B4 P2 ; BIND MF_2_ENC_11 SEL/DEV(SEL) B4 P3 ; BIND MF_2_ENC_12 SEL/DEV(SEL) B4 P4 ; BIND MF_2_ENC_13 SEL/DEV(SEL) B4 P5 ; BIND MF_2_ENC_14 SEL/DEV(SEL) B4 P6 ; BIND MF_2_ENC_15 SEL/DEV(SEL) B4 P7 ; BIND MF_2_ENC_16 SEL/DEV(SEL) B4 P8

$BANK5to8$ = BIND MF_ENC_1 SEL/DEV(SEL) B5 P1 ; BIND MF_ENC_2 SEL/DEV(SEL) B5 P2 ; BIND MF_ENC_3 SEL/DEV(SEL) B5 P3 ; BIND MF_ENC_4 SEL/DEV(SEL) B5 P4 ; BIND MF_ENC_5 SEL/DEV(SEL) B5 P5 ; BIND MF_ENC_6 SEL/DEV(SEL) B5 P6 ; BIND MF_ENC_7 SEL/DEV(SEL) B5 P7 ; BIND MF_ENC_8 SEL/DEV(SEL) B5 P8 ; BIND MF_ENC_9 SEL/DEV(SEL) B6 P1 ; BIND MF_ENC_10 SEL/DEV(SEL) B6 P2 ; BIND MF_ENC_11 SEL/DEV(SEL) B6 P3 ; BIND MF_ENC_12 SEL/DEV(SEL) B6 P4 ; BIND MF_ENC_13 SEL/DEV(SEL) B6 P5 ; BIND MF_ENC_14 SEL/DEV(SEL) B6 P6 ; BIND MF_ENC_15 SEL/DEV(SEL) B6 P7 ; BIND MF_ENC_16 SEL/DEV(SEL) B6 P8 ; BIND MF_2_ENC_1 SEL/DEV(SEL) B7 P1 ; BIND MF_2_ENC_2 SEL/DEV(SEL) B7 P2 ; BIND MF_2_ENC_3 SEL/DEV(SEL) B7 P3 ; BIND MF_2_ENC_4 SEL/DEV(SEL) B7 P4 ; BIND MF_2_ENC_5 SEL/DEV(SEL) B7 P5 ; BIND MF_2_ENC_6 TRUE, SEL/DEV(SEL) B7 P6 ; BIND MF_2_ENC_7 SEL/DEV(SEL) B7 P7 ; BIND MF_2_ENC_8 SEL/DEV(SEL) B7 P8 ; BIND MF_2_ENC_9 SEL/DEV(SEL) B8 P1 ; BIND MF_2_ENC_10 SEL/DEV(SEL) B8 P2 ; BIND MF_2_ENC_11 SEL/DEV(SEL) B8 P3 ; BIND MF_2_ENC_12 SEL/DEV(SEL) B8 P4 ; BIND MF_2_ENC_13 SEL/DEV(SEL) B8 P5 ; BIND MF_2_ENC_14 SEL/DEV(SEL) B8 P6 ; BIND MF_2_ENC_15 SEL/DEV(SEL) B8 P7 ; BIND MF_2_ENC_16 SEL/DEV(SEL) B8 P8

X-Control for switching between the two banks via the top two buttons of the first MIDI Fighter Twister

MF_BTN_1 = CC, 2, 0, 0, 127, $BANK1to4$
MF_BTN_2 = CC, 2, 1, 0, 127, $BANK5to8$

Cheers
D

sefable
Posts: 125
Joined: Thu Aug 29, 2019 8:19 pm

Re: Quickly switching MIDI Mappings

Post by sefable » Thu Oct 10, 2019 7:04 pm

This is using ClyphX right?

Is there anyway to switch banks using the keyboard using ClyphX? Pressing 1 on the keyboard for bank 1 and etc?

Midi fighter side buttons are not as comfortable to use as a simple keyboard key.

chapelier fou
Posts: 6020
Joined: Mon May 15, 2006 12:15 pm

Re: Quickly switching MIDI Mappings

Post by chapelier fou » Thu Oct 10, 2019 7:33 pm

You could make a “dummy” interface just to map your controller to 16 dials. Then make your patch route the dials to the correct “real” ones, with offsets set by your live.tab.
It looks quite easy to do.
MacBook Pro 13" Retina i7 2.8 GHz OS 10.13, L10.0.1, M4L.
MacStudio M1Max 32Go OS 12.3.1

S4racen
Posts: 5830
Joined: Fri Aug 24, 2007 4:08 pm
Location: Dunstable
Contact:

Re: Quickly switching MIDI Mappings

Post by S4racen » Fri Oct 11, 2019 6:23 am

sefable wrote:
Thu Oct 10, 2019 7:04 pm
This is using ClyphX right?

Is there anyway to switch banks using the keyboard using ClyphX? Pressing 1 on the keyboard for bank 1 and etc?

Midi fighter side buttons are not as comfortable to use as a simple keyboard key.
Yes it's using CLyphX Pro and the Bindings add on, I agree the side buttons are not the most comfortable option.

The simplest way would be to write the macro name into a clip and trigger that from the 1 key of the keyboard....

Cheers
D

sefable
Posts: 125
Joined: Thu Aug 29, 2019 8:19 pm

Re: Quickly switching MIDI Mappings

Post by sefable » Fri Oct 11, 2019 6:30 am

S4racen wrote:
Fri Oct 11, 2019 6:23 am

The simplest way would be to write the macro name into a clip and trigger that from the 1 key of the keyboard....

Cheers
D
Would it then still be possible to use the session view as usual? What's your suggested way of making sure it doesn't interfere with the session view? Maybe using a dummy track for that clip?

sefable
Posts: 125
Joined: Thu Aug 29, 2019 8:19 pm

Re: Quickly switching MIDI Mappings

Post by sefable » Fri Oct 11, 2019 6:31 am

chapelier fou wrote:
Thu Oct 10, 2019 7:33 pm
You could make a “dummy” interface
Would you elaborate how you would make such an interface?
chapelier fou wrote:
Thu Oct 10, 2019 7:33 pm
make your patch route the dials to the correct “real” ones
Would you elaborate how you would "route dials"?

sefable
Posts: 125
Joined: Thu Aug 29, 2019 8:19 pm

Re: Quickly switching MIDI Mappings

Post by sefable » Fri Oct 11, 2019 7:03 am

chapelier fou wrote:
Thu Oct 10, 2019 7:33 pm
You could make a “dummy” interface just to map your controller to 16 dials. Then make your patch route the dials to the correct “real” ones, with offsets set by your live.tab.
It looks quite easy to do.
I think I got it.

The idea would be to add 16 knobs in my device, that correspond to the 16 physical knobs.

These first 16 knobs, depending on the offset, would update (using a conditional max msp connection I guess) the right virtual knobs.

Updating the virtual knobs (and loading presets), depending on the offset, would update the first 16 "physical" knobs.

Is this the idea? Sounds quite awesome.

Except, I'm guessing, that these 16 knobs need to be visible so they can be mapped.

chapelier fou
Posts: 6020
Joined: Mon May 15, 2006 12:15 pm

Re: Quickly switching MIDI Mappings

Post by chapelier fou » Fri Oct 11, 2019 10:07 am

That’s the idea. I’m away from home and replying from my phone. But check the ‘thispatcher’ object and the ‘front’ message going to it. It will allow to hide the dummy knobs.
MacBook Pro 13" Retina i7 2.8 GHz OS 10.13, L10.0.1, M4L.
MacStudio M1Max 32Go OS 12.3.1

chapelier fou
Posts: 6020
Joined: Mon May 15, 2006 12:15 pm

Re: Quickly switching MIDI Mappings

Post by chapelier fou » Fri Oct 11, 2019 10:08 am

The other thing to consider is to send the dials value to update the dummy ones when you select them.
MacBook Pro 13" Retina i7 2.8 GHz OS 10.13, L10.0.1, M4L.
MacStudio M1Max 32Go OS 12.3.1

sefable
Posts: 125
Joined: Thu Aug 29, 2019 8:19 pm

Re: Quickly switching MIDI Mappings

Post by sefable » Fri Oct 11, 2019 12:10 pm

chapelier fou wrote:
Fri Oct 11, 2019 10:07 am
That’s the idea. I’m away from home and replying from my phone. But check the ‘thispatcher’ object and the ‘front’ message going to it. It will allow to hide the dummy knobs.
Thanks for the idea, I'll try it this weekend.

If the knobs are hidden, I wouldn't know how to map them in ableton since one need to click on it before mapping it with the hardware.

Did you have maybe an idea of a different way they could be mapped to the midi controller?

There's the UserConfiguration.txt but it's only possible to map 8 knobs.

chapelier fou
Posts: 6020
Joined: Mon May 15, 2006 12:15 pm

Re: Quickly switching MIDI Mappings

Post by chapelier fou » Fri Oct 11, 2019 12:13 pm

Thispatcher allows you to make a floating window.
MacBook Pro 13" Retina i7 2.8 GHz OS 10.13, L10.0.1, M4L.
MacStudio M1Max 32Go OS 12.3.1

Post Reply