Visualizzazione dei campioni audio

// height=200 lines=auto
let sound;
let fft;

function preload() {
    sound = loadSound( 'assets/liszt.mp3' );
}

function setup() {
    createCanvas( 512, 200 );

    sound.loop();
    fft = new p5.FFT();
}

function draw() {
    background(0);

    let samples = fft.waveform( 512 );

    for (let i=0; i<samples.length; i++) {
        let gray = map( samples[i], -1,1, 0,255 );
        stroke( gray );
        line( i,0, i,height );
    }
}
fft = new p5.FFT();

Crea un'stanza della classe p5.FFT che permette di fare una serie di analisi sull'audio in esecuzione.

let samples = fft.waveform( 512 );

Crea un array di 512 elementi (samples) con i campioni del frammento audio in esecuzione.

let gray = map( samples[i], -1,1, 0,255 );

Ottieni un valore di grigio (da 0 a 255) proporzionale al campione analizzato (samples[i]) che ha invece un intervallo diverso (da -1 a +1).

Provare a usare il secondo audio presente nella cartella "assets":

sound = loadSound( 'assets/like_analogue.mp3' );

Strutturazione dei file: