Introduce basic Euclidean Rhythm (#9)
Each channel can define a euclidean rhythm by setting a number of steps (up to 16) and a number of hits to evenly distribute within those steps. CV Mod is available, however the cv mod acts as an override instead of a sum mix like the other parameters. Refactor `applyCvMod()` so it is only called if cv mod is active for that channel. Now the setter methods will update the final output value if cv mod is not active. Reviewed-on: https://git.pinkduck.xyz/adam/libGravity/pulls/9 Co-authored-by: Adam Wonak <adam.wonak@gmail.com> Co-committed-by: Adam Wonak <adam.wonak@gmail.com>
This commit is contained in:
@ -9,7 +9,7 @@ struct AppState;
|
||||
|
||||
// Define the constants for the current firmware.
|
||||
const char SKETCH_NAME[] = "Gravity";
|
||||
const byte SKETCH_VERSION = 4;
|
||||
const byte SKETCH_VERSION = 5;
|
||||
|
||||
// Define the minimum amount of time between EEPROM writes.
|
||||
static const unsigned long SAVE_DELAY_MS = 2000;
|
||||
@ -44,6 +44,8 @@ class StateManager {
|
||||
byte base_shuffle;
|
||||
byte cv_source; // Cast the CvSource enum to a byte for storage
|
||||
byte cv_destination; // Cast the CvDestination enum as a byte for storage
|
||||
byte euc_steps;
|
||||
byte euc_hits;
|
||||
};
|
||||
// This struct holds all the parameters we want to save.
|
||||
struct EepromData {
|
||||
|
||||
Reference in New Issue
Block a user