helgoboss / helgobox

Helgobox: ReaLearn & Playtime
https://www.helgoboss.org/projects/helgobox
GNU General Public License v3.0
205 stars 20 forks source link

Switch off control for *all* ReaLearn instances while learning #232

Open vonglan opened 3 years ago

vonglan commented 3 years ago

Low priority. Might be due to my experiments with multiple instances. And I haven't found out in detail how to reproduce it with a "minimal setup". Anyway, wanted to let you know.

I wanted to create my third Main Mapping for yet another target. When I use "Learn Many", the Virtual Source knob is correctly detected. But ReaLearn creates more and more (identical) mapppings. Target is parameter 61 (see JSON below), which happens to be the target of that virtual parameter in the very first Main Mapping that I built (and which is loaded in a different instance, in an unselected track).

JSON with 2 of the many duplicate entries that are quickly created by "Learn many" { "id": "be3a31f2-1e96-4a35-9e01-224c6cc0f7ba", "name": "5", "source": { "category": "virtual", "isRegistered": false, "is14Bit": false, "oscArgIndex": 0, "controlElementIndex": 27 }, "mode": {}, "target": { "fxGUID": "focused", "paramIndex": 60 } }, { "id": "2f4eeb06-7790-40f3-8dc4-7939b8efe178", "name": "6", "source": { "category": "virtual", "isRegistered": false, "is14Bit": false, "oscArgIndex": 0, "controlElementIndex": 27 }, "mode": {}, "target": { "fxGUID": "focused", "paramIndex": 60 } },

Mapping JSON of the first Main Mappings (for a different VST), which erroneously seems to be used as template: { "id": "73e32204-67bb-4ea9-8e79-5c439dfde736", "name": "7", "source": { "category": "virtual", "type": 6, "channel": 0, "number": 45, "isRegistered": false, "is14Bit": true, "oscArgIndex": 0, "controlElementIndex": 27 }, "mode": {}, "target": { "fxGUID": "focused", "paramIndex": 60 } },

And JSON of the Mapping in the Controller Mapping { "id": "51f48d3c-35b7-4eba-a347-3e7c2eb08d24", "name": "Cutoff", "source": { "type": 6, "channel": 0, "number": 45, "isRegistered": false, "is14Bit": true, "oscArgIndex": 0 }, "mode": { "maxSourceValue": 0.010010376609900506 }, "target": { "category": "virtual", "controlElementIndex": 27 }, "feedbackIsEnabled": false },

helgoboss commented 3 years ago

This is because you moved the target by moving the control - and therefore ReaLearn was learning your target. In order to prevent this from happening, ReaLearn switches off control when being in "Learn mode" - but only within the current ReaLearn instance. I could improve this to disable control for all other instances as well.