MXXX: Remapping MP parameters to fit the scale of what they actually do
-
- KVRist
- 452 posts since 21 Jul, 2018
I know I've done this a couple times years ago, but I remember it being a real pain that involved manually creating a custom translation map with dozens of predefined points on it. I'm hoping I've forgotten some other detail that made that more difficult whereas this case might be simpler.
I have quite a few MP's that when I assign them to create ez controls, they just automatically map to percents rather than the actual units of where they occur, and switching the value mode doesn't change this.
For example, I have a waveshaper in "squared" mode, so it's using that interpolation of values for x and Y between a min value of "silence" and a max value of "0dB". The MP values for x and y values of points, however always show on a percentage scale from 0 to 100%.
Is thee some automatic way to map the percentage values to the squared interpolation of the dB scale shown in the window so that values I enter manually via the MP match the hover values shown for those points in the waveshaper?
I have quite a few MP's that when I assign them to create ez controls, they just automatically map to percents rather than the actual units of where they occur, and switching the value mode doesn't change this.
For example, I have a waveshaper in "squared" mode, so it's using that interpolation of values for x and Y between a min value of "silence" and a max value of "0dB". The MP values for x and y values of points, however always show on a percentage scale from 0 to 100%.
Is thee some automatic way to map the percentage values to the squared interpolation of the dB scale shown in the window so that values I enter manually via the MP match the hover values shown for those points in the waveshaper?
-
- KVRAF
- 10376 posts since 2 Sep, 2003 from Surrey, UK
Does this help?
Semi-automatic: Import a suitable graph curve, in CSV format, into the MultiParameter's Transformation Shape.
And set the MP Value Mode to "by First Parameter"
Semi-automatic: Import a suitable graph curve, in CSV format, into the MultiParameter's Transformation Shape.
And set the MP Value Mode to "by First Parameter"
-
- KVRist
- Topic Starter
- 452 posts since 21 Jul, 2018
I suppose that would be somewhat faster if I didn't spend time wrestling with syntax or other details. AFAIK, it really only works properly at those set points, though, since it won't interpolate correctly between, them since one is scale is linear and the other isn't, right? Not a huge deal in this particular case since I pretty much only want it at fixed whole dB increments.DarkStar wrote: Tue May 18, 2021 1:37 pm Does this help?
Semi-automatic: Import a suitable graph curve, in CSV format, into the MultiParameter's Transformation Shape.
And set the MP Value Mode to "by First Parameter"
If I remember correctly, these sorts of issues always seem to be the same few usual suspects like needing to go from linear to log or whatever. I would guess at this point that someone must have a library of translation tables. For instance, I also need to do the same thing for the freeformphase module to translate between percents and frequency.
If creating a csv is my best option, then what exactly would that csv look like? Just a list of separate pairs of values separated by commas? I get the general concept, but not exactly what that syntax would look like.
Could you please give an example for say just two points so I could extrapolate from there? Also, how would min value of silence be notated?
-
- KVRAF
- 10376 posts since 2 Sep, 2003 from Surrey, UK
You can go into the Transformation Shape graph wind, draw a few points, then right-click and click [Export CSV] to save the points to a CSV file. The format is:
Note that the separator is a semi-colon, not a comma (for international reasons, I believe).
Somebody may have done a useful bunch of them, but I haven't
I can imaging creating complex curves in MS Excel first.
Code: Select all
0.000000;0.000000
0.603825;0.753247
1.000000;0.797403
Somebody may have done a useful bunch of them, but I haven't
-
- KVRist
- Topic Starter
- 452 posts since 21 Jul, 2018
OK, thx. I see in general how that replaces the manual creation of entering points on the graph, so probably saves time, but I'm missing how the unit translation works. In the example of moving points on the waveshaper that defaults to percent x/y values, what I need to see when I enter a value is a dB value from silence to 0dB. Does it always just stay in it's percents mode, and I simply replace the numbers, (so when I enter -12, it just remaps that to 50 since -12db is halfway across the screen) or is there something else I'm doing that tells it the units have changed? If I am just leaving it in percents, is there anything I should do about the fact that I will only ever be entering negative numbers?DarkStar wrote: Wed May 19, 2021 1:09 pm You can go into the Transformation Shape graph wind, draw a few points, then right-click and click [Export CSV] to save the points to a CSV file. The format is:
Note that the separator is a semi-colon, not a comma (for international reasons, I believe).Code: Select all
0.000000;0.000000 0.603825;0.753247 1.000000;0.797403
Somebody may have done a useful bunch of them, but I haven'tI can imaging creating complex curves in MS Excel first.
-
- KVRAF
- 10376 posts since 2 Sep, 2003 from Surrey, UK
The scales on the Transformation Shape (TS) graph are normalised to the range 0...1. If the actual range is, say, -24 to +24, then
-24 maps to 0, -12 to 0.25, 0 to 0.50, +12 to 0.75 and +24 to 1.
If the actual range were -24 to 0, then -24 maps to 0, -18 to 0.25, -12 to 0.50, -6 to 0.75 and 0 to 1.
I do not know what "the squared interpolation of the dB scale" means; could you clarify this? Maybe with some examples numbers? Or an equation? My gut feeling is that you need some sort of logarithmic transformation.
-24 maps to 0, -12 to 0.25, 0 to 0.50, +12 to 0.75 and +24 to 1.
If the actual range were -24 to 0, then -24 maps to 0, -18 to 0.25, -12 to 0.50, -6 to 0.75 and 0 to 1.
I do not know what "the squared interpolation of the dB scale" means; could you clarify this? Maybe with some examples numbers? Or an equation? My gut feeling is that you need some sort of logarithmic transformation.
-
- KVRAF
- 10376 posts since 2 Sep, 2003 from Surrey, UK
Hmm, for some reason, I cannot get the TS curve to have any affect at the moment :Stumped:
-
- KVRist
- Topic Starter
- 452 posts since 21 Jul, 2018
mWaveShaper always LOOKS the same, but gives mode choices of "linear", "squared" , "cubic", and "logarithmic". I only used squared since I've found that's the only one where the dB values work as expected so, for instance, if I set it to chop off everything above -12dB, then measure the output, it will be -12dB. In the other modes, this is not the case. AFAIK, it's just a predictable dB scale that works as expected. I think the "squared" maybe refers to the relationship of input vs output. I'm not sure. I find it confusing since the markings on the x and y axes don't change. It can probably just be disregarded for this conversation as they are basically dBFS scales that range from "silence" to 0dB. The squared, I think just makes it work the same predictable way on both axes so in=out on a slope of 1/1. Something like that.DarkStar wrote: Wed May 19, 2021 5:33 pm
I do not know what "the squared interpolation of the dB scale" means; could you clarify this? Maybe with some examples numbers? Or an equation? My gut feeling is that you need some sort of logarithmic transformation.
-
- KVRAF
- 10376 posts since 2 Sep, 2003 from Surrey, UK
Sorry, I misunderstood. I thought you were asking about Multiparameters. I have never used MWaveShaper.
-
- KVRist
- Topic Starter
- 452 posts since 21 Jul, 2018
You were correct. I'm trying to drive a MultiParameter in MXXX.DarkStar wrote: Wed May 19, 2021 9:21 pm Sorry, I misunderstood. I thought you were asking about Multiparameters. I have never used MWaveShaper.
This particular MultParameter is controlling a point in the grid on the waveshaper module, so I guess I should have said waveshaper module instead of mWaveshaper.
