Aiuto per un primo progetto di trasduttore di suono: spettro in frequenza.

Salve a tutti,
sono Matteo Marzo e come appena scritto nel post di presentazioni sono un ingegnere spaziale.
Non mi sono mai occupato praticamente di elettronica, anche se ne ho avuto sempre la passione, sino a che a Natale mi sono regalato un Arduino Starter Kit.
Sono dunque un neofita in questo campo, ma vorrei parlarvi di un mio piccolo primo progetto, forse un po' ardito, ma mi ci vorrei cimentare.
Premettendo che so programmare in Matlab e Fortran ed ho già iniziato a scrivere in IDE per fare qualche piccola prova con Arduino, vorrei strutturare un dispositivo che "ascoltando" una nota, magari di un flauto o una tastiera, riesca in tempo reale a decifrarne lo spettro in frequenza. Questo mi serve perchè in seguito dovrò fare in modo che l'analisi spettrale sia tale per cui ad una data nota corrisponda ad esempio l'accensione di un led o il moto di una parte meccanica.
Mi piacerebbe parlarne con voi per iniziare a valutare un po' di questioni preliminari, dal momento che ho poche competenze in materia ed inizio da zero.
Innanzitutto: è fattibile con Arduino? C'è qualcuno che può darmi qualche spunto e consigliarmi del materiale da studiare ed a cui attingere per iniziare il mio progetto, sia dal punto di vista software, sia hardware?

Be', la prima cosa che mi viene in mente e' che devi trovare un microfono con il massimo possibile di linearita' nel piu ampio spettro audio possibile, e per quello che ne so (poco, in realta'), solo alcuni tipi da laboratorio o per analisi spettrale dei rumori lo sono, ed hanno prezzi assurdi (ad esempio i Bruel & Kjaer e simili) ... poi ti serve uno stadio preamplificatore con la piu bassa distorsione possibile ed un campionatore A/D di alta qualita' e risoluzione (non quello interno di Arduino che campiona solo 10bit), se vuoi realmente eseguire analisi spettrali complesse ... ma a questo punto non so se Arduino poi ci sta dietro come velocita' ...

Probabilmente si, se ci devi fare solo la banda audio, anche campionando a 20 volte la frequenza massima, che non e' tantissimo (20KHz, 2 canali per la stereofonia, quindi dovresti campionare a 800KHz), ma credo dipenda dal software ... Per l'hardware ormai quelle frequenze sono abbondantemente superate e non dovrebbe creare problemi usare, ad esempio, degli AD7626, degli LTC2208, o altri ADC simili ...

Ma intendi singole note o "rumori" complessi ? ... una singola nota, per definizione, non ha "spettro" in senso tecnico, e' (o dovrebbe essere, in teoria), una sinusoide perfetta a frequenza fissa e senza armoniche, quindi il suo "spettro" sarebbe una singola linea (questo ovviamente parlando di "note ideali", poi e' ovvio che ogni strumento possiede caratteristici spettri complessi per ogni singola nota ... suppongo tu intenda in questo senso, giusto ?)

EDIT:

... ad una data nota corrisponda ad esempio l'accensione di un led o il moto di una parte meccanica ...

Uhm ... vuoi costruire una scultura cinetica interattiva ? ... :wink: XD

Se non devi distinguere un flauto da un pianoforte non serve lo spettro ma solo la frequenza principale (quella piú forte) e non le armoniche.
Percui mi sebra il consiglio di Etemenanki esagerato.
Ciao Uwe

No, no, io parlavo ovviamente di "analisi di spettro", perche' lui aveva detto di voler decifrare gli spettri, non solo di misurarne la frequenza ... certo che per la sola frequenza sarebbe esagerato :wink:

Ok, ridimensioniamo e circoscriviamo ulteriormente :smiley:
Se suono un LA, ad esempio, diciamo che vorrei si accendesse un led rosso, se suono un MI un led verde.
Idee o materiale, eventualmente sia di acustica sia di elaborazione dei segnali, da suggerirmi? XD

Be', in quel caso ti serve solo discriminare la frequenza, non analizzarne lo spettro :stuck_out_tongue: ... microfono standard, anche quelli da PC, un circuitino squadratore elementare, un'ingresso per leggerci la frequenza con una certa approssimazione ...

Credo che qualcuno abbia gia realizzato degli sketch tipo frequenzimetri per Arduino (dato che e' in banda audio, non serve che leggano piu di una trentina di KHz a stare abbondanti), suppongo che li si possa unire ad una tavola che contiene le frequenze delle note, ed effettuare un controllo con quei valori (con un minimo di tolleranza, ovviamente), in modo che a determinate "bande" di frequenza corrisponda l'attivazione di determinate uscite (ma qui mi perdi, io sono un'hardwarista, non un programmatore :P)

matteo_marzo:
Se suono un LA, ad esempio, diciamo che vorrei si accendesse un led rosso, se suono un MI un led verde.
Idee o materiale, eventualmente sia di acustica sia di elaborazione dei segnali, da suggerirmi? XD

Qui trovi un progetto che fa quello che chiedi.

il link del post precedente non funziona. potrei avere un link funzionante?

il link fa riferimento a "arduino musical note recognition ", prova a cercare su google