custom lfo resolution

hey, I stumbled upon something that puzzled me, because I had never noticed it before and I don’t know whether it is a bug or intended to behave like this.

It relates somehow to this thread : (where I thought, it was just a matter of start counting on 1 or 0.)

I attached an empty song to demonstrate,

goes like this:

  • create an lfo with lpc 8, custom curve, set to points and a resolution of 8. set a key on 0 and one on 4.

  • turn on the metronome and set bpm and lpb to lowest.

  • set a reset command in the first pattern line

  • turning on external editor for custom lfo will show that the metronome clicks right on the points. when the timepointer comes to the last point it will stall for 1/8 before returning to 0

  • now when I switch interpolation from points to linear, this doesn’t happen. it will jump from 7 to 0 immediately, messing up timing of the points in between.

Does it somehow have to be like that program wise?

I never noticed before, because I always used higher resolutions before, and all you have to do is setting reolution one point higher when switching to linear/curve but it is somehow awkward behaviour to me anyway…

Nice example for the behaviour I experienced when trying to tune to perfect sync. I’ve witnessed some diffuse extra out-of-sync issues, I’ll try playing around with your scenario a bit more to nail it down.

The behaviour is even logical - in point mode, each step can transmit a single value. Now if you had the “extra” step in the envelope, like it needed in my linear example you’ve linked, but in point mode, you’d have 2 values for the last/first step concurring at the same time. With interpolation the extra step makes sense, as you can get a smooth transition from the last to the first point when the envelope wraps around.

Should be documented to save people trying to get exact sync a lot of hassle. Downside is also, if you naively just convert a point lfo to line/curve it’ll have sync issues if you don’t adjust. Also for line/curve it’d make sense linking the last (extra) step to the first (as option maybe), to get jumpless envs without need to adjust those points to the same value individually.