PDA

View Full Version : [frequenze] la frequenza del mio vecchio flauto dolce...


mamo139
29-01-2010, 17:23
premetto che non sono un musicista...
ho scritto un programma che rileva la frequenza principale dei suoni che il pc registra con il microfono.

per testarlo ho ben pensato di andare a ripescare il mio buon vecchio flauto dolce, che sapevo usare benissimo alle elementari.:sofico:

Lo prendo, metto le dita in posizione LA, suono... e il programma mi registra 875Hz... mentre io mi aspettavo un 440Hz...

le opzioni sono tre...
- io mi sono fuso il cervello e non mi ricordo piu come si fa il LA, opzione che mi sentirei di scartare. :fagiano:
- ho sbagliato qualcosa per cui non calcola bene la frequenza.
- il flauto dolce effettivamente fa un LA a 880Hz... anche se mi sembrava di ricordare che il La base (perdonatemi, ma di terminologia musicale non so proprio niente) fosse a 440Hz per tutti gli strumenti...

Jarni
29-01-2010, 17:43
Avrà registrato un'armonica di ordine 2...

mamo139
29-01-2010, 18:13
Avrà registrato un'armonica di ordine 2...

parli del flauto o del programma?? :stordita:

stbarlet
29-01-2010, 18:31
parli del flauto o del programma?? :stordita:

Del programma.. il flauto non produce solo la frequenza base, ma anche diverse armoniche.. per qualche ragione il programma ha individuato l'armonica a circa 880Hz.

Jarni
29-01-2010, 18:41
Del programma.. il flauto non produce solo la frequenza base, ma anche diverse armoniche.. per qualche ragione il programma ha individuato l'armonica a circa 880Hz.

Sarà la frequenza di campionamento...

mamo139
29-01-2010, 18:46
Del programma.. il flauto non produce solo la frequenza base, ma anche diverse armoniche.. per qualche ragione il programma ha individuato l'armonica a circa 880Hz.

oh capisco... perche praticamente il programma individua la frequenza che la trasformata di fourier rileva come la piu intensa.

qui potete vedere:
http://img341.imageshack.us/img341/527/voiceanalyzer.jpg
praticamente si vede nel grafico rosso che vengono riconosciute come piu intense le varie frequenze multiple di 440 hz, 440 hz compresa

cercando su internet avevo trovato questa tabella:
http://www.febat.com/Musica/Musica_frequenze_musicali.html
e quindi avevo pensato che magari il mio flauto fa un LA5 al posto di un LA4...

è una spiegazione convincente oppure meglio che lavori per fargli dire 440hz (magari è un problema di approssimazione)?

ps: ho provato a riprodurre artificialmente con le casse del pc un'onda sinusoidale a 440hz e ascoltarla con il microfono... questa l'ha registrata perfettamente a 440hz

Jarni
29-01-2010, 18:56
ps: ho provato a riprodurre artificialmente con le casse del pc un'onda sinusoidale a 440hz e ascoltarla con il microfono... questa l'ha registrata perfettamente a 440hz

Sì, ma suppongo abbia generato una sinusoide, è normale che abbia "beccato" la frequenza giusta.
Il timbro degli strumenti musicali è molto più disordinato, ha sempre componenti di altre frequenze, per qualche motivo quel programma ha rilevato un'armonica di intensità superiore...

bio82
29-01-2010, 19:15
- il flauto dolce effettivamente fa un LA a 880Hz... anche se mi sembrava di ricordare che il La base (perdonatemi, ma di terminologia musicale non so proprio niente) fosse a 440Hz per tutti gli strumenti...

l'ottava, questa sconosciuta... :D

440hz corrisponde al la...se raddoppi la frequenza sali di un'ottava...il flauto dolce delle medie non produrrà mai un la a 440...ma puoi fare il la a 1760, se non ricordo male tappando il primo foro in alto, il secondo il quarto il quinto e a metà il foro posteriore...

il tuo flauto dolce ha un la a 875 hz...il che significa che è pure calante :sofico:

bio

mamo139
29-01-2010, 19:23
l'ottava, questa sconosciuta... :D

440hz corrisponde al la...se raddoppi la frequenza sali di un'ottava...il flauto dolce delle medie non produrrà mai un la a 440...ma puoi fare il la a 1760, se non ricordo male tappando il primo foro in alto, il secondo il quarto il quinto e a metà il foro posteriore...

il tuo flauto dolce ha un la a 875 hz...il che significa che è pure calante :sofico:

bio

questa spiegazione mi potrebbe piacere tantissimo, perche significa che forse non devo mettermi a spulciare errori nel mio programma :fagiano:

a questo punto ti devo chiedere: come mai dici che non farà mai un la a 440?? significa che sai che fa di base il la a 880?? :confused:

ps: mi piacerebbe provare quella combinazione di tasti che dici ma mi sembra troppo complicata, soprattutto il tappare a metà un foro... :eek:

bio82
29-01-2010, 19:26
questa spiegazione mi potrebbe piacere tantissimo, perche significa che forse non devo mettermi a spulciare errori nel mio programma :fagiano:

a questo punto ti devo chiedere: come mai dici che non farà mai un la a 440?? significa che sai che fa di base il la a 880?? :confused:

ps: mi piacerebbe provare quella combinazione di tasti che dici ma mi sembra troppo complicata, soprattutto il tappare a metà un foro... :eek:

la nota più bassa che può fare è un do dell'ottava del la (intorno ai 500hz, controlla la tabella che hai postato), quindi non puoi arrivare al la da 400hz...

il la dell'ottava sopra non è difficile da fare...per tappare il mezzo foro dietro basta abbassare il pollice ed appoggiarlo appena appena sul foro...poi devi sostenere il suono perchè è una nota abbastanza alta :D

bio

frankytop
29-01-2010, 21:22
Bel programmino il tuo.

Per testarlo vorrei suggerirti un software freeware e opensource molto bello che in pratica nella sua funzione principale è un registratore ma tra le altre varie funzioni genera anche varie frequenze sonore impostabili per caratteristiche e variabilità (io lo uso per testare amplificatori a valvole).

il software scaricabile è il seguente Audacity (http://audacity.sourceforge.net/?lang=it).

Io ti consiglio di scaricare la versione 1.3.11 (beta) piuttosto che la 1.2.6 perchè la prima è molto più completa visto che ci sono altre funzioni ed è prevista la possibilità di scegliersi la forma d'onda del segnale: sinusoidale,quadra e triangolare. (così puoi testare anche la trasformata di Fourier)

lowenz
29-01-2010, 21:43
Come ti hanno detto è questione di ottave :D

Posso chiederti come hai implementato il riconoscimento (non a livello di codice eh, racconta come hai realizzato il riconoscitore, sempre se vuoi)?

Studi a Milano? Sarà mica un progettino per Sarti&Co. del PoliMI? :p

Dumah Brazorf
29-01-2010, 22:40
premetto che non sono un musicista...
ho scritto un programma che rileva la frequenza principale dei suoni che il pc registra con il microfono.

per testarlo ho ben pensato di andare a ripescare il mio buon vecchio flauto dolce, che sapevo usare benissimo alle elementari.:sofico:

Lo prendo, metto le dita in posizione LA, suono... e il programma mi registra 875Hz... mentre io mi aspettavo un 440Hz...

Hai un flauto che lavora in DDR :O

Athlon
29-01-2010, 23:19
Hai un flauto che lavora in DDR :O

:D :D :D :D che bello per un attimo non mi sento un NERD .. ci ho messo quasi 5 secondi prima di capire la battuta


:mbe: :mbe: :mbe: :muro: :muro: :muro: :muro:
pero' adesso mi sento vecchio DDR , mi ha fatto venire in mente la Germania


A parte le freddure , per controllare se il software interpreta correttamente le armoniche prova a fare un controllo con una sinuosoide 440Hz , la ascolti e senti se e' della stessa tonalita' del LA del flauto.

Comunque una piccola modifichina che farei al programma sarebbe quella di dare in output anche le altre frequenze piu' rilevate , almeno le prime 3 , cosi' fai presto a vedere se si tratta di un armonica che sovrasta la frequenza principale o se ha campionato la frequenza giusta

lowenz
29-01-2010, 23:30
:mbe: :mbe: :mbe: :muro: :muro: :muro: :muro:
pero' adesso mi sento vecchio DDR , mi ha fatto venire in mente la Germania
*

bio82
30-01-2010, 10:30
A parte le freddure , per controllare se il software interpreta correttamente le armoniche prova a fare un controllo con una sinuosoide 440Hz , la ascolti e senti se e' della stessa tonalita' del LA del flauto.


dipende dall'ottava ma un la è un la quindi ti può sembrare la stessa identica nota..:D

cmq domani tiro fuori il flautino e sento che ottava è...

bio

mamo139
30-01-2010, 10:50
Come ti hanno detto è questione di ottave :D

Posso chiederti come hai implementato il riconoscimento (non a livello di codice eh, racconta come hai realizzato il riconoscitore, sempre se vuoi)?

Studi a Milano? Sarà mica un progettino per Sarti&Co. del PoliMI? :p

Si certo che puoi... :p
Allora, c'è la parte di acquisizione audio e quella di elaborazione del buffer registrato.
Vabbè con le Api di windows registrare su un buffer è semplice. Registro a gruppi di 2024 byte, a campioni di 8bit (i piu facili da trattare visto che 1byte=1campione,) e 16000 campioni per secondo, quindi tratto e visualizzo 125 millisecondi piu o meno.

Per quanto riguarda l'elaborazione, uso semplicemente una trasformata di fourier discreta, precisamente utilizzo una trasformata di fourier veloce, che è uno dei tanti algoritmi ottimizzati che richiedono il minor tempo di calcolo possibile.

La parte di elaborazione dati è asincrona rispetto alla parte di acquisizione, in questo modo l'acquisizione e la visualizzazione sono in tempi perfettamente reali, senza perdita di traccia audio.

registrando audio a gruppi di 125 millisecondi, per fare in modo di non perdere audio, mi basta manetere il tempo della elaborazione e disegno sotto il tempo della registrazione, essendo i processi asincroni e paralleli.

per ora elaborazione e visualizzazione mi portano via fra i 16 e i 40 millisecondi, quindi ho ancora tanto tempo da spendere in qualche altra elaborazione, devo solo pensare a cosa altro si puo analizzare di interessante. :)

ps: si, studio a Milano, ma non faccio ingegneria, in realtà sono uno studente di finanza. ;)


cmq domani tiro fuori il flautino e sento che ottava è...

bio

questa sarebbe una gran cosa :)

mixkey
30-01-2010, 11:37
premetto che non sono un musicista...
ho scritto un programma che rileva la frequenza principale dei suoni che il pc registra con il microfono.

per testarlo ho ben pensato di andare a ripescare il mio buon vecchio flauto dolce, che sapevo usare benissimo alle elementari.:sofico:

Lo prendo, metto le dita in posizione LA, suono... e il programma mi registra 875Hz... mentre io mi aspettavo un 440Hz...

le opzioni sono tre...
- io mi sono fuso il cervello e non mi ricordo piu come si fa il LA, opzione che mi sentirei di scartare. :fagiano:
- ho sbagliato qualcosa per cui non calcola bene la frequenza.
- il flauto dolce effettivamente fa un LA a 880Hz... anche se mi sembrava di ricordare che il La base (perdonatemi, ma di terminologia musicale non so proprio niente) fosse a 440Hz per tutti gli strumenti...

No, il La del flauto dolce e' 880 Hz. Il la non e' 440 per tutti gli strumenti che ne hanno non solo uno, uguali, multipli o sottomuntiplici di 440 Hz.

lowenz
30-01-2010, 13:07
ps: si, studio a Milano, ma non faccio ingegneria, in realtà sono uno studente di finanza. ;)
Apperò, BRAVO! :)

MetalluS
30-01-2010, 14:29
se vuoi testare il tuo programma puoi comprarti un diapason di quelli piccoli che vendono nei negozi di strumenti musicali, costerà 3€ a dir molto, oppure soluzione ancora più economica ti basta alzare la cornetta del telefono, il tu tuu che senti è un la a 440 Hz.

ServiceXone
30-01-2010, 19:49
Lo stesso principio dovrebbe essere utilizzato anche per l'accordatore elettronico...
GuitarTuner (http://www.aptuner.com/cgi-bin/aptuner/apmain.html)
ma anche nella funzione degli analizzatori di spettro di molti player..
(in quello di windos, cmq. mi sembra che hanno aggiunto noise allo spettro imho,
magari solo per farlo più feschion.. :asd: )

mamo139
31-01-2010, 01:06
attento che un segnale audio è in generale non stazionario e in tali casi una semplice fft non ti da informazioni "affidabili"

intendi dire che se c'è un cambiamento di frequenze dentro al segmento che analizzo l'fft sballa?

... se si, cosa consigli per rimediare?

mamo139
31-01-2010, 10:05
la FFT presuppone che il segnale sia stazionario, cioè che le frequenze siano sempre le stesse... come dici tu. ovvero va bene per i toni puri, come le armoniche di uno strumento che suona sempre la stessa nota, ma in generale se vuoi analizzare una frase, devi usare una FFT "tempo variante". il tuo approccio è comunque più o meno corretto perchè partizioni il segnale e ne fai via via la FFT (mi pare di aver capito) su questi blocchi, l'unica accortezza che devi avere è partizionare il segnale in intervalli tali in cui si può assumere che il segnale audio sia stazionario, e il range di stazionarietà per il segnale audio mi pare di ricordare che sia nell'ordine dei millisecondi, quanti ora non mi ricordo (intorno ai 50 - 100 ma non sono sicuro).

sisi hai capito bene, faccio così! attualmente partiziono a gruppi di 120 ms piu o meno.

l'ho trovato, nel GSM presuppongono un range di 20 ms.

20 ms :eek:

mhhh... adesso provo a fare con 50 ms che mi sembra onesto :fagiano: (piu che altro scendo lentamente verso il 20ms e vedo fino a quanto l'algoritmo di fft e quello di disegno reggono)