Evaluate WaveTable input at "1.0" with Linear (Ramp In) returns 0.996 instead of 1.0

Hi

If I put a “Evaluate WaveTable” node in a MetaSynth and set the input to 1.0, and use either a WaveTable Bank with 1 Wave Table with a curve of type “Linear (Ramp In)” or “Custom” with a linear segment going from (0,0) to (1,1), the resulting float is always 0.996 instead of 1.0. Is this a bug ? If it is not a bug, how I do I get it to output 1.0 at the end ?

In the end what actually want to implement is the equivalent of XLine in SuperCollider, which is able to go exponentially from a lower value to higher value or from a higher value to a lower value. The way I’m trying to implement this is to have one WaveTable Envelope with a WaveTable with “Linear (Ramp In)” connected to the Evaluate WaveTable node directly if the final value is larger than the initial value, or do 1 minus the output of the WaveTable Envelope and then connected to the Evaluate WaveTable node if the the final value is smaller than initial value, essentially driving the wavetable from the end to the start.

Thanks
Miguel Negrão

In the meantime I’ve managed to get what I needed by using WaveTable envelope with a Linear (Ramp In) wavetable and with mode set to “unit” (so it ends at 1.0), and then implemented the curves on my own (by copying from SuperCollider’s ExpWarp class):

Linear:

Exponential:

With this approach “start” can be larger or smaller than “end” and it works anyway (going up or down).

Still the behaviour of Evaluate WaveTable completely baffles me.