#include <Plaquette.h>
//DEL vars
AnalogOut delRose(9);
AnalogOut delVert(10);
AnalogOut delBleu(11);
//sadWave vars
SineWave sadWave(3.0); //onde sinusoidale avec un period de 2 secondes
SineWave sadWave2(7.0);
float supersadWave; // variable pour stocker l'addition des deux sadWaves plus tard
//happyWave vars
SquareWave happyWave(3.0); // onde carre avec period 500 millisecondes
TriangleWave happySaw(2.0);
float happyNoise;
//nervousWave vars
SquareWave nervousWave(2.0);
Ramp nervousRamp(6.0);
Ramp nervousRamp2(2.5);
void begin() {
happySaw.width(0); // convert the triangle wave into a sawtooth by adjusting the width
//reduce amplitude of sad waves because we will add them
sadWave.amplitude(0.35);
sadWave2.amplitude(0.65);
//define the nervous ramp parameters
nervousRamp.easing(easeInQuint);
nervousRamp.fromTo(1.0, 0.1);
nervousRamp.start(); //
nervousRamp2.fromTo(0.1, 0.05);
}
void step() {
///////signal addition for SuperSadWave ///////////////////
supersadWave = (sadWave + sadWave2)/2; // Combine waves mathematically
//adding noise into signal for Happy Wave//////////////////
happyNoise = random(1, 10); //random numbers min, max
happyWave.frequency(happyNoise);
happyWave.amplitude(happySaw);
/////using ramps and timers for nervous Wave////////////
nervousWave.period(nervousRamp);
if (nervousRamp.isFinished()) {
nervousRamp.stop();
nervousRamp2.start();
}
if (nervousRamp2.isFinished()) {
nervousRamp2.stop();
nervousRamp.start();
}
/*
if (nervousAlarm && nervousAlarm.isRunning()) {
nervousAlarm.pause();
nervousRamp.start(); // from, to, duration
}*/
//////////////envoi les signalx au DELs//////////////////
happyWave >> delRose;
supersadWave >> delBleu;
nervousWave >> delVert;
/////////////print to serial monitor/////////////////
//print(nervousRamp);
//print(" "); // Print white space
//println(nervousRamp2);
print(happyWave); // Print wave value
print(" "); // Print white space
print(nervousWave); // Print wave value
print(" "); // Print white space
println(supersadWave);
}