spec: Add HELD-NOTES.md proposing tie-based note duration#21
Merged
Conversation
Captures architectural decision to replace track-level playbackMode (oneshot/gate) with per-step ties in ParameterLock. This enables: - Notes sustaining across multiple steps - Per-note duration control (vs track-wide) - Consistent model with pitch/volume parameter locks - Expanded genre coverage (ambient, soul, ballads) Includes research from Elektron, Novation, Logic Pro, Bitwig, and mobile sequencer implementations.
Documents how TE handles note duration across their product range: - OP-Z/OP-XY: Most sophisticated (track defaults + step ties + step components) - OP-1: Lacks per-step duration (Field added Hold sequencer to address) - EP-133: No gate modes (users explicitly request this feature) - Pocket Operators: Per-step length on melodic models, one-shot on drums Key findings that validate our approach: - OP-Z's "hold start + press end" gesture matches our proposal exactly - OP-Z's "Pulse Hold" step component is equivalent to our tie - TE's implicit rule: drums=oneshot, synths=envelope+ties - EP-133 user feedback proves gate/sustain control is expected Also adds: - Updated interaction design with OP-Z gesture as primary - Future enhancements section (step components, drone mode, glide)
Removes speculative future enhancements section (drone mode, step components, portamento) to keep spec focused on the tie proposal. Adds comprehensive "Interactions with Roadmap Features" section analyzing how held notes interacts with other planned features: Positive interactions: - MIDI Export: Ties enable correct note duration export - Pattern Chaining: Independent, compose naturally - Scale Lock: Orthogonal (pitch vs duration) - Keyboard Shortcuts: Natural extension (arrow keys for ties) - Undo/Redo: No special handling needed Complex interactions requiring decisions: - Step Probability: Tied steps should be exempt from probability - Ratcheting: Mutually exclusive with ties (opposite concepts) - Beat-Quantized Changes: Apply immediately, affect next loop - Euclidean: Generates triggers only, ties applied manually - Quick Fill: Document per-variation behavior for ties Neutral: Velocity (already addressed), Sample Recording, Track Groups
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Captures architectural decision to replace track-level playbackMode
(oneshot/gate) with per-step ties in ParameterLock. This enables:
Includes research from Elektron, Novation, Logic Pro, Bitwig, and
mobile sequencer implementations.