-
-
Notifications
You must be signed in to change notification settings - Fork 149
Open
Description
Sequencer
The sequencer controls the 8 samplers. When editing the sequencer steps, the musical keyboard keys change to change sampler (black keys) and edit steps (white keys). Features are below, with those already implemented marked with a check mark.
GFI marks something suitable for a newcomer to get started on.
- Tempo (controls global clock)
- Start/stop (controls global clock)
- Sequencer screen
- Per-trigger settings
- 3. conditional trigs
- Chance / 2 in 4 etc
- Draw 2 in 4 as ○ ● ○ ○
- Single encoder, turn CW for X in Y, CCW for chance
- 2. velocity
- parameter locks?
- 3. conditional trigs
- Global
- 1. Tempo / swing
- 4. Sequence length
- Per-trigger settings
- Elegant solution for substeps
- Ratchets/Retriggers?
- Finite list of selectable combinations
- Full access to individual substeps with led "zoom"
- Move file handling out to the Sequencer, from the individual Samplers.
- Mutes
- 5. Sends for samplers
-
Samplerobjects own their ownSends -
Sequencer::sends_screen()to get
-
- 6. Variations
- 1 base sequence, 4 variations, of which zero or one can be active at any time
- variations are "diffs", i.e. only contain changes to the base sequence, not a copy of the base sequence
- variations can be
- queued for the next "round" (click)
- switched on instantly and held with a momentary switch (shift + click)
- queued and enabled for all future rounds
- switched on instantly and kept on
- step-toggles in variations have three states: on, off, "as in base"
- Future extensions:
- Longer sequences than 16 steps.
- Pages? +/- could be reused to switch pages
- GFI Long press (or press and encoder turn) does not toggle step
- Choke groups
- Mute groups
- Parameter locks
- Only sampler and sends props need to be lockable
- Velocity view - view velocity on LEDs.
- Longer sequences than 16 steps.
Global clock
- Count microsteps (192?) with an unsigned int
- clock range in ProcessData (last time, current time)
- check if the desired step is in clock range
- Sent from engine manager
- Control through separate ClockManager
-
void start(),void stop(bool reset = true),void reset() -
float bpm()
-
- Future extensions
- "Subscribe" to clock "events", i.e. handle every 16th etc.
- Done by checking
data.clock.contains_multiple,data.clock.count_multipleanddata.clock.position_of_multiple
- Done by checking
- GFI swing
- "Subscribe" to clock "events", i.e. handle every 16th etc.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels