Closed michaelsjackson closed 3 years ago
Strangely with some parameters 00..FF works nice. Only with js FX's which use sliders, this does not work as intended.
You can test e.g. with JS Volume Adjustment, any of the two parameters
Yes, this behavior is normal. For most parameters FF is max and will remain max. The only reason note velocity goes to 7F is because the actual storage where MIDI note velocity is stored doesn't have sufficient precision for 256 steps.
The problem with volume in those cases comes from that the parameter ranges as exposed by some of the effects varies. For VSTs they always seem to be from 0 to 1 for the ones I've tried, but for JSFX this doesn't seem to be the case. Minimum and maximum values could be polled. I can add this as an option. I don't really think that'll ever really be that nice, since 0 dB would likely end on a weird value anyhow.
The latter is a good idea! However, it would require pretty extensive changes to how HT operates (since this column would have to be coupled with a specific envelope point) with the risk of introducing bugs. I will consider putting this under a CTRL + + option when I have a chunk of time in which I can do a bit more extensive coding.
If you define max to 0dB and not 6dB for example, then you never have strange values. This is how I was using these js FX, for doing relative volume changes, e.g. for side chaining, without wasting the main volume knob, that I can still use to adjust the overall loudness. So yes, I am using a modified version where max is 0dB (always, this is a must), min depends, usually something like -40dB is enough, and we get: -40..0 dB, usable for sidechaining.
The problem is that this is not how the values are exposed. All I can poll is a max and min value, and I can not check what this max and min value represents. I do not want to build an entire list of FX-specific mappings. I would suggest using a JSFX/VST that has its sensible range mapped from 0 to 1.
I can add that it maps to min/max though, in case they are different from 0 and 1.
Ok, anyway, I just wanted to comment here, so we know there are certain cases where columns behave strangely. Yes, your both suggestions would be perfect solutions: (a) changing the jsfx, so it uses 0..1 (b) changing tracker, so it uses min..max (whatever they are)
Yeah, it's a valid concern that's bugged me before too. I'll think about it when I have some time :D
Unfortunately, this is a limitation of the MIDI format that we'll have to live with.
Is this behaviour normal? Or would it make more sense mapping 00..FF to min..max of that envelope?
Interesting would be following two column method. column A: 00..FF mapped to min..max column B: shape for step, using some shape as default
Thus we could cover entire min..max range, plus in the second column we could define the transition form or the shape. Best of both worlds, using two tracker columns.