Idea is to make a new scheduler agent to control loop playback and to expand the scope to include audio loops. This may become a collection of agents, but the shopping list so far includes (difficulty in brackets):
The ability to start and stop a loop recording without relying on the drummer to keep time, but possibly having the drummer running as well. The metronome might still be used to toggle playback or individual loops may be toggled separately, but there is no longer a fixed length in bars for all loops.
The loop length is logically measured in seconds rather than bars. The start of recording can be set by either a talker on a key/footswitch, or instead armed with a talker and then the loop starts when the first data comes through from the source.
Once one recording has been started and stopped, this sets the length of all recordings that are layered on top of that loop. Multiple, separate, loops of differing lengths are possible.
Controls can be provided for arming/disarming individual loops, or instead provide a single 'overdub' control that when switched on determines whether new keyboard / audio data is recorded into the selected loop or not (other loops and the drummer may be running simultaneously).
This operates within the conventional eigenD looping setup whereby the metronome is running and the takes of known length in bars. This extension will give the ability to restart playback of an existing take from the start, a certain number of bars into the future. If the take is already playing, then it will be stopped and restarted. (Are there tricky issues to do with how eigenD crushes its data into MIDI, and ensuring that note-offs get sent?)
Same as above but applies to loops playing in the drummer, ie with a 1 bar offset, pressing a key in bar 3 of an 8 bar loop makes it restart in what would have been bar 4.
Have the ability to view loops on the keyboard as a timeline and to move them around. Pressing part of a loop and moving your finger over the keyboard will move it to a new location. Axes will have to be modifiable to allow one row to represent a variable number of bars?
Thinking about how a musician might populate the above timeline interface: We start by recording a single loop, of a particular length as usual. When this loop ends we add it to our timeline at the start. We give the musician the choice of whether to start playback at the beginning of the queue, or to append a new loop onto the timeline. The timeline allows you to move loops around, to mute/collapse them. This means you can set up verse/chorus structures that you can overdub onto, but that play in sequence rather than the existing scheduler which runs them all in parallel so they go out of phase if they are different lengths.