77 lines
1.7 KiB
Arduino
Raw Normal View History

2018-11-13 08:10:15 +01:00
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; }