Skip to content

Commit f7bfaf2

Browse files
committed
fixes #413
1 parent 664ad62 commit f7bfaf2

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/**
2+
* @name Midiendo la amplitud
3+
* @description <p>Analiza la amplitud del sonido con
4+
* p5.Amplitude.</p>
5+
*
6+
* <p>La <b>amplitud</b> es la magnitud de la vibración. El sonido es vibración,
7+
* así que la amplitiud se relaciona fuertemente al volumen (loudness).</p>
8+
*
9+
* <p>El método<code>getLevel()</code> toma un arreglo de valores de amplitud
10+
* almacenados en un pequeño periodo de tiempo(1024 samples).
11+
* Retorna el <b>Root Mean Square (RMS)</b> de estos valores.</p>
12+
*
13+
* <p>Los valores originales de amplitud para audio digital están entre -1.0 y 1.0.
14+
* No obstante, el valor RMS siempre será positivo, porque está elevado al cuadrado.
15+
* Además, en vez de usar lecturas de amplitud instantáneas que son sampleadas a una tasa de
16+
* 44,100 veces por segundo, RMS es un promedio en el tiempo (1024 samples, en este caso),
17+
* lo que representa de mejor manera cómo nosotros escuchamos la amplitud.
18+
* </p>
19+
* <br><br><em><span class="small"> Para correr localmente este ejemplo, necesitarás la
20+
* <a href="http://p5js.org/reference/#/libraries/p5.sound">biblioteca p5.sound</a>
21+
* un archivo de audio y correr un <a href="https://github.com/processing/p5.js/wiki/Local-server">servidor local</a>.</span></em>
22+
*/
23+
let cancion, analizador;
24+
25+
function preload() {
26+
cancion = loadSound('assets/lucky_dragons_-_power_melody.mp3');
27+
}
28+
29+
function setup() {
30+
createCanvas(710, 200);
31+
cancion.loop();
32+
33+
// crea un nuevo analizador de amplitud
34+
analizador = new p5.Amplitude();
35+
36+
// Conecta la entrada al analizador de amplitud
37+
analizador.setInput(cancion);
38+
}
39+
40+
function draw() {
41+
background(255);
42+
43+
// Obtén la amplitud RMS (root mean square)
44+
let rms = analizador.getLevel();
45+
fill(127);
46+
stroke(0);
47+
48+
// Dibuja una elipse con su tamaño proporcional al volumen
49+
ellipse(width/2, height/2, 10+rms*200, 10+rms*200);
50+
}

0 commit comments

Comments
 (0)