this could result in endFrameN < beginFrameN this is currently guarded against with the following caveat: 1. beginFrameN is fixed 2. triggers are ignored unless currentFrameN >= beginFrameN + (SampleRate \* MINIMUM_LOOP_DURATION) TODO: when base loop (endFrameN <= beginFrameN) copy beginFrameN upto RolloverFrameN then 0 upto endFrameN