In addition to the linked blocks concept above, this would complete the picture, in an easy-to-manage, learning-curve-flattening, “one-step-at-a-time” way.
Give blocks ‘offset’
If blocks’ starting time could be detached from the pattern it’s supposed to be “inside of”… then they could act more like they are “anchored to”/“parented to” the pattern, like in MS Word how images move up and down with paragraphs. It could be done with drag-n-drop in the Pattern Matrix, or a -/+ numeric spinner in the Pattern Editor inside each track header, or even a special ‘grippy’ in the Pattern Editor. (The offset could be defined in “beats” not “milliseconds” if changes in LPB/tempo are difficult to program around.)
Give blocks ‘LPB’ / ‘tempo’ multipliers
Perhaps, we could allow a tempo/LPB multiplier for these offset blocks. Then let’s say you 2x the LPB. In the Pattern Editor, that block would compress to 50% vertically. (How this N% height is rendered is up to the UX expert.) When you tab into this block in the Pattern Editor, it expanded to 100% vertically and everything else expands by the same percentage, hopefully with some brief animation between the “zoom levels”.
Give blocks a few more things, and you get “clips”
With these two additions in place, “clips” in their entirety become a series of evolutionary steps:
.
-
Blocks that span across a few tracks. We could call it block grouping. Select some blocks, hit Ctrl+G, they’re grouped. They link as one entity, drag-drop as one entity… play from an instrument slot as one entity (see further down). Further, grouping blocks downwards could merge columns of blocks into single, long blocks.
. - Blocks which are proper clones. Just add a context menu item, “Paste to all linked blocks”. From that point you have clone behaviour until you unlink later. It doesn’t really matter if this is implemented as many pointers to one actual block, or just the original ‘linked blocks’ functionality of mirroring edits until you unlink. The effect is identical.
. - Instruments whose ‘samples’ are blocks (or block groups). This is the biggest step of all: this is the first time there is pattern information which might not be attached to any pattern at all. Perhaps these “samples” list-items could have a special appearance in that part of the UI - rounded-corners outlines, perhaps.
A possible UI could be friggin’ cute: your block/block-group pattern data is rotated 90° CCW and stretched/spaced-out to fit the sample editor. Multiple tracks in a group look like stereo (or more) channels.
Allow basic edits: select, delete, insert, silence… etc. like for a sample. Double-click your “sample” to edit it in the pattern editor. Things like the play-button and pattern navigation are hijacked for this purpose until you “escape out” to a normal pattern using the Pattern Matrix/Arranger (or hit Esc twice quickly like a double-click?).
It should also be noted: DSP’s come along for the ride once you make an instrument from a block. The original, pattern-attached block can be erased or left-behind, but not converted into a single note C-4 because the DSP’s would effectively be applied twice, which is Not A Good Thing™.
Oh my god, it’s full of stars.