After using it, I discovered some inconsistency and figured out updates in the sequencer syntax, without breaking the simplicity of the interpreter and the unfold internal sequence (an array of integers).
basics
So a new basic syntax blueprint can be as follow:
- Basic sequence:
1, 2 ,3
- Random preset:
1, r, 3
- Ranges:
1-5 ⇒ [1,2,3,4,5]
- Repetition:
3x2 ⇒ [3,3]
- Mutation:
9m
- Not change:
1, , ,4 ⇒ [1,1,1,4]
- Skips:
1,2s5,3 the chances to skip the second preset are 5/10
Note on implementation: if the system re-process the sequencer input each replay loop, it will avoid modifying the unfold sequence structure, and will only require a couple of extra global playback counters
looping
New commands for loop control:
- Ping pong loop:
1,2,p
- Restart loop (current and default behavior):
1,2,l
- No loop:
1,2,s
- Number of repetitions:
1,2,L2 or 1.2,p2 repeats the sequence only twice
Looping behaviors should be set from an external function
groups
Grouping and group functions may be useful for advanced non-linear features:
- Simple groups:
[1,2], [3-1] ⇒ [1,2, 3,2,1]
- Random from range from a sub-sequence:
r[1,2,3] will pick a random preset from the group
- Repetitions:
[1,2]x2, 5 ⇒ [1,2,1,2,5]
- Group jumps:
[1,2]s2, 1 produces a 2/10 chance to skip the whole first group
After using it, I discovered some inconsistency and figured out updates in the sequencer syntax, without breaking the simplicity of the interpreter and the unfold internal sequence (an array of integers).
basics
So a new basic syntax blueprint can be as follow:
1, 2 ,31, r, 31-5⇒[1,2,3,4,5]3x2⇒[3,3]9m1, , ,4⇒[1,1,1,4]1,2s5,3the chances to skip the second preset are 5/10Note on implementation: if the system re-process the sequencer input each replay loop, it will avoid modifying the unfold sequence structure, and will only require a couple of extra global playback counters
looping
New commands for loop control:
1,2,p1,2,l1,2,s1,2,L2or1.2,p2repeats the sequence only twiceLooping behaviors should be set from an external function
groups
Grouping and group functions may be useful for advanced non-linear features:
[1,2], [3-1]⇒[1,2, 3,2,1]r[1,2,3]will pick a random preset from the group[1,2]x2, 5⇒[1,2,1,2,5][1,2]s2, 1produces a 2/10 chance to skip the whole first group