Energia di una fascia di frequenze
È il livello di una fascia di frequenze, per esempio quella dei bassi, e permette di seguire le diverse parti di un brano. Con le 32 bande predefinite di p5.FFT ogni banda è già una fascia abbastanza larga, e basta leggerne il livello in decibel, come nello spettrogramma.
Files
- CARTELLA-SKETCH
- index.html
- sketch.js
- style.css
- like_analogue.mp3
- liszt.mp3
Algoritmo
all'avvio: setup()
caricare il brano e creare l'analisi con 32 bande p5.FFT
chiedere i livelli in decibel normalRange
collegare il brano all'analisi connect()
a ogni fotogramma: draw()
leggere il livello di ogni banda di frequenza analyze()
per la banda dei bassi, quella dei medi e quella degli acuti:
trasformare il livello in un diametro map()
disegnare un cerchio con quel diametro
a ogni clic: mousePressed()
avviare il brano, o fermarlo se è in esecuzione
Istruzioni
Senza un numero fra le parentesi l’analisi divide lo spettro in 32 bande. Lo spettro arriva alla metà della frequenza di campionamento dell’audio, che dipende dal computer: con 48000 campioni al secondo arriva a 24000 Hz, e ogni banda copre circa 750 Hz. La seconda riga fa restituire ad analyze() i livelli in decibel, come nello spettrogramma.
Il livello della banda, in decibel come nello spettrogramma, diventa un diametro da 0 a 200 pixel, l’altezza della tela. Con true i livelli sotto -100 decibel danno 0, anche prima che il brano parta, quando valgono -Infinity: senza, il diametro sarebbe negativo, e p5.js disegnerebbe comunque il cerchio, come se fosse positivo. Con 48000 campioni al secondo, le tre bande usate sono:
| Variabile | Banda | Frequenze |
|---|---|---|
bassi | spectrum[0] | fino a circa 750 Hz |
medi | spectrum[2] | intorno a 1500 Hz |
acuti | spectrum[4] | intorno a 3000 Hz |
Variazioni
Con il secondo audio presente nella cartella dello sketch, un brano elettronico, i tre cerchi sono di solito più grandi, soprattutto quello rosso dei bassi:
Note
Con p5.js 1 la versione precedente di p5.sound.js aveva il metodo
getEnergy(), che nella versione 0.4.1 non c’è più, con cinque fasce predefinite:La guida a p5.sound.js ricostruisce
getEnergy()con le stesse cinque fasce, facendo la media di più bande.