77 lines
1.7 KiB
Arduino
77 lines
1.7 KiB
Arduino
|
|
|
||
|
|
namespace eponge {
|
||
|
|
|
||
|
|
int raw0 = 0;
|
||
|
|
int ema0 = 0;
|
||
|
|
ExpMovAvg exmoav(&raw0, &ema0);
|
||
|
|
|
||
|
|
MinMaxLerp minmax(&ema0, 50, 800, 10000, 1000);
|
||
|
|
|
||
|
|
SpringMassDamper spring0(10.0, 19.0, 7.0);
|
||
|
|
SpringMassDamper spring1(10.0, 19.0, 7.0);
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
using namespace eponge;
|
||
|
|
|
||
|
|
machine_template void MachineStates::enter<BBBB>() {
|
||
|
|
|
||
|
|
Serial.println("enter BBBB");
|
||
|
|
|
||
|
|
FluteEx.init();
|
||
|
|
|
||
|
|
usbMIDI.setHandleNoteOff(OnNoteOff);
|
||
|
|
usbMIDI.setHandleNoteOn(OnNoteOn);
|
||
|
|
usbMIDI.setHandleControlChange(OnControlChange);
|
||
|
|
|
||
|
|
Music.getPreset(15);
|
||
|
|
|
||
|
|
// Music.setGain1(1.0);
|
||
|
|
// Music.setGain2(1.0);
|
||
|
|
// Music.setGain3(1.0); // 1.0 for 3 oscs
|
||
|
|
//
|
||
|
|
// Music.setWaveform1(SINE);
|
||
|
|
// Music.setWaveform2(SINE);
|
||
|
|
// Music.setWaveform3(SINE);
|
||
|
|
|
||
|
|
// eponge::raw0 = 0;
|
||
|
|
// eponge::ema0 = 0;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
machine_template void MachineStates::exit<BBBB>() { Serial.println("exit BBBB"); }
|
||
|
|
|
||
|
|
machine_template void MachineStates::tick<BBBB>() {
|
||
|
|
|
||
|
|
eponge::raw0 = analogRead(A1); // pot 0
|
||
|
|
eponge::exmoav.calculate();
|
||
|
|
eponge::minmax.lerp_min_max();
|
||
|
|
|
||
|
|
int pos0 = eponge::spring0.position(eponge::ema0);
|
||
|
|
int pos1 = eponge::spring1.position(pos0);
|
||
|
|
|
||
|
|
int minf = FluteEx.luxA();
|
||
|
|
//int minf = analogRead(A9); // pot2
|
||
|
|
minf = map(minf, 0, 1023, 25, 75);
|
||
|
|
|
||
|
|
int maxf = FluteEx.luxB();
|
||
|
|
// int maxf = analogRead(A2); // pot1
|
||
|
|
maxf = map(maxf, 0, 1023, 75, 125);
|
||
|
|
|
||
|
|
int f0 = map(eponge::ema0, 0, 1023, minf, maxf);
|
||
|
|
Music.setFrequency1(f0);
|
||
|
|
|
||
|
|
int f1 = map(pos0, 0, 1023, minf, maxf);
|
||
|
|
Music.setFrequency2(f1);
|
||
|
|
|
||
|
|
int f2 = map(pos1, 0, 1023, minf, maxf);
|
||
|
|
Music.setFrequency3(f2);
|
||
|
|
|
||
|
|
usbMIDI.read();
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
machine_template int MachineStates::event<BBBB>() { return AAAA; }
|
||
|
|
|