The block loop feature is a very nice way to identify interesting rhythmic variations in the pattern sequence. I’d like to suggest a few extensions which build on the idea of block looping as a compositional device:
1. Schedule-based block looping
Currently, one is able to MIDI-map the on/off state of a block loop (‘Loop Block [Toggle]’) and its position within the pattern (‘Move Loop Block Forwards/Backwards [Trigger]’). In play mode, however, changing the block position in forward direction behaves differently from moving the block position backwards. In the former case, the playback of the next fragment is postponed until the currently playing one is completed, whereas the block loop is switched instantly in the latter case. It would be nice to have a distinction here between instant forward/backward triggering on the one hand and scheduling block loops on the other.
2. MIDI-mappable fraction sizes
Individually MIDI-mappable fraction sizes (‘Loop Block 1/2 [Toggle]’, ‘Loop Block 1/3 [Toggle]’, etc.) for block loops would facilitate improvising on the pattern structure in play mode. One could map the different block sizes onto any key/pad of a given controller without using complementary tools.
3. Create pattern from block loop / Split pattern into X fractions
To integrate improvised block sequences into the global pattern structure, a function that creates a new pattern from an active block loop, e.g. via a right-click analogous to the ‘Create Phrase from Selection’ function, and/or splits a pattern into blocks of a desired fraction size would be useful. Ideally, such a function would also subdivide the respective automation envelopes.
4. Block loop automation
Automating the number of repetitions per block could be realised by a pattern command similar to the E60 … E6X parenthesis in FastTracker II. The main advantage of this solution is that arbitrary fraction sizes (with a minimum of 2 lines) could be scattered throughout a pattern. Pattern commands, however, could not be used to automate the forward/backward movement of blocks without ending in an infinite loop, I suppose. A way of dealing with block repetitions and movements simultaneously could be, for instance, a device along the lines of the Repeater which allows to define/automate the range of a given block element and its number of repetitions separately.