kockie69 / SquinkyVCV-main

GNU General Public License v3.0
22 stars 12 forks source link

Form Solo and Mute buttons have inconsistent interaction with MIDI mapping tools #46

Open kockie69 opened 2 years ago

kockie69 commented 2 years ago

One reason I like the Squinky Labs Form mixer is that it happens to match the channel control layout of my Novation LaunchControl XL very nicely, and I can map it with MIDI-CAT or MIDI-MAP -- mostly.

Manual Mapping works for Mute but not Solo: (click the slot on MIDI-CAT, click the button on Form, click the physical button on the XL), MIDI-CAT recognizes the Mute button as mappable (puts a yellow square on the button), but not the Solo button.

"Assisted Mapping" works for both Mute and Solo: Using the Map Module (left) or Map Module (select) context menus on MIDI-CAT, which presumably involves MIDI-CAT querying the Squinky Labs mixer about its interface elements, the Mute buttons get the yellow square, but the Solo buttons do not. However, like the Mute buttons, the Solo buttons get slots assigned in MIDI-CAT, so they can actually be mapped in this case.

Unfortunately, I can't seem to get "assisted mapping" to apply to both ExFor and Form simultaneously -- but I'm a novice at this.

Interestingly, there are other "invisible" parameters, for Pre-Faders, MSX0-3 and VCTM that can apparently be mapped as well, though I'm not sure what the latter two do. The assisted mapping method used by MIDI-CAT seems to be picking up the Solo buttons this same way.

The Solo buttons are perhaps problematic for MIDI mapping, because in their default mode, they are mutually exclusive "radio" buttons, but I think that could still work. The XL doesn't reflect the current toggled state with its LED, anyway.

The buttons on the Launch Control, by default, are midi "notes", but MIDI-CAT, has an option to treat them as toggles.

The VCV Fundamentals MIDI-MAP module also could not "see" the Solo buttons on the Squinky Labs mixers.

I'm on Windows 10, Rack v1.1.6 Squinky Labs v1.0.22, MIDI-CAT v1.10.0.

squinkylabs commented 2 years ago

Those mystery invisible paramters are for doing the delicate song and dance that makes the mutes automatable to the extent that they are. That stuff was a huge pain.


            ret = {0, 1, 0, "MSX0"};  // not user visible
            break;
        case Mix4<TBase>::MUTE1_STATE_PARAM:
            ret = {0, 1, 0, "MSX1"};
            break;
        case Mix4<TBase>::MUTE2_STATE_PARAM:
            ret = {0, 1, 0, "MSX2"};
            break;
        case Mix4<TBase>::MUTE3_STATE_PARAM:
            ret = {0, 1, 0, "MSX3"};
            break;
        case Mix4<TBase>::CV_MUTE_TOGGLE:
            ret = {0, 1, 0, "VCTM"};```