In additon to my previus post about toggle option for mapped pages (to have visual representation of the selected page on hardware) Mapping page action, it is good to have an option to assign a switch or an encoder to an empty command (that do nothing). In this case, the lighted elements of the hardware, will not give false clue for the description that is written bellow the element and will stay off. Even better, the mapping pages should be auto-created with these “empty commands”.
e.g. with no “empty command option”:
Lets say I have assigned 2 buttons -on top row- out of 2 rows of 8 buttons, for page navigation purpose.
In page 1, the bottom row switches are for “Send On” and several functions of selected track in page 2. When I am on page 1 and activate any of these sends and then switch to page 2, the buttons will remain activated if I have no command assigned on these and this is confusing.
I know. I can’t find a way to make that happen, and even with a script, if you were to add a page after loading the script it still has the same issue. This is a good feature request, but it is hard to know how the hardware is going to react. If Cubase sent a CC value of 0 or a Note value of 0, for elements that have no mapping on a page, that might work. But I don’t see a way to do this.
Mapping them all to a key command is probably the best way as it stands.
@oqion Of course, I could assign any of the commands that send no feedback, but then I realise that I could accidentally touch one of these and be in trouble without knowing. The most “painless” command I found is Peak.
Nevertheless there must be a proper solution.
… or maybe @doriosypos might just want you use your script…
I was thinking to strip out all of the mappings and make them default ones like I did there.
I just added a controller (i.e. set the callback), but never created a mapping. This makes the User Programmable knobs still be able to be mapped, but also changes their colour and still lights bright on pickup.
I actually am using a whole page like this in my personal setup. You can then duplicate the page in the script, but assign the binding in the GUI.
I meant I programmed BCF2000 to send nrpn and have smoothers values for e.g.: volume or some FQC functions. I tend to use same mapping per channel for controllers and faders but with different midi messages for eachone. The first as nrpn for fine adjustment and the second as normal cc for quick transition to desirable value.
I just posted in that linked thread, The BCF has motorized faders, and I’m not sure anyone has coded for motorized faders yet. I was just getting started on an idea originally MarcoE had suggested a month or so ago to use the display value. There were issues with that at the time where the display value wasn’t being updated in real time.
It was my impression that the motorized faders were not functional with any MR.
What is your experience?
Well, I get normal feedback using surface midi editor. Of course BCF2000’s motors are quite loud, that is why I turn off all faders -except “volume” fader- and use them in scale mode. I also tested faders as Send and it was ok.
I am not sure if this is the same situation: Sometimes I had an update-values problem. What I did was to create a simple macro to move selected track to next and then to previus. It was like clicking with a mouse. I called this “reset” and used it whenever I needed to.
He shared his JS for the BCR, but not for the BCF. If we could get that then we could work from there, or maybe he could if he wanted to, which it sort of seems like he does, since he wrote the script without owning the device.
Maybe we could edit his script, or he would be into doing it with you or something. Or maybe he could just point us at the Programmers Manual he used, because I can’t find anything on the device itself. Then again, maybe you don’t need that manual if you are never trying to tell the device to do something it isn’t already going to do. Most devices you have to tell them specifically when to change their state for them to do so. If that isn’t the case here, then the script would be a lot easier to write.