Ableton-style grid launcher thoughts and prototype
As I know an Ableton-style grid launcher is planned in future releases so I couldn't resist to brainstorm about such an interesting design challenge :)
I understand that by this time there should already be a clear idea of implementation, maybe even partially implemented. But I hope my thoughts can still be useful, save a few brain cycles or inspire @giku in some way.
Some of the ideas may be inspired by my extensive experience with Ableton Push, Synthstrom Deluge and Octatrack.
So before we approach any design task we should decompose what already exists:
- A single track with a sequencer is basically the smallest entity in this case and may act as a clip in the future.
- Current 16 «pads» are virtually a single-dimension grid already with a bunch of limitations.
- Current patterns selector is what allows the user to progress in the track and and can be considered a precursor of grid rows.
Here are the limitations that user has with current setup as opposed to a a future grid view:
- User can only launch the "full row" when transport is activated, meaning that all pads/clips follow the same sequencer and thus can't act as clips.
- User can't launch different sequences from different patterns, being forced by UI to switch the whole pattern if he wants to progress in the track.
- Current approach with sequencer length being shortened only using "Jump" step component may not be flexible enough for grid view. All sequencers may clearly be of different length.
- Currently in every pattern user has the same module setup, so if he wants to have different samples triggered on every grid row, he will have to search for workarounds like using Sampler zones and triggering different samples using notes on each clip's sequencer.
- There's already one grid view (full screen pattern editor) that may confuse the user and facilitate an error prone condition, when user doesn't know what grid view he's in.
- Grid adds a dimension of complexity comparing to current state of the app so it may steepen the learning curve.
- Pads light up to show they are triggered now. There is no indication of playback progress on the pad as pressing it sends the note, not launches the sequence.
Based on the above my thoughts on the implementation are the following:
- Each track within a pattern should be able to launch separately from main sequencer (similar to disconnected sequencers on OT). This may require introducing a LAUNCH mode as an addition to TRIG mode.
- Each "disconnected" track/sequencer has to have launch options such as launch/stop quantization to main sequencer, number of repeats, steps per beat and beats in pattern similar to patters settings currently. Defaults for track would follow the pattern settings, but can be adjusted.
- Only one clip of the track can play at a time.
- User should be able to launch the full row of clips as easy as he launches the patterns now. They are technically the same entity.
- User should be able to have different track settings saved for every pattern. This resembles the most esoteric OT functionality called "parts" but can be done is a simpler, more straightforward way.
- There should be clear visual difference between fullscreen pattern editor and clip grid. These modes should be mutually exclusive.
- The grid view should either be a separate mode to keep current usage workflows valid or an organic extension of pads view.
- We should keep in mind that grid view may be targeted at live performance, rather than composition, so design elements should be finger-friendly.