#define MIDI_CHANNEL 1 #include #include #include #include #include float x, y, z = 0; SpringMassDamper springX(50.0, 275.0, 1, &x); SpringMassDamper springY(50.0, 275.0, 1, &y); SpringMassDamper springZ(10.0, 275.0, 10, &z); const int basefreq = 148; long tick = 0; void setup() { FluteEx.init(); Serial.begin(115200); Serial.println("starts"); Music.init(); Music.setGain1(1.0); Music.setGain2(1.0); Music.setGain3(1.0); usbMIDI.setHandleNoteOff(OnNoteOff); usbMIDI.setHandleNoteOn(OnNoteOn); usbMIDI.setHandleControlChange(OnControlChange); Music.getPreset(4); ///// saved -- check max patch tick = millis(); } void loop() { if(FluteEx.push_button()) x += 1; springX.position(x); springY.position(springX.X); springZ.position(springY.X); int f1 = basefreq + springX.X; int f2 = basefreq + springY.X; int f3 = basefreq + springZ.X; Music.setFrequency1(f1); Music.setFrequency2(f2); Music.setFrequency3(f3); if(millis() - tick > 200) { // Serial.println(f3); tick = millis(); //Serial.println(cutmod); } usbMIDI.read(); } int cutmod = 90; float cutmod_indx = 0; float cutmod_incr = 0.00001; void cutoff() { /// cutmod -- [80, .., 100] cutmod_indx += cutmod_incr; cutmod = 90 + (cos(cutmod_indx) * 20); Music.setCutoffModAmount((cutmod-64) * 1024); }