Para la gestión de guardado de las secuencias, se ha ideado un sistema de estructuras concatenadas para guardar todas las variables estáticas de la secuencia.
struct Step {
byte note;
byte ccValue;
byte velocity;
byte ccSmoothCurve;
uint8_t mutes : 1;
uint8_t ccMutes : 1;
uint8_t octave : 4;
};
struct Sequence {
Step steps[N_MAX_STEPS];
Step ext_steps[N_MAX_STEPS];
byte canal;
byte seqMode;
byte ccNumber;
byte escalaSeleccionada;
byte noteTone;
byte nTotalSteps;
byte subdivMode;
byte indexSubdivisiones;
byte indComplexSubdivY;
byte indComplexSubdivX;
byte ext_nTotalSteps;
byte ext_subdivMode;
byte ext_indexSubdivisiones;
byte ext_indComplexSubdivY;
byte ext_indComplexSubdivX;
uint8_t armed : 1;
uint8_t extensionArmed : 1;
};
struct Pattern {
Sequence nSequence[N_MAX_SEQS];
char nombreSequencia[10];
Sequence seq_slots[3][N_MAX_SEQS];
};