49 lines
948 B
C++
49 lines
948 B
C++
// Acid StepSequencer, a Roland TB303 step sequencer engine clone
|
|
// author: midilab contact@midilab.co
|
|
// under MIT license
|
|
// CV functionality added by Oleksiy Hrachov
|
|
|
|
#include <Arduino.h>
|
|
#include <Wire.h>
|
|
#include "MCP4725.h"
|
|
|
|
#include "config.h"
|
|
|
|
MCP4725 DAC1(DAC_1_ADDR);
|
|
MCP4725 DAC2(DAC_2_ADDR);
|
|
|
|
bool updateCV1 = true;
|
|
bool updateCV2 = true;
|
|
bool sendGate1 = false;
|
|
bool sendGate2 = false;
|
|
uint8_t CV1Note;
|
|
uint8_t CV2Note;
|
|
|
|
void setup()
|
|
{
|
|
// AcidStepSequencer Interface
|
|
initAcidStepSequencer(MIDI_MODE);
|
|
setTrackChannel(1, TRACK1_CHANNEL);
|
|
setTrackChannel(2, TRACK2_CHANNEL);
|
|
|
|
// pins, buttons, leds and pots config
|
|
configureInterface();
|
|
|
|
// last pattern user had load before power off
|
|
loadLastPattern();
|
|
|
|
Wire.begin();
|
|
Wire.setClock(400000);
|
|
DAC1.begin();
|
|
DAC2.begin();
|
|
DAC1.setMaxVoltage(5.1);
|
|
DAC2.setMaxVoltage(5.1);
|
|
}
|
|
|
|
// User interaction goes here
|
|
void loop()
|
|
{
|
|
processInterface();
|
|
processCV();
|
|
}
|