live.dial exponents are confusing

    Oct 22 2021 | 9:28 pm
    I want a slider to output the values of 0.25, 0.5, 1, 2, 4, 8 so that I can use it to tie modulation to BPM. Is this possible?

    • Oct 23 2021 | 3:33 am
      Yes. One of the ways is to use a slider of (in your example) 6 steps, then to create a message with your 6 values and use zl.nth.
    • Oct 25 2021 | 11:08 pm
      I think your desired output values are powers of 2 (2^n), but the live.dial exponential scale is doing n^x. (Where n is dial position value.) You can output integer range -3 to 3 from your live.dial to an [expr pow(2, $f1)] to produce mathematically the values you want.
      When I do these I usually have some other remapping, because the integer range -3…3 is IMO less intuitive than, say, 1/8 1/4 1/2 1 2 4 8. So I use an enum display type and just offset the output index in the expr.
    • Oct 26 2021 | 8:34 am
      In the inspector, set the live.dial Type to "enum", and "Range / Enum" to be "0.25 0.5 1 2 4 8" (without the quotes). The live.dial outputs the index of the selected value, so in this case, 0 to 5.
      Then, use an expr just to map the index to the values you want (which is 0.25 * 2^n).
      As only the index of the list of values is used to calculate the final value, you could use other values - even text - in the enum. Doing so could be more meaningful to the user. So, if you wanted to show note subdivisions, maybe something like this;