JavaScript - No logro que funcione este ejemplo de generador de sonido

 
Vista:
sin imagen de perfil

No logro que funcione este ejemplo de generador de sonido

Publicado por José (8 intervenciones) el 22/04/2023 11:33:48
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<html>
<head>
 
<script>
 
let sonidos= [131,139,147,156,165,175,185,196,208,220,233,247,262,277,294,311,330,349,370,392,415,440,466,494,523,554,587,622,659,698,740,784,831,880,932,988,1068,1119];
 
var context= new AudioContext();
 
function jsNota(frecuencia){
        var o= context.createOscillator();
        g=context.createGain();
        o.connect(g);
        o.type="sawtooth";
        o.frequency.value=frecuencia;
        g.connect(context.destination);
        o.start(0);
        g.gain.exponentialRampToValueAtTime(0.00001,context.currentTime +1.5);
    }
 
function miSon(){
for (var i = 0; i < 39; i++) {
   jsNota(sonidos[i]);
   console.log(sonidos[i]);
   }
}
 
</script>
 
</head>
 
 
<body onload="miSon;">
 
<p></p>
 
</body>
 
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

No logro que funcione este ejemplo de generador de sonido

Publicado por antonio (16 intervenciones) el 23/04/2023 13:48:44
Hola buenas el código si funciona compruébalo con un botón por ejemplo, lo que no esta funcionando es el onload quizas no funcione para el audio pero no he encontrado nada en internet todos los ejemplos son con el addEventListener quizás deberías probar de esa forma:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<html>
<head>
 
<script>
 
let sonidos= [131,139,147,156,165,175,185,196,208,220,233,247,262,277,294,311,330,349,370,392,415,440,466,494,523,554,587,622,659,698,740,784,831,880,932,988,1068,1119];
 
var context= new AudioContext();
 
function jsNota(frecuencia){
        var o= context.createOscillator();
        g=context.createGain();
        o.connect(g);
        o.type="sawtooth";
        o.frequency.value=frecuencia;
        g.connect(context.destination);
        o.start(0);
        g.gain.exponentialRampToValueAtTime(0.00001,context.currentTime +1.5);
    }
 
function miSon(){
for (var i = 0; i < 39; i++) {
   jsNota(sonidos[i]);
   console.log(sonidos[i]);
   }
}
 
</script>
 
</head>
 
 
<body onload="miSon()">
 
<p><button onclick="miSon()">Pulsa para probar</button></p>
 
</body>
 
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No logro que funcione este ejemplo de generador de sonido

Publicado por jgarcialian (8 intervenciones) el 23/04/2023 14:23:50
Así sí funciona
Gracias
Pero lo que busco es que se ejecute el sonido nada más abrir el html, sin tener que hacer nada dentro de la página web, por eso lo puse al cargar. No consigo encontrar una forma de autoejecución, y no me vale tampoco un archivo wav o mp3 pregrabado, pues lo que busco es un generador de sonido a partir de ciertas frecuencias que comience a sonar al entrar en la página.
Saludos y gracias de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar