1. le latenze nel linguaggio dipendono da come programmi, ma in generale anche le istruzioni più lente si misurano in microsecondi.
Per capirci: riflessi umani circa 20millisecondi (1secondo = 1000ms), le istruzoni più lente in arduino (analogRead) impiega 200 microsecondi, le istruzioni più basiche nell'ordine dei nanosecondi (un miliardesimo di secondo)..
se anche ci fossero grandi latenze, poi puoi giocartela in modo che siano fisse, quindi introduci un ritardo, non una deformazione del tempo. Diciamo che arduino può tranquillamente sostituire il metronomo, i suoi timer interni sbagliano di qualche minuto al giorno, un errore assai insignificante per i tuoi scopi.
Quindi la vera domanda è: tu di quanta precisione hai bisogno?
2. la libreria TONE e un buzzer da pc sembrano fare al caso tuo.
3. quello che vuoi fare con buzzer e libreria tone è un esempio classico che trovi in mille salse, e proprio per la sua semplicità non lo trovi "precotto". Le shield si usano quando vuoi creare un lettore MP3.. Inizia a far suonare il buzzer, poi introdurre i tuoi ritmi, ed infine bottoni e lcd.
Grazie mille per la tua risposta.
Rispetto alla precisione, tipicamente i metronomi variano la frequenza da 30 a 250-300 battiti per minuto.
Questa è la funzione più elementare perché scandiscono i quarti che è la principale suddivisione.
A volte si suddivide ulteriormente ciascun quarto in 2,3,4,5,6,7 (ci si può spingere anche oltre ma è molto raro).
Supponiamo di fermarci a 7 abbiamo 300*7=2100 bpm (che è una frequenza continua più che un insieme di colpi distinguibili).
Questo discorso vale quando i colpi sono regolari. Ci sono situazioni nelle quali i colpi non sono equidistanti, come ad esempio per i ritmi latini o per ritmi che uno può costruirsi autonomamente. Quindi se un ritardo è distribuito su tutti e sono equidistanti non ci dovrebbero essere problemi perché al limite si aumenta la velocità. Se viceversa ho battiti non omogenei potrei introdurre ritardi prima di un battito ma non per una pausa deformando leggermente il ritmo stesso. Da quello che mi hai fatto capire mi sembra che la cosa sia abbastanza trascurabile. Una cosa che mi viene in mente ora è riprodurre comunque delle sequenze omogenee inserendo dei suoni inudibili.
Per la 2 non credo di avere grossi problemi: già ho trovato e letto parecchie cose.
La cosa che non sono riuscito a trovare (molto probabilmente perché la cerco in modo sbagliato) è come inviare il segnale del buzzer ad un amplificatore che:
1. sia adatto a cuffie e line out
2. disinserisca il buzzer quando si inserisce il jack
3. abbia un volume regolabile
4. consumi poco (perché verosimilmente il metronomo dovrà funzionare a batterie, deve essere compatto e portatile)
Grazie infinite per i tuoi consigli e buona giornata :-)