Deux directions

La sonification désigne deux pratiques distinctes mais liées :

1. Données → son : transformer un jeu de données en signal audio pour le rendre perceptible à l'oreille (utilisé en science, accessibilité, art)

2. Son → image : analyser un signal audio et en dériver des formes visuelles (utilisé en visualisation musicale, installations)

Les deux partagent un principe central : le mapping — associer une dimension des données à une propriété du son ou de l'image.

Son → image en p5.js

p5.js intègre une bibliothèque audio (p5.Sound) qui permet d'analyser le son en temps réel. La classe p5.Amplitude mesure le volume global ; la classe p5.FFT décompose le signal en fréquences.

Exemple : cercle qui réagit au volume


let mic, amp;
function setup() {
  createCanvas(400, 400);
  mic = new p5.AudioIn();
  mic.start();
  amp = new p5.Amplitude();
  amp.setInput(mic);
}
function draw() {
  background(11, 15, 20, 40);
  let level = amp.getLevel(); // 0-1
  let r = map(level, 0, 0.5, 10, 200);
  noStroke(); fill(55, 227, 195, 180);
  ellipse(width/2, height/2, r*2);
}

Exemple : spectre de fréquences (FFT)


let fft;
function setup() {
  createCanvas(400, 400);
  let mic = new p5.AudioIn(); mic.start();
  fft = new p5.FFT(); fft.setInput(mic);
}
function draw() {
  background(11, 15, 20);
  let spectrum = fft.analyze(); // tableau de 512 valeurs (0-255)
  noStroke(); fill(55, 227, 195, 180);
  for (let i = 0; i < spectrum.length; i++) {
    let x = map(i, 0, spectrum.length, 0, width);
    let h = map(spectrum[i], 0, 255, 0, height);
    rect(x, height - h, width/spectrum.length, h);
  }
}

Données → son (principes)

La démarche inverse — prendre un tableau de valeurs et en dériver un son — utilise l'oscillateur de la Web Audio API ou de p5.Sound :


let osc;
function setup() {
  createCanvas(400, 400);
  osc = new p5.Oscillator('sine');
  osc.start();
}
function draw() {
  let freq = map(mouseX, 0, width, 110, 880); // x → fréquence (Hz)
  let amp  = map(mouseY, height, 0, 0, 0.5);  // y → amplitude
  osc.freq(freq);
  osc.amp(amp, 0.01); // transition douce
}

Le mapping : le cœur de la démarche

Le choix du mapping est la décision artistique principale. Exemples :

DonnéePropriété audioEffet
TempératureFréquenceChaud = aigu
AltitudeVolumeHaut = fort
VitesseTempoRapide = rapide
Fréquence cardiaquePulsation rythmiqueDonnées biologiques

Un bon mapping est intuitif : l'oreille comprend immédiatement la relation entre la donnée et le son. Un mauvais mapping produit du bruit qui déroute plutôt qu'il informe.

Sonification et patrimoine

L'œuvre ATLAS GNAWA du corpus Creative Coding Morocco traduit la polyrythmie gnawa en visualisation data-art : spectre des krakebs, oscilloscope des cordes du guembri, matrice rythmique des 7 mluk. Ce n'est pas de la sonification à proprement parler (le son n'est pas présent dans la pièce), mais la même logique de mapping : une structure musicale → une forme visuelle codée.

Voir l'œuvre ATLAS GNAWA → · Explorer les tutos → · Parler de votre projet →