[COLOR=#DAE3E3][FONT=Menlo][COLOR=#000000]#include <uClock.h>[/COLOR]
[COLOR=#000000]#include <Audio.h>[/COLOR]
[COLOR=#000000]#include <SD.h>[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]#define sd1 SD[/COLOR]
[COLOR=#000000]#define SDCARD_CS_PIN BUILTIN_SDCARD[/COLOR]
[COLOR=#000000]#define SDCARD_MOSI_PIN 43 // not actually used[/COLOR]
[COLOR=#000000]#define SDCARD_SCK_PIN 45 // not actually used[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]#define MAX_PATTERNS 16[/COLOR]
[COLOR=#000000]#define MAX_TRACKS 16[/COLOR]
[COLOR=#000000]#define MAX_STEPS 64[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]// GUItool: begin automatically generated code[/COLOR]
[COLOR=#000000]AudioPlayWAVstereo rraw_a1; //xy=302,157[/COLOR]
[COLOR=#000000]AudioPlayWAVstereo rraw_a2; //xy=302,157[/COLOR]
[COLOR=#000000]AudioPlayWAVstereo rraw_a3; //xy=302,157[/COLOR]
[COLOR=#000000]AudioMixer4 mixer1; //xy=638,399[/COLOR]
[COLOR=#000000]AudioMixer4 mixer2; //xy=638,399[/COLOR]
[COLOR=#000000]AudioMixer4 mixer3; //xy=638,399[/COLOR]
[COLOR=#000000]AudioOutputI2S audioOutput; //xy=787,407[/COLOR]
[COLOR=#000000]AudioConnection patchCord3(rraw_a1, 0, mixer1, 0);[/COLOR]
[COLOR=#000000]AudioConnection patchCord4(rraw_a1, 0, mixer1, 1);[/COLOR]
[COLOR=#000000]AudioConnection patchCord1(rraw_a2, 0, mixer1, 2);[/COLOR]
[COLOR=#000000]AudioConnection patchCord2(rraw_a2, 0, mixer1, 3);[/COLOR]
[COLOR=#000000]AudioConnection patchCord5(rraw_a3, 0, mixer2, 0);[/COLOR]
[COLOR=#000000]AudioConnection patchCord6(rraw_a3, 0, mixer2, 1);[/COLOR]
[COLOR=#000000]AudioConnection patchCord7(mixer1, 0, mixer3, 0);[/COLOR]
[COLOR=#000000]AudioConnection patchCord8(mixer1, 0, mixer3, 1);[/COLOR]
[COLOR=#000000]AudioConnection patchCord9(mixer2, 0, mixer3, 2);[/COLOR]
[COLOR=#000000]AudioConnection patchCord10(mixer2, 0, mixer3, 3);[/COLOR]
[COLOR=#000000]AudioConnection patchCord11(mixer3, 0, audioOutput, 0);[/COLOR]
[COLOR=#000000]AudioConnection patchCord12(mixer3, 0, audioOutput, 1);[/COLOR]
[COLOR=#000000]AudioControlSGTL5000 sgtl5000_1; //xy=793,542[/COLOR]
[COLOR=#000000]// GUItool: end automatically generated code[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]uint8_t bpm_blink_timer = 1;[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]// Sequencer data [/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]enum TRACK_TYPE {[/COLOR]
[COLOR=#000000] SAMPLE = 0,[/COLOR]
[COLOR=#000000]};[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]enum TRACK_STEP_STATE {[/COLOR]
[COLOR=#000000] OFF = 0,[/COLOR]
[COLOR=#000000] ON = 1,[/COLOR]
[COLOR=#000000]};[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]typedef struct[/COLOR]
[COLOR=#000000]{[/COLOR]
[COLOR=#000000] TRACK_STEP_STATE state = OFF;[/COLOR]
[COLOR=#000000]} TRACK_STEP;[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]typedef struct[/COLOR]
[COLOR=#000000]{[/COLOR]
[COLOR=#000000] TRACK_TYPE track_type = SAMPLE;[/COLOR]
[COLOR=#000000] TRACK_STEP steps[MAX_STEPS];[/COLOR]
[COLOR=#000000] int8_t last_step = 16;[/COLOR]
[COLOR=#000000] int8_t sample_id = 0;[/COLOR]
[COLOR=#000000]} TRACK;[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]typedef struct[/COLOR]
[COLOR=#000000]{[/COLOR]
[COLOR=#000000] TRACK tracks[MAX_TRACKS];[/COLOR]
[COLOR=#000000]} PATTERN;[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]typedef struct[/COLOR]
[COLOR=#000000]{[/COLOR]
[COLOR=#000000] PATTERN patterns[MAX_PATTERNS];[/COLOR]
[COLOR=#000000]} BANK;[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]typedef struct[/COLOR]
[COLOR=#000000]{[/COLOR]
[COLOR=#000000] BANK banks[1];[/COLOR]
[COLOR=#000000]} SEQUENCER;[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]enum SEQUENCER_PLAYBACK_STATE {[/COLOR]
[COLOR=#000000] STOPPED = 0,[/COLOR]
[COLOR=#000000] RUNNING = 1,[/COLOR]
[COLOR=#000000] PAUSED = 2[/COLOR]
[COLOR=#000000]};[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]typedef struct[/COLOR]
[COLOR=#000000]{[/COLOR]
[COLOR=#000000] SEQUENCER seq;[/COLOR]
[COLOR=#000000] SEQUENCER_PLAYBACK_STATE playback_state = STOPPED;[/COLOR]
[COLOR=#000000] int8_t current_step = 1;[/COLOR]
[COLOR=#000000]} SEQUENCER_STATE;[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]EXTMEM SEQUENCER_STATE _seq_state;[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]int8_t current_selected_pattern = 0;[/COLOR]
[COLOR=#000000]int8_t current_selected_track = 0;[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]void onClockStop();[/COLOR]
[COLOR=#000000]void onClockStart();[/COLOR]
[COLOR=#000000]void ClockOut96PPQN(uint32_t tick);[/COLOR]
[COLOR=#000000]void triggerAllStepsForGlobalStep(void);[/COLOR]
[COLOR=#000000]void playFile(uint8_t num);[/COLOR]
[COLOR=#000000]void stopFiles(void);[/COLOR]
[COLOR=#000000]void fillOutSequencer(void);[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]void setup() {[/COLOR]
[COLOR=#000000] Serial.begin(9600);[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] if (CrashReport) {[/COLOR]
[COLOR=#000000] Serial.print(CrashReport);[/COLOR]
[COLOR=#000000] }[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] // Audio connections require memory to work. For more[/COLOR]
[COLOR=#000000] // detailed information, see the MemoryAndCpuUsage example[/COLOR]
[COLOR=#000000] AudioMemory(40);[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] // Comment these out if not using the audio adaptor board.[/COLOR]
[COLOR=#000000] // This may wait forever if the SDA & SCL pins lack[/COLOR]
[COLOR=#000000] // pullup resistors[/COLOR]
[COLOR=#000000] sgtl5000_1.enable();[/COLOR]
[COLOR=#000000] sgtl5000_1.volume(0.3);[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] mixer1.gain(0, 0.5);[/COLOR]
[COLOR=#000000] mixer1.gain(1, 0.5);[/COLOR]
[COLOR=#000000] mixer1.gain(2, 0.7);[/COLOR]
[COLOR=#000000] mixer1.gain(3, 0.7);[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] rraw_a1.createBuffer(8192, AudioBuffer::inExt);[/COLOR]
[COLOR=#000000] rraw_a2.createBuffer(8192, AudioBuffer::inExt);[/COLOR]
[COLOR=#000000] rraw_a3.createBuffer(8192, AudioBuffer::inExt);[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] SPI.setMOSI(SDCARD_MOSI_PIN);[/COLOR]
[COLOR=#000000] SPI.setSCK(SDCARD_SCK_PIN);[/COLOR]
[COLOR=#000000] if (!(SD.begin(SDCARD_CS_PIN))) {[/COLOR]
[COLOR=#000000] // stop here, but print a message repetitively[/COLOR]
[COLOR=#000000] while (1) {[/COLOR]
[COLOR=#000000] Serial.println("Unable to access the SD card");[/COLOR]
[COLOR=#000000] delay(500);[/COLOR]
[COLOR=#000000] }[/COLOR]
[COLOR=#000000] }[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] delay(100);[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] // Setup our clock system[/COLOR]
[COLOR=#000000] // Inits the clock[/COLOR]
[COLOR=#000000] uClock.init();[/COLOR]
[COLOR=#000000] // Set the callback function for the clock output to send MIDI Sync message.[/COLOR]
[COLOR=#000000] uClock.setClock96PPQNOutput(ClockOut96PPQN);[/COLOR]
[COLOR=#000000] // Set the callback function for MIDI Start and Stop messages.[/COLOR]
[COLOR=#000000] uClock.setOnClockStartOutput(onClockStart); [/COLOR]
[COLOR=#000000] uClock.setOnClockStopOutput(onClockStop);[/COLOR]
[COLOR=#000000] // Set the clock BPM to 120 BPM[/COLOR]
[COLOR=#000000] uClock.setTempo(170);[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] Serial.println("fill test sequencer out");[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] delay(100);[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] // build test sequencer out with basic data[/COLOR]
[COLOR=#000000] fillOutSequencer();[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] delay(100);[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] Serial.println("Done filling test sequencer out");[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] uClock.start();[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] // play for only 1m[/COLOR]
[COLOR=#000000] delay(60000);[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] uClock.stop();[/COLOR]
[COLOR=#000000]}[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]void loop(void)[/COLOR]
[COLOR=#000000]{[/COLOR]
[COLOR=#000000] //[/COLOR]
[COLOR=#000000]}[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]// Internal clock handlers[/COLOR]
[COLOR=#000000]void ClockOut96PPQN(uint32_t tick) {[/COLOR]
[COLOR=#000000] if (uClock.state==0) {[/COLOR]
[COLOR=#000000] return;[/COLOR]
[COLOR=#000000] }[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] if ((_seq_state.playback_state == SEQUENCER_PLAYBACK_STATE::RUNNING) && !(tick % (6)) ) {[/COLOR]
[COLOR=#000000] // handle current sixteenth steps for all tracks[/COLOR]
[COLOR=#000000] triggerAllStepsForGlobalStep();[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] if (_seq_state.current_step <= 16) {[/COLOR]
[COLOR=#000000] if (_seq_state.current_step < 16) {[/COLOR]
[COLOR=#000000] ++_seq_state.current_step; // advance current step for sequencer[/COLOR]
[COLOR=#000000] } else {[/COLOR]
[COLOR=#000000] _seq_state.current_step = 1; // reset current step[/COLOR]
[COLOR=#000000] }[/COLOR]
[COLOR=#000000] }[/COLOR]
[COLOR=#000000] }[/COLOR]
[COLOR=#000000]}[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]void onClockStart() {[/COLOR]
[COLOR=#000000] _seq_state.playback_state = SEQUENCER_PLAYBACK_STATE::RUNNING;[/COLOR]
[COLOR=#000000]}[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]void onClockStop() {[/COLOR]
[COLOR=#000000] _seq_state.playback_state = SEQUENCER_PLAYBACK_STATE::STOPPED;[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] stopFiles();[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] Serial.println("stopped!");[/COLOR]
[COLOR=#000000]}[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]void triggerAllStepsForGlobalStep(void)[/COLOR]
[COLOR=#000000]{[/COLOR]
[COLOR=#000000] int8_t currGlobalStep = _seq_state.current_step - 1;[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] BANK currentBank = _seq_state.seq.banks[0];[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] PATTERN currentPattern = currentBank.patterns[current_selected_pattern];[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] const int MAX_PATTERN_TRACK_SIZE = MAX_TRACKS;[/COLOR]
[COLOR=#000000] for (int t = 0; t < MAX_PATTERN_TRACK_SIZE; t++) {[/COLOR]
[COLOR=#000000] TRACK currTrack = currentPattern.tracks[t];[/COLOR]
[COLOR=#000000] TRACK_STEP currTrackStep = currTrack.steps[currGlobalStep];[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] if (currTrackStep.state == TRACK_STEP_STATE::ON) {[/COLOR]
[COLOR=#000000] if (currTrack.track_type == TRACK_TYPE::SAMPLE) {[/COLOR]
[COLOR=#000000] playFile(currTrack.sample_id);[/COLOR]
[COLOR=#000000] }[/COLOR]
[COLOR=#000000] }[/COLOR]
[COLOR=#000000] }[/COLOR]
[COLOR=#000000]}[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]void playFile(uint8_t num)[/COLOR]
[COLOR=#000000]{[/COLOR]
[COLOR=#000000] if (num == 0) {[/COLOR]
[COLOR=#000000] rraw_a1.play("BD_FIXED.wav", sd1);[/COLOR]
[COLOR=#000000] } else if (num == 1) {[/COLOR]
[COLOR=#000000] rraw_a2.play("SD_FIXED.wav", sd1);[/COLOR]
[COLOR=#000000] } else if (num == 2) {[/COLOR]
[COLOR=#000000] rraw_a3.play("CH_FIXED.wav", sd1);[/COLOR]
[COLOR=#000000] }[/COLOR]
[COLOR=#000000]}[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]void stopFiles()[/COLOR]
[COLOR=#000000]{[/COLOR]
[COLOR=#000000] rraw_a1.stop();[/COLOR]
[COLOR=#000000] rraw_a2.stop();[/COLOR]
[COLOR=#000000] rraw_a3.stop();[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] delay(10);[/COLOR]
[COLOR=#000000]}[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000]void fillOutSequencer(void)[/COLOR]
[COLOR=#000000]{[/COLOR]
[COLOR=#000000] // fill out top level stuff[/COLOR]
[COLOR=#000000] _seq_state.current_step = 1;[/COLOR]
[COLOR=#000000] _seq_state.playback_state = STOPPED;[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] for (int i = 0; i< 16; i++) {[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[3].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[4].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[5].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[6].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[7].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[8].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[9].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[10].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[11].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[12].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[13].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[14].steps[i].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] }[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].track_type = TRACK_TYPE::SAMPLE;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].sample_id = 0;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[0].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[1].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[2].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[3].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[4].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[5].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[6].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[7].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[8].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[9].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[10].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[11].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[12].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[13].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[14].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[0].steps[15].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].track_type = TRACK_TYPE::SAMPLE;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].sample_id = 1;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[0].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[1].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[2].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[3].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[4].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[5].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[6].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[7].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[8].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[9].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[10].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[11].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[12].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[13].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[14].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[1].steps[15].state = TRACK_STEP_STATE::OFF;[/COLOR]
[COLOR=#000000]
[/COLOR][COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].track_type = TRACK_TYPE::SAMPLE;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].sample_id = 2;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[0].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[1].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[2].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[3].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[4].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[5].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[6].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[7].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[8].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[9].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[10].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[11].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[12].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[13].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[14].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000] _seq_state.seq.banks[0].patterns[0].tracks[2].steps[15].state = TRACK_STEP_STATE::ON;[/COLOR]
[COLOR=#000000]}[/COLOR]
[/FONT][/COLOR]