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() { 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() { Serial.println("exit BBBB"); } machine_template void MachineStates::tick() { 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() { return AAAA; }