note frequencies

Ciao a TUTTI

ho un piccolo problema con le musichette dei BUZZER Passivi.

Mi spiego meglio
ho creato una sorta di PLC con relè di potenza ect.ect. ed una tastiera 4x4 con cui sto ancora impazzendo.

Ci ho montato anche un BUZZER che funziona benissimo, ed ho modificato gli esempi usando millis() per non bloccare le altre funzioni, il tutto funziona benissimo.

Però non riesco a trovare una lista di musichette già fatte per il BUZZER.....come compositore non sono un granchè.

Esiste per caso una lista già compilata con varie musiche?? :art: :art:

Qui lo schetck per evitare il delay().

void BUZZER_1() 
{
 if(Nota_Attuale_BUZ_1==0){if(millis()-Time_BUZZER_1<=500){tone(3,100,500);if(millis()-Time_BUZZER_1>=500){Nota_Attuale_BUZ_1++;Time_BUZZER_1=millis();}}}
 if(Nota_Attuale_BUZ_1==1){if(millis()-Time_BUZZER_1<=700){tone(3,200,700);if(millis()-Time_BUZZER_1>=700){Nota_Attuale_BUZ_1++;Time_BUZZER_1=millis();}}}
 if(Nota_Attuale_BUZ_1==2){if(millis()-Time_BUZZER_1<=300){tone(3,300,300);if(millis()-Time_BUZZER_1>=300){Nota_Attuale_BUZ_1++;Time_BUZZER_1=millis();}}}   
 if(Nota_Attuale_BUZ_1==3){if(millis()-Time_BUZZER_1<=200){tone(3,700,200);if(millis()-Time_BUZZER_1>=200){Nota_Attuale_BUZ_1++;Time_BUZZER_1=millis();}}}  
 if(Nota_Attuale_BUZ_1==4){if(millis()-Time_BUZZER_1<=800){tone(3,200,800);if(millis()-Time_BUZZER_1>=800){Nota_Attuale_BUZ_1++;Time_BUZZER_1=millis();}}}   
}

void loop() 
{
 BUZZER_1() ;
}

Potresti fare una cosa del genere, scrivendo in freq e in dur la frequenza e la durata di ciascuna nota. Dopo l’ultima nota metti una frequenza uguale a zero.

if(stato==0 && freq!=0) 
  {
  stato=1;
  t1=millis();
  tone(3,freq[n]);
  }

if(millis()-t1>dur[n])
  {
  stato=0;
  noTone();
  n+=1;
  }

Per quanto riguarda le note, fai una tabella (ad esempio con uno switch/case) con le note musicali nella notazione americana, ad esempio da A3 (LA) a G5 (SOL), e le rispettive frequenze. Anziché freq l’array si chiamerà note e nella tabella avrai:

case:A3 
  f=220;
  break;
case:B3
  f=247;
  break;

Sicuramente c’è anche qualche libreria.

non ci avevo pensato

potrebbe essere utile per accorciare ulteriormente la funzione.

Ma il mio problema al momento è che vorrei una lista di frequenze e durata gia fatte ,tipo un almbum musicale, dove poter scegliere la canzone.......ma non ne trovo di decenti...con repertorio vasto.

Puso:
Ma il mio problema al momento è che vorrei una lista di frequenze e durata gia fatte ,tipo un almbum musicale, dove poter scegliere la canzone.......ma non ne trovo di decenti...con repertorio vasto.

:o

Non credo ci siano, tantomeno utilizzabili direttamente da Arduino con tone().

Puoi anche prenderti dei MIDI dei brani che ti interessano ed estrarre in qualche modo le note di UNA sola traccia (Arduino non è polifonico). Poi queste note, probabilmente il loro codice MIDI e relativa durata, devi convertirle in qualche modo in nota (ma puoi lasciare la stesa codifica MIDI, la frequenza la dedurrai dal codice della nota) e durata (che deve diventare in msec).
A quel punto, vista la poca RAM di Arduino, devi usare una schedina SD per memorizzare i brani, divisi in singoli file, o in alternativa puoi vedere se in qualche modo potresti leggere da Arduino direttamente i file MIDI e da questo estrarre UNA traccia ma la vedo dura perché devi sicuramente usare qualche libreria o farti tu le routine per leggere ed interpretare un file MIDI scartando le tracce che non ti interessano e tutti gli altri eventi (Program Change, Control Change, eccetera).

Insomma, mi pare che il gioco non valga la candela...

DO1=33Hz
DO#1=35Hz
RE1=37Hz
RE#1=39Hz
MI1=41.5Hz
FA1=44Hz
FA#1=46.5Hz
SOL1=49Hz
SOL#1=52Hz
LA1=105Hz
LA#1=58.5Hz
SI1=62Hz

DO2=66Hz
DO#2=70Hz
RE2=74Hz
RE#2=78Hz
MI2=83Hz
FA2=88Hz
FA#2=93Hz
SOL2=98Hz
SOL#2=104Hz
LA2=110Hz
LA#2=117Hz
SI2=124Hz

DO3=131Hz
DO#3=139Hz
RE3=147Hz
RE#3=156Hz
MI3=165Hz
FA3=175Hz
FA#3=185Hz
SOL3=196Hz
SOL#3=208Hz
LA3=220Hz
LA#3=233Hz
SI3=247Hz

DO4=262Hz
DO#4=277Hz
RE4=294Hz
RE#4=311Hz
MI4=330Hz
FA4=349Hz
FA#4=370Hz
SOL4=392Hz
SOL#4=415Hz
LA4=440Hz
LA#4=466Hz
SI4=494Hz

DO5=523Hz
DO#5=554Hz
RE5=587Hz
RE#5=622Hz
MI5=659Hz
FA5=698Hz
FA#5=740Hz
SOL5=784Hz
SOL#5=831Hz
LA5=880Hz
LA#5=932Hz
SI5=988Hz

DO6=1046Hz
DO#6=1109Hz
RE6=1175Hz
RE#6=1245Hz
MI6=1319Hz
FA6=1397Hz
FA#6=1480Hz
SOL6=1568Hz
SOL#6=1661Hz
LA6=1760Hz
LA#6=1865Hz
SI6=1976Hz

DO7=2093Hz
DO#7=2217Hz
RE7=2349Hz
RE#7=2489Hz
MI7=2637Hz
FA7=2794Hz
FA#7=2960Hz
SOL7=3136Hz
SOL#7=3322Hz
LA7=3520Hz
LA#7=3729Hz
SI7=3951Hz

DO8=4186Hz
DO#8=4434Hz
RE8=4698Hz
RE#8=4978Hz
MI8=5274Hz
FA8=5588Hz
FA#8=5920Hz
SOL8=6272Hz
SOL#8=6644Hz
LA8=7040Hz
LA#8=7458Hz
SI8=7902Hz

DO9=8372Hz
DO#9=8868Hz
RE9=9396Hz
RE#9=9956Hz
MI9=10548Hz
FA9=11176Hz
FA#9=11840Hz
SOL9=12544Hz
SOL#9=13288Hz
LA9=14080Hz
LA#9=14916Hz
SI9=15804Hz

EDIT: corretto

1 Like

Etemenanki:
DO1=33Hz
DO#1=35Hz
RE1=37Hz
...

Ehm, non era necessario, o quantomeno bastava un allegato, non ti pare? Inoltre dovrebbe mappare le note così scritte con il corrispondente codice MIDI, così serve a poco.

... avevo capito che voleva usarli con la tone() ...

Si ma se vuole "tipo un album musicale", e "con repertorio vasto" l'unica soluzione è prendere i MIDI che si trovano facilmente in rete, e processarli per suonarli con la tone(). La tua tabella va anche bene, ovviamente è corretta (oddio, diciamo che basta la prima ottava, poi le successive si ottengono raddoppiando le 12 frequenze base...), ma in pratica il formato di una tale tabella dipende fortemente da come intende memorizzare i brani e quindi di che tipo. Fino a che non stabilisce quello, non abbiamo modo di consigliargli nulla di preciso.

PS: magari metti la tua tabella come allegato invece che nel testo, giusto per rendere più leggibile il thread.. :wink:

...oppure come code.

:cry: :cry: :cry:
mi commuovo quando non mi ignorate.

Vi ringrazio a tutti.

In realtà
per il momento stavo proprio cercando una lista come già fatta di canzoncine.

Non sono un musicista.

Comunque mi copio la lista delle note......e poi mi invento i tempi...magari faccio una melodia
di grande sul cesso :drooling_face: :drooling_face: 8) 8)

non avreste per caso qualche link
con musiche già pronte
:cold_sweat: :cold_sweat:

Cosi poi me le processo io magari arrangiando i tempi.

Poi magari mi studio cosa è un MIDI.

Datman:
...oppure come code.

Giusto, errore mio ... non ci avevo neppure pensato ... :astonished:

Vedi se questo ti può aiutare:
http://diwo.bq.com/it/do-re-mi-fa-sol-creare-melodie-con-bitbloq/

mi sento già musicista

sento in sottofondo la musica de "L'ULTIMO DEI MOICANI"
ed in prima linea la musica de "PIRATI AI CARAIBI"

qui la musichetta di super mario :slight_smile:
qui la marcia imperiale di star wars
qui i pirati dei caraibi titanic e altre

googla "arduino play music with tone" per altri siti :wink:

Grazie

avevo dimenticato quando da piccolo provavo a cimentarmi con una chitarra da 50mila Lire......scordata.(+ 50mila per le corde nuove e l'accordatura).

E' interessante

a parte migliorare i vecchi progetti non avevo più idee,ma grazie ad u semplice buzzer,mi sono venute in mente idee nuove...mi immagino già 8 buzzer suonatori ed io che faccio il DIRETTORE DI ORCHESTRA al........CONCERTONE DELL'ANNO.

:wink: :wink: :wink: :wink: 8) 8) 8) 8) 8) :wink: :wink: :wink: :wink: ;D ;D ;D ;D

Puso:
non avevo più idee,ma grazie ad u semplice buzzer,mi sono venute in mente idee nuove...mi immagino già 8 buzzer suonatori

Hehe, beh ma allora fai prima a prenderti una qualsiasi schedina mp3 per Arduino, in genere hanno anche un lettore di schede SD, dove ci carichi gli mp3 e di fatto puoi suonare qualsiasi cosa (qui si, che avresti un repertorio quasi infinito...) tra l'altro senza impegnare la CPU o la sua RAM...

se compro una cosa gia fatta e funzionante
dove stà il divertimento????

be ma allora fai qualche cosa così :smiley: :smiley: