JoepVanlier / Hackey-Trackey

A LUA tracker plugin for REAPER 5.x and up. Designed to mimick the pattern editor in Jeskola Buzz.
MIT License
130 stars 10 forks source link

automation should cap at hex 80 or 7F #100

Open offten opened 1 year ago

offten commented 1 year ago

Since we only get 127 values for automation, it would make more sense if it just capped at 80 like some buzz machines. Entering FF for example should just gives you an 80 or 7F. That way every value would have meaning rather then just the even values. This would also be useful for situations where we need every value to trigger something, as it is now, invalid numbers do not send so you end up having to "quantize" your numbers to even values.

JoepVanlier commented 1 year ago

That's a good point. Thanks for letting me know about that. I never realized the REAPER internal automation was also quantized to 127 values. I thought that was only the case for CC values.

I will put it on my to-do list for things to offer. I'll likely make it a config flag, to not mess with the workflow of people who are now used to this.

JoepVanlier commented 1 year ago

I'm just commenting to mention that I have not forgotten about this issue. I started implementing this workaround, but it turned out to be far more hairy than I initially anticipated.

For most automation parameters, the range of values stored is a normalized one from 0 to 1, but this is not always the case. Turns out that at least for some JSFX, the maximum can be an arbitrary value. It's also not always 128 values steps, it seems to depend entirely on the plugin. For instance, NI's massive seems to have 100 cutoff increments.

Unfortunately, these observations mean that I have to rework how automation works pretty considerably, which will take some time since I have to find a solid block of time to work on it.

offten commented 1 year ago

Interesting and thanks! I was testing it with Reaktor which can usually have an arbitrary value as well, at least with Buzz I believe it can represent a 16 bit integer. Maybe only JSFX stuff can have finer values and "regular" VST's cannot? That strikes me as odd... I'll do some more testing to see if I can get Reaper to send smaller increments to Reaktor.

It'd be ideal to have the level of control over automation in Reaper that we have in Buzz with the great Polac adapters. With these we're essentially able to have fine-tune and course-tune control with the same parameter, which allows for some seriously maximized screen real-estate. Even if we can some day have unquantized VST values in the 0 - FF range in Hackey I'd be pretty happy with it as we're already able to add any number of FX columns per-note which is something we can't do in Buzz.