Foreword: I realise other people have made similar requests, and I hope to somewhat consolidate all of these into a discussion that talks specifics rather than vague "what if?"'s. This is something that I suggested to pailes initially a few years ago and some considerable discussion has taken place on #milkytracker between me, pailes, raina and Deltafire.
I'll try to outline current behaviour and possible implementation of desired behaviour. I'll update this post as and when people offer corrections/amendments.
Currently: switching to another pattern during playback immediately jumps to the beginning of the next pattern. If you want to switch to a pattern which is two or three slots away from the current pattern in the POT (top-left), Milky will jump through each pattern as you go. Obviously this is fine for home composition and obviously this is unsuitable for live performance.
What isn't desired (just for clarity): switching pattern during playback jumps to the next instantly, picking up on the same line in the destination pattern as the current line in the original pattern.
What IS desired: switching pattern during playback merely queues the destination pattern, and Milky plays right to the end of the original pattern before playing from the queued destination pattern.
Precedent? The only tracker in which I've found this behaviour as default is AHX, and in that case I suspect it's due to some sort of limitation of the program. However, it makes AHX a great live tool as a result.
Implementation:
Possibilities include
- A toggle option in Config, which instructs Pat (play pattern) to follow this behaviour
- A new keyboard shortcut in addition to Pat and Play Sng which initiates a single-pattern looping playback which follows this behaviour.
- (Suggested by raina) A toggle option in Config which enables the following behaviour: navigating to a new pattern affects nothing (Follow mode is disabled), until ctrl+q is pressed. POT entry 9|04 (for instance) would be highlighted and flash between 9|04 and 0|04, which means it's marked as queue entry 0. Subsequent additions to the queue (with ctrl+q) would cause other POT entries to flash 1|0X, 2|0X, etc. and they would be played in order of entry, after which Milky would return to looping the most recent pattern. OR return to playing the song in its original order - this method, my favourite, would be able to operate with either Pat or Play Sng playmodes. Maybe a toggle option isn't even required, if the function is just controlled with a keyboard shortcut. Thoughts?
Caveats: obviously, since this function is intended for people who want to use Milky live, it will work best with modules that are specifically written, or modified, for live use. Needless to say, sustained notes would need to be able to continue (as in some other trackers) and that would possibly require quite a bit of planning on the part of the artist, to make sure he wasn't going to inadvertently switch to a pattern that would put noteoff commands right in the middle of his big sustained pads
Also, it makes sense to keep this out of the way of regular, non-live users as much as possible so as not to change the character of Milky. Live use of Milky is a very minority interest, but for those who
are interested, it has HUGE potential particularly alongside Milky's Jam features.
Please feel free to contribute! Would this work? Could you use it? Do you have further live suggestions of a similar nature? As a developer, pailes needs to know EXACTLY what is required, rather than a load of vague suggestions (such as the ones I've been making for years) and if we can make a watertight proposal, there's a much better chance of seeing it implemented in a way that suits everyone.
Cheers,
Bren