Yes all is good. The problem has already been discussed multiple times on here but the most concise explanation is @ggmanestraki’s:
According to this, your last returned value for feedback, will not be 22000. Am i right with this?
My thinking is that if Steinberg do offer the option of bi-directional support or resolution scaling, the mapping you create will still work. I only use BOME for the incoming translation, so it’s just a case of changing the MIDI port on the script back to the native port, and making the changes when available.
Trouble is if you want to share your creations, the overhead of needing a third party utility is frustrating.
I’m super happy with a script that I have running on my komplete kontrol, it’s integrated with the mixer, sends, plugins, instruments, inserts - all with button and screen feedback. Yet, there’s only a limited number of people I could share it with.
OH my god, mate… Listen, these are not limited to 127 steps - you need to get that out of your head lol.
The final value will always be 22000hz, and the lowest will be 10hz. Because the MR Value of 1=22000hz and 0=10hz.
These are relative controls I’m sending, i.e. increment and decrement - i could set the resolution to 1/1000 and it would take 1000 clicks to go from 10hz to 22000hz, if you want me to do a screenshare with you I can!
It’s not even that hard to understand is it! ? I don’t get why there’s any confusion on this.
For reference it gets to 22,000hz on the 993th turn - Steinberg obviously put some rounding in there at the end, i’ve noticed with volume it’s very kind to snap at 0.00 too - which is helpful :
Dummy controls are our friend!
For each custom variable, create a dummy control bound to the very same hostValue you did for the custom var. A dummy in this case means that you don’t really bind this control to a midi message. You just let it gain its value upon the hostValue’s change Doing it all the time in my scripts.
Because i am confused, why this was not used anytime before (i.e. MCU protocol) and why @Martin.Jirsak told me all the time, that this is not possible to do. Really, if that would be so simple, then i see no reason why we cant set the steps with the mapping editor. If i change the value 127 to 1024, nothing is happening. There is totally no reason, why this is not working. It would be kind of a silly error, to not allow this.
Welcome to our reality, my friend! Exactly why this thread exists. And as extensive as Martin’s knowledge is, I’m sure he’ll be the first to admit that he’s still learning, we all are.
I think even Jochen is relatively new to Steinberg and taking on the MIDI Remote development… So it’s just going to take time I’m afraid.
As long as the line of communication continues and we see progression, that’s all you can ask for really.
This is kind of a relief to me. Because then i was right to begin with, but abondened everything because i believed a person and their theories, which where obviously wrong by reading all the answers here.
I use Bome too, but i used it to reverse engineer the MCU protocol. I managed to have a acc/decelerator button, but not a finer range/resolution, but this was long before the midi-remote.
Now add a button to your code, where i can move in a 0-127 range as long as it is pressed and on release, move in 0-1024 steps and i am very happy.
If all of this is really working, then what is needed to do the following:
Lets say we have that Cutoff filter and only the first 1/3 of the whole range is interesting, because the most action is happening there. Can we just use this first 1/3 of the range, as the whole range and apply a finer stepping then 0-127 to that newly created range? That would be the candle on the cake.
I’ve not tried emulating shift style controls yet, actually. But it should be easy as you’d just have a global variable that defines the shift state and that in turn determines the scaling to be used. Or you could probably use the subpage functions in the API.
Not sure what the recommended route to that would be as it’s a bridge i’ve needed to cross yet.
I don’t have any momentary on my KK controller and it’s all I’ve got besides me at the moment too. A toggle button would be easy though, as you can just swap the mode based on a trigger.
Yeah you can do whatever you want, In my code I filter out and replace certain words so that they fit more elegantly on the display and scale controls based on the plugin name… Crude… But it works!
You’re basically just manipulating that 0-1 float val, and as the API provides you with the new value AND difference from previous you can do a lot with that.
I will take any kind of button, toggle, shift etc. , but preferable a shift button, as i have a button with such naming and i dont need any feedback, unlike a toggle button where i would like to have one…
I guess i will need a lot of time, to only adapt your code to the script i have. I am hopeless here, since @Martin.Jirsak refuse to respond to me. It´s his script and i don´t think he wants to continue this project anymore, which is really, really strange. We did get so far, in fact everything i could dream of and what could be possible at September last year (dont know which version was actual there).
And there is nothing much left, what he could do else, except adding anything what is new since September last year. Real sadness here .
This sounds nice and i will try my best.
I’ll throw you a PM
@mlib Can you help me modify the midiremote script for the Arturia MiniLab MkII? I would like to be able to use the endless rotary controls with higher resolution.
Sure. The idea is to bind the physical encoders to custom variables rather than directly to a Cubase function. Then bind the custom variable to the function.
Whenever the encoder sends a value to MIDI Remote, determine if it is an increase or decrease and manipulate the Process Value accordingly. It’s a bit convoluted, but it mostly works. If your controller has any feedback (like a display, LED ring or such) you would need to convert the process value and send that back to the controller.
Let us know how it goes!
Thank you very much for the clarification.
What confused me is Cubase’s management of the JSON file for customizations.
@mlib
Finding this thread fills me with mixed feelings. I just implemented a Midi Controller to my workflow with Cubase. It feels nice, but I would love to be able to adjust parameters with the encoders more finely. I assume what this thread is about?
Correct me if I am wrong, but are you guys saying that If I want this to happen, it is only viable via 3rd party software or coding?
For someone who has 0 experience with coding, is it worth attempting to learn?
/Vince
I had JavaScript experience since before Cubase 12, so for me it felt more as a fun challenge to write my own MIDI Remote script that would allow me to tailor my controllers to a much larger extent than what the mapping assistant (or the legacy Generic Remote, for that matter) could offer.
It’s a real shame that the mapping assistant does not allow for rotary encoders to have a scale factor. I probably wouldn’t have gone through the trouble of writing scripts if it did.
Is it worth learning computer programming for the sole purpose of writing a MIDI Remote script in Cubase? Probably not. But then again, I don’t know you. Perhaps you’ll find programming to be the most fun thing ever, which in case—it’s totally worth it!
I would love to control the values more finely with the encoders. However your words kind of confirms that if I would attempt to learn coding just to get that, id be investing a loooot of time to learn, which is probably not worth it, just as you said.
To import already existing scripts would be a different story I’d assume - that I could do right? However if I’ve understood things correctly, that would require someone who has the same unit as me, and if that is the case, that is not something id ever expect someone just do out of the blue, if not the company of the product.
About that, are you aware of any companies that has been doing scripts that allow finer control with the encoders? Or is this a feature that no one really cares about that they do not bother doing?
@u-man
I see you mention Bome Midi Translator pro here as a workaround. I have 0 experience with coding, but perhaps this is much simpler? And does it work well?
Thanks in advance,
Vince
Steinberg should really have scaling options in to the mapping assistant from day one, but as we don’t have that, and if your hardware doesn’t offer any options for finer control then yes the API is the most reliable way to go (imo).
Just to check, are you using a controller which is sending relative or absolute values at the moment?
The main issue with fine control is that all (VST) controls operate across a 0-1 float scale, and most MIDI controllers are operating across 1-127. Meaning that any control with more than 127 positions will not be fine enough to get to every one.
However, using relative mode you can ensure that each turn clockwise or anticlockwise ticks slowly through the 0-1 range.
But there’s also complications in that, which is when you have some parameters such as EQ types which only step through 4-5 options, and then other controls like hires filters that has thousands. They’re drastically different scales to be useable.
This is why the best approach is to assign the scaling to the mapping page, rather than the controller as a whole. Or simply have a button that when held gives you finer relative control.
It’s a real shame this isn’t within the assistant, as it’s not fun to setup via the API because there’s no built in function for it - you’re basically having to set up triggers which manipulate the data and it makes scripts far more complex for those with less programming knowledge.
It’d be nice to hear from SB on whether this will ever be part of the mapping assistant really. If it isn’t, it’s possible the community could get round it via a shared generic script that houses a lot of standard functionality like this and is as optimal as possible. It could be set to read all the hardware parameters it needs from a second script file which is what the end user adjusts to match their hardware.
That would be a nice in between for people who don’t want to dive into all this code, but have a decent level of control.
@skijumptoes
I agree fully with you here. I did some more research on the API and there is no way I can do this without countless of hours learning and that is something I can not spend at this time.
Within the Midi Remote, the 14 bit resolution option, what is the purpose of this if not being able to control values more finely?