free-audio / clap

Audio Plugin API
https://cleveraudio.org/
MIT License
1.82k stars 103 forks source link

param-resolutions extension #428

Open Trinitou opened 3 weeks ago

Trinitou commented 3 weeks ago

see in-code documentation. If something is not specified enough, please ask/propose changes of course 👍

baconpaul commented 3 weeks ago

could these two be combined into a 'param-extended-info' extension which was also somehow extensible easily?

abique commented 3 weeks ago

could these two be combined into a 'param-extended-info' extension which was also somehow extensible easily?

I think it is cool that they have their own interface. In the undo ext we did split the interface to lower the requirements on implementing one or the other.

abique commented 3 weeks ago

Regarding the extension, in the semitone example, would the user wants to be able to "quantize" the steps?

So if he is at 0.23 he'd jump to 1.0 instead of 1.23? Would the host implicitly quantize or there would be a flag? Toward which value should we quantize the distance? Would it be the value origin?

Trinitou commented 3 weeks ago

Regarding the extension, in the semitone example, would the user wants to be able to "quantize" the steps?

So if he is at 0.23 he'd jump to 1.0 instead of 1.23? Would the host implicitly quantize or there would be a flag? Toward which value should we quantize the distance? Would it be the value origin?

This is a good question.

Concerning quantizing the distance (0.23 -> 1.23) vs. quantizing the absolute value, I think both can be the desired behaviour. E.g. let's use a coarse octave resolution as an example:

I'm against depending on param-origin here. But instead just depend on param so a resolution together with min_value and max_value define an absolute grid of the value range. If implementing both extensions, it would probably be good to place the origin_value exactly on one of the grid points. But more as a recommendation but not a hard requirement.

Defining the "absolute grid" also implies that at each grid point there potentially is a meaningful value (e.g. a whole semitone). Thus I think it is always good to snap to the next meaningful value.

But there could be a flag "prefer_relative_increments" to give the host a hint that it it can quantize the distance, not the absolute value for better user experience.

Makes sense?