#include <Tone.h>
#include "pitches.h" //Si aggiunge la libreria contenente le note
#include "accordi.h" //Si aggiunge la libreria contenente le note
#include "range_tasti_1.h" //Si aggiunge la libreria contenente le note
int tempo = 1000; //NON USATO Velocità di esecuzione. 1000 = 60 bpm, 500 = 120 bpm, 2000 = 30 bpm
int stripPin = A0; //Pin collegato alla striscia resistiva
int potPin = A1; //Pin collegato alla striscia resistiva
int buzzPin0 = 2; //Pin collegato al buzzer0
int buzzPin1 = 4; //Pin collegato al buzzer1
int buzzPin2 = 7; //Pin collegato al buzzer2
int buzzPin3 = 8; //Pin collegato al buzzer3
int minPin = 12; //Pin collegato al pulsante del minore
int sevPin = 13; //Pin collegato al pulsante del settima
int corda_1; //Posizione di pressione corda 1
bool minore;
bool settima;
int corda_vuota; //Valore di resistenza a corda vuota
int NOTA; //Nota da suonare
int durata=0; //durata delle singole note
int accordo[4];
Tone buzzer[3];
void setup() {
buzzer[0].begin(buzzPin0);
buzzer[1].begin(buzzPin1);
buzzer[2].begin(buzzPin2);
//pinMode(buzzPin0,OUTPUT); //Il buzzer viene impostato come OUTPUT
//pinMode(buzzPin1,OUTPUT); //Il buzzer viene impostato come OUTPUT
//pinMode(buzzPin2,OUTPUT); //Il buzzer viene impostato come OUTPUT
//pinMode(buzzPin3,OUTPUT); //Il buzzer viene impostato come OUTPUT
pinMode(minore,INPUT); //Il tasto del minore INPUT
pinMode(settima,INPUT); //Il tasto del settima INPUT
Serial.begin(9600);
}
void loop() {
corda_1= analogRead(stripPin);
minore=digitalRead(minPin);
settima=digitalRead(sevPin);
durata= map(analogRead(potPin),0,1024,0,200);
if (corda_1 > 10){ //filtra eventuale sporco su corda vuota
id_nota(corda_1);
buzzer[0].play(accordo[0]);
buzzer[1].play(accordo[1]);
buzzer[2].play(accordo[2]);
/*tone(buzzPin0, accordo[0],durata);
delay(durata);
noTone(buzzPin0);
tone(buzzPin1, accordo[1],durata);
delay(durata);
noTone(buzzPin1);
tone(buzzPin2, accordo[2],durata);
delay(durata);
noTone(buzzPin2);
tone(buzzPin3, accordo[3],durata);
delay(durata);
noTone(buzzPin3); */
Serial.print(durata);
Serial.print("\t");
Serial.print(corda_1);
Serial.print("\t");
Serial.print(accordo[0]);
Serial.print("\t");
Serial.print(accordo[1]);
Serial.print("\t");
Serial.print(accordo[2]);
Serial.print("\t");
Serial.print(accordo[3]);
Serial.print("\t");
Serial.print(minore);
Serial.print("\t");
Serial.println(settima);
delay(1); // delay in between reads for stability
}
else{
buzzer[0].stop();
buzzer[1].stop();
buzzer[2].stop();
/*noTone(buzzPin0);
noTone(buzzPin1);
noTone(buzzPin2);
noTone(buzzPin3);*/
}
}
void accordo_variabile (int chord[]){
for(int i=0;i<=3;i++){
accordo[i] = chord[i];
}
return;
}
void id_nota(unsigned int posizione){
int tasto;
if (posizione >= t_G4[0] && posizione < t_G4[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_G_4);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_Gm7_4);
}
else if (minore==HIGH){
accordo_variabile(CH_Gm_4);
}
else{
accordo_variabile(CH_G7_4);
}
}
else if (posizione >= t_GS4[0] && posizione < t_GS4[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_GS_4);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_GSm7_4);
}
else if (minore==HIGH){
accordo_variabile(CH_GSm_4);
}
else{
accordo_variabile(CH_GS7_4);
}
}
else if (posizione >= t_A4[0] && posizione < t_A4[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_A_4);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_Am7_4);
}
else if (minore==HIGH){
accordo_variabile(CH_Am_4);
}
else{
accordo_variabile(CH_A7_4);
}
}
else if (posizione >= t_AS4[0] && posizione < t_AS4[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_AS_4);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_ASm7_4);
}
else if (minore==HIGH){
accordo_variabile(CH_ASm_4);
}
else{
accordo_variabile(CH_AS7_4);
}
}
else if (posizione >= t_B4[0] && posizione < t_B4[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_B_4);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_Bm7_4);
}
else if (minore==HIGH){
accordo_variabile(CH_Bm_4);
}
else{
accordo_variabile(CH_B7_4);
}
}
else if (posizione >= t_C5[0] && posizione < t_C5[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_C_5);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_Cm7_5);
}
else if (minore==HIGH){
accordo_variabile(CH_Cm_5);
}
else{
accordo_variabile(CH_C7_5);
}
}
else if (posizione >= t_CS5[0] && posizione < t_CS5[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_CS_5);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_CSm7_5);
}
else if (minore==HIGH){
accordo_variabile(CH_CSm_5);
}
else{
accordo_variabile(CH_CS7_5);
}
}
else if (posizione >= t_D5[0] && posizione < t_D5[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_D_5);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_Dm7_5);
}
else if (minore==HIGH){
accordo_variabile(CH_Dm_5);
}
else{
accordo_variabile(CH_D7_5);
}
}
else if (posizione >= t_DS5[0] && posizione < t_DS5[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_DS_5);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_DSm7_5);
}
else if (minore==HIGH){
accordo_variabile(CH_DSm_5);
}
else{
accordo_variabile(CH_DS7_5);
}
}
else if (posizione >= t_E5[0] && posizione < t_E5[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_E_5);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_Em7_5);
}
else if (minore==HIGH){
accordo_variabile(CH_Em_5);
}
else{
accordo_variabile(CH_E7_5);
}
}
else if (posizione >= t_F5[0] && posizione < t_F5[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_F_5);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_Fm7_5);
}
else if (minore==HIGH){
accordo_variabile(CH_Fm_5);
}
else{
accordo_variabile(CH_F7_5);
}
}
else if (posizione >= t_FS5[0] && posizione < t_FS5[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_FS_5);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_FSm7_5);
}
else if (minore==HIGH){
accordo_variabile(CH_FSm_5);
}
else{
accordo_variabile(CH_FS7_5);
}
}
else if (posizione >= t_G5[0] && posizione < t_G5[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_G_5);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_Gm7_5);
}
else if (minore==HIGH){
accordo_variabile(CH_Gm_5);
}
else{
accordo_variabile(CH_G7_5);
}
}
else if (posizione >= t_GS5[0] && posizione < t_GS5[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_GS_5);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_GSm7_5);
}
else if (minore==HIGH){
accordo_variabile(CH_GSm_5);
}
else{
accordo_variabile(CH_GS7_5);
}
}
else if (posizione >= t_A5[0] && posizione < t_A5[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_A_5);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_Am7_5);
}
else if (minore==HIGH){
accordo_variabile(CH_Am_5);
}
else{
accordo_variabile(CH_A7_5);
}
}
else if (posizione >= t_AS5[0] && posizione < t_AS5[1]){
if (minore==LOW && settima==LOW){
accordo_variabile(CH_AS_5);
}
else if (minore==HIGH && settima==HIGH){
accordo_variabile(CH_ASm7_5);
}
else if (minore==HIGH){
accordo_variabile(CH_ASm_5);
}
else{
accordo_variabile(CH_AS7_5);
}
}
return;
}