EDIT - Putting the new video here too.
After going back and reading through the various threads over the years and looking at the ideas and suggestions, I think I’ve come up with something that should address all concerns.
The first thing to bear in mind is that this needs to work all the way down to looping individual waveform samples (see above). It would be rather complicated to send time-values to a loop-point with this level of precision, so instead it is moved forwards or backwards in time relative to its original position. The second thing to note is that you may also want to:
- Move both loop-points together
- Move them at different speeds
- Move them in different directions
- All of the above
Taking this into account, I believe the following approach would work best:
Selecting from the Snap menu changes the time-value that the loop-points will move to: Samples, Seconds, Whole (%), Markers, Beats, 8th, 16th, 32nd, 64th, 128th. The Range parameter alters the numerical range of the sliders and will be particularly useful for hardware mod-wheels. With the Link option enabled, the Start and End parameters will move around together, requiring the use of only one slider.
The Loop type is inherited from the Sample Properties, but can also be changed here. The icon just after this toggles whether loop-points can cross over each other, swapping their Start and End statuses. The second icon toggles Link-mode behaviour in the following way: if a loop-point reaches the start or end of the sample, the other loop-point will continue moving towards it, decreasing the loop size (loops will, of course, remain at least one sample apart at all times).