Cabbage Logo
Back to Cabbage Site

Daw automations that go from values other than 0 to 1 cannot receive a written value

I have noticed when using a semitone transpose knob that goes in the usual setting of -12 to +12 that the daw (Ableton, Cubase, Studio One) shows those correct values ​​from -12 to +12 in the automation lane (I have used an increment of 1 on the Cabbage knob).
In Reaper it is a different case because for some reason it always shows values ​​from 0 to 1 at the points, but in the cases of Cubase, Ableton and Studio One where the correct values ​​from +12 to -12 are shown it is very difficult to manually set the automation envelope to the desired value since decimal values ​​are displayed. It is also not possible to write the desired value in a point since when writing positive values ​​(for example +10) the point goes to the maximum positive (+12) and when writing negative values ​​(for example -10) the point goes to the maximum negative (-12). The same would happen with a frequency knob to give an example that only works with positive values. ​​If the knob goes from 0 to 20000 it can be adjusted manually (without numerical precision) but when you want to write an exact number at a point manually the point goes to the maximum value (20000). I noticed that when the value of the knob is 0 to 1 this not happen at all and exact values can be written in the points, but for some cases like frequency and semitones it would be better to not scale the values to 0 and 1.
I know there are many plugins that work by scaling the values ​​from 0 to 1, but nowadays many newer plugins allow the user drawing values in the automation lane that correspond to the values in the knob. And also allow the user to manually type that value ,and example could be Melda Power Synth. Taking the same semitones example it allows the user to write exact values in the semitone knob and also the automation is scaled to those values.
I think that allowing manual writing of values ​​to knobs that have a a different value range than 0 to 1 could be a good improvement for automations, especially for knobs that need to provide exact numerical information to the plugin such as semitones.

Hey @Alejo. If you have a simple example you can share I can run it through the DAWs to see?

You can do this if you use valueTextBox(1) for your sliders. Then click the value box and you can enter the value manually. :+1:

Hi Rory. yes I know that the number value could be picked for the value box what I think is a very nice thing. What I´ve noticed is that you can´t write values for the knob that don´t use 0 to 1 values directly from the daw automation lane using the pencil or tool that the Daw provides for writing the automation.
Here I attach a simple example with a -12 +12 semitone knob where that is happening. I know that some people would like to be able to write an exact value from the daw directly when it is needed because when making music it could be easier to quantize in grid values also taking into account that decimal values ​​appear and the pointer tends to go to those values.

semitones.csd (825 Bytes)

Thanks for the example, that really helps a lot. I’ll take a look at this tomorrow and get back to you :+1:

1 Like

In the example I’ve used floor to round the decimal value and keep the oscillator in tune according to the semitones. I think in an ideal situation the user should be able to write an integer value without needing to round it in Csound.

I just took a look at this now. I hadn’t noticed this limitation with Reaper before. I agree that it’s not ideal but from a quick search around the web it looks like Cabbage is not the only plugin to suffer from this. Tbh, I’m not sure there is much I can do on my end. I’ll ask around and see what devs have done to fix this.

I took a look at this with the debugger and it appears that reaper is simply not intercepting the correct values. The method called to notify reaper are all return full range values. This is why it works in the general sense. When I move the automation envelop, Reaper shows me the correct range on the track, albeit with an extra floating point. But the range is correct. When the ‘set sample point’ display pops up, those method continue to return the right value, but Reaper just doesn’t want to play ball. I’m using a slightly old version of the JUCE framework which might also be an issue, but I’m not really able to change that right now.

The same happens in other daws also, I tested in Cubase, Ableton, Studio One and Reaper so I assume it´s something general with different Daws. Yes It seems to be a common thing among some plugins maybe that´s why they use 0 to 1 for all the parameters, which are scaled to that range to avoid that problem. But I´ve seen that some modern commercial plugins developers were able to work around that limitation and they don’t always scale to 0 and 1 and still can enter values ​​manually. There must be some tricky way to handle that.

Sounds like there is. It could be that they are using a different plugin development framework, or the very latest version of JUCE. I really should upgrade, but for the time being I’m stuck with version 6. :frowning: