These are chat archives for SMERM/smerm.github.io

27th
Nov 2015
mag
@DavideMaggio
Nov 27 2015 16:45
c'è nessuno in ascolto? ho un quesito da porre sull'FFT ...
Giuseppe
@grammaton
Nov 27 2015 16:53
Io @DavideMaggio ma non so se sono capace a risponderti. Prova. Al massimo poi faccio finta di non esserci.
mag
@DavideMaggio
Nov 27 2015 17:01
eheh... ok... allora, faccio un FFT con una finestra d'analisi di 1024 frames
il problema è capire come funzionano i 'bins' hai presente?
leggo su google: numeroFrame/2 = numero di bins
quindi: (sampleRate/2)/numero di bins = Hz per bin
è corretto secondo te?
mag
@DavideMaggio
Nov 27 2015 17:08
perchè non mi torna ciò che dovrebbe tornarmi e non capisco se è sbagliato quel calcolo o sto sbagliando altro...
stai facendo finta di non esserci? :)
mag
@DavideMaggio
Nov 27 2015 17:15
vabbè... la domanda resta ai posteri...
Giuseppe
@grammaton
Nov 27 2015 17:31
No no… è che se non mi citi non mi notifica
@DavideMaggio binsize = fc / winsize
mag
@DavideMaggio
Nov 27 2015 17:36
@grammaton .. ops... non c'ero arrivato...
@grammaton quindi è sbagliato il mio calcolo
mag
@DavideMaggio
Nov 27 2015 17:41
@grammaton ... e la cosa mi rincuora... grazie per ora... ma mi sa che tornerò :)
Giuseppe
@grammaton
Nov 27 2015 17:50
Be si credo sia sbagliato @DavideMaggio
Costa Devi fare col numero?
Qui
Qui Trovi tutto
Nicola Bernardini
@nicb
Nov 27 2015 17:58
@DavideMaggio e comunque
mag
@DavideMaggio
Nov 27 2015 17:58
@grammaton ... ok, no il numero mi serve per calcolarmi la freq nello spettro
Nicola Bernardini
@nicb
Nov 27 2015 17:58
binsize = fc/winsize;
@DavideMaggio se fai una finestra di 1024 campioni e la frequenza di campionamento è di 44100, il binsize è (a un cipresso) 44 Hz
dov'è che hai letto uno scempio come quello scritto sopra?
mag
@DavideMaggio
Nov 27 2015 18:01
@nicb ... ok, quindi io ho un array col bin dentro e moltiplico l'indice per il binsize ...
Nicola Bernardini
@nicb
Nov 27 2015 18:02
@DavideMaggio quello ti da la frequenza nominale del bin
per avere la frequenza effettiva del bin
o fai il calcolo della fase finale, la differenza con la fase finale nominale del bin e poi ricalcoli la frequenza in base alla differenza di fase (il meccanismo del phase vocoder, per intenderci)
oppure fai l'interpolazione parabolica tra il bin centrale e i due bin laterali (meccanismo degli sms-tools di Serra)
questo se ti serve la frequenza precisa
mag
@DavideMaggio
Nov 27 2015 18:06
@nicb ... ok... cioè ok è una parola grossa ... :) ... adesso però capisco perchè non mi torna ciò che mi aspetto... va bene... devo studiare...
Nicola Bernardini
@nicb
Nov 27 2015 18:07
@DavideMaggio madonna santa
@DavideMaggio il punto è questo: quando fai la trasformata di Fourier con una certa finestra,
tu moltiplichi per frequenze multiple di quella finestra (e quelle sono le frequenze nominali)
cioè moltiplichi la tua funzione per eikωte^{-ik\omega t}
dove ω\omega è la frequenza di un periodo dentro alla finestra
e kk è un intero
quindi sono tutti multipli della frequenza della finestra
se la tua funzione non è una funzione periodica multipla di quella frequenza di base (cioè esattamente allineata con i bin)
allora l'indicazione della frequenza nominale non sarà precisa
Nicola Bernardini
@nicb
Nov 27 2015 18:12
ma è altrettanto ovvio che se aumenti la precisione della trasformazione
mag
@DavideMaggio
Nov 27 2015 18:12
@nicb ok
Nicola Bernardini
@nicb
Nov 27 2015 18:12
ti avvicinerai sempre di più alla tua frequenza
sono stato spiegato?
mag
@DavideMaggio
Nov 27 2015 18:12
@nicb ho più probabilità di beccarla giusta...
Nicola Bernardini
@nicb
Nov 27 2015 18:13
per saperla esatta è un altro paio di maniche
ci devi lavorare sopra
con uno dei due metodi che ti ho detto, o forse anche altri
io conosco quei due
forse se uno facesse un'interpolazione di Lagrange su 5-7 bin avrebbe una precisione ancora maggiore
mag
@DavideMaggio
Nov 27 2015 18:14
@nicb ... ok, questi due metodi sono plausibili per un uso in 'realtime'?
Nicola Bernardini
@nicb
Nov 27 2015 18:14
@DavideMaggio dipende da un sacco di fattori
per un uso realtime devi usare comunque finestre piccoline
e poca risoluzione frequenziale
il problema è che prima di fare quelle operazioni
devi beccare il picco
ossia devi fare un thresholding della funzione (prendere solo la roba sopra tot db dal fondo)
e poi derivate locali delle "regioni emerse" dal thresholding
lì trovi i ipicchi
ma cosa stai cercando di fare? un pitch detector?
mag
@DavideMaggio
Nov 27 2015 18:17
@nicb ... e io che pensavo di cavarmela normalizzando e sortando un array :)
Nicola Bernardini
@nicb
Nov 27 2015 18:18
dipende perché devi farlo in tempo reale
cos'è che vuoi ricavare alla fine? perché forse si fa in un altro modo...
mag
@DavideMaggio
Nov 27 2015 18:18
@nicb cerco di fare una roba che mi tiri fuori ad esempio i primi 5 armonici da un suono (in realtime) e quei 5 valori diventino 5 controlli di altre cose...
Nicola Bernardini
@nicb
Nov 27 2015 18:19
va bene
ma i valori devono essere proprio precisi precisi o bastano le frequenze nominali?
perché sta roba non puoi farla con finestre grandi
perché altrimenti i controlli cambiano troppo lentamente
devi comunque pensare di fare una STFT
quindi devi decidere non soltanto la larghezza della finestra ma anche lo hopsize
poi farci sopra tutto il lavorino finestra per finestra
e alla fine di tutti i valori che tiri fuori prendi i primi cinque
mah
mag
@DavideMaggio
Nov 27 2015 18:22
@nicb non si può fare con finestre grandi per questioni di lentezza quindi...
Nicola Bernardini
@nicb
Nov 27 2015 18:23
@DavideMaggio no il punto è che puoi farlo con finestre grandi e hopsize piccoli, ma vai subito verso l'esplosione computazionale
aggiungi che se fai con segnali audio (segnali reali)
devi farli con finestre zero-phase
cioè con finestre che prendono il segnale dal centro della finestra
quindi il meccanismo è il seguente:
  1. prendi un numero asimmetrico di campioni (p.es 511)
  1. lo metti in un array potenze di due (p.es. 512) pieno di zeri facendo in modo che il campione centrale sia il campione centrale + 1 dell'array potenze di due (consideriamo lo zero pari positivo)
vabbè non mi numera le liste sto cz di markdown
  1. poi fai l'analisi
  1. poi il thresholding
  • poi le derivate parziali
  • poi l'interpolazione parabolica
Nicola Bernardini
@nicb
Nov 27 2015 18:28
e quindi da lì ottieni un array (sortato) di frequenze rilevanti
non è una passeggiata di salute
mag
@DavideMaggio
Nov 27 2015 18:29
@nicb ... delirio... ma lei dice non si può fare per una questione di capacità di calcolo?
Nicola Bernardini
@nicb
Nov 27 2015 18:29
@DavideMaggio non ho detto che non si può fare
diciamo che ti ci vuole una macchina robusta :-)
mag
@DavideMaggio
Nov 27 2015 18:30
@nicb ecco... questo volevo capire :)
Nicola Bernardini
@nicb
Nov 27 2015 18:31
@DavideMaggio forse sarebbe il momento buono per fare un plugin per puredata o Max/MSP che fa le STFT in maniera seria e rileva i picchi
Mi ricordo che avevo visto Miller Puckette farlo una volta alla ICMC del 2007 ma quegli oggetti la non sono mai stati pubblicati, che io sappia
Comunque dovrei averceli nei proceedings di quella conferenza
mag
@DavideMaggio
Nov 27 2015 18:32
@nicb anche :) ... io stavo provando a farlo in supercollider...
Nicola Bernardini
@nicb
Nov 27 2015 18:32
beh supercollider dovrebbe essere parecchio efficiente sai?
forse gliela fai
ma usi supercollider su linux?
mag
@DavideMaggio
Nov 27 2015 18:33
@nicb si infatti... finora mi sta dando molte soddisfazioni
Nicola Bernardini
@nicb
Nov 27 2015 18:33
@DavideMaggio beh però sei un po' stronzo, eh?
potresti anche insegnarcelo a noi no? :-)
mag
@DavideMaggio
Nov 27 2015 18:34
@nicb è una bestia il nuovo server ... 'supernova' ... usa il multithreading e si spande automaticamente su tutti i miei 8 processori...
Nicola Bernardini
@nicb
Nov 27 2015 18:34
@DavideMaggio dici che sul mio Atom dualcore funziona pure? ahahahahah
mi dovrò mettere a studiarlo
mag
@DavideMaggio
Nov 27 2015 18:35
@nicb magari... quando volete io ci sono :)
@nicb non avrà difficoltà... è praticamente smalltalk
Nicola Bernardini
@nicb
Nov 27 2015 18:36
@DavideMaggio: vabbane. Allora proporrò l'idea
Lanceremo presto n seminari hands on su supercollider
mag
@DavideMaggio
Nov 27 2015 18:38
@nicb io ci sto... in qualche modo troverò il tempo...
Nicola Bernardini
@nicb
Nov 27 2015 18:39
@DavideMaggio va bene. Non è per subito perché abbiamo un mare di altre cose da chiudere, ma appena possibile facciamo.
mag
@DavideMaggio
Nov 27 2015 18:39
@nicb ..fuggo che l'aperitivo mi chiama... si si parliamone cmq.. :)
Nicola Bernardini
@nicb
Nov 27 2015 18:39
@DavideMaggio beato te. Ciao.
Nicola Bernardini
@nicb
Nov 27 2015 23:43
@/all nuova struttura che stanno costruendo al KTH a Stoccolma:
tre nuove sale da concerto, una con cupola di altoparlanti incorporata...
Elena D'Alò
@nenelenen
Nov 27 2015 23:48
@nicb occupiamo Stoccolma?
Nicola Bernardini
@nicb
Nov 27 2015 23:48
@nenelenen eh verrebbe da farlo, altro che terroristi islamici