2011-04-05 19 views
5

He investigado un poco y he descubierto una manera de generar sonidos de forma dinámica en Flash:¿Cómo sintetizar frecuencias exactas en flash?

import flash.media.Sound; 

var mySound:Sound = new Sound(); 

mySound.addEventListener(SampleDataEvent.SAMPLE_DATA, sineGenerateSound); 

mySound.play(); 

function sineGenerateSound(event:SampleDataEvent):void{ 

for(var i:int=0;i<4092;i++){ 

    var n:Number = Math.sin((i+event.position)/Math.PI/4); 
    event.data.writeFloat(n) 
    event.data.writeFloat(n) 
} 
} 

Me gustaría saber cómo puedo hacer que genere la frecuencia exacta que necesito, por ejemplo 100 Hz .

Gracias!

Respuesta

8

Suponiendo que la frecuencia de muestreo de 44,1 kHz:

var freq:Number = 100; // example, 100 Hz, set this somewhere outside the for loop 
var n:Number = Math.sin((i+event.position)*freq*2.0*Math.PI/44100.0); 
+0

Muchas gracias! Este sitio es increíble, ¡gracias! – Lucas

+0

Lucas, parece que eres nuevo aquí. Para marcar una respuesta como aceptada, haga clic en la casilla de verificación junto a ella. Hacerlo recompensará los puntos de reputación a la persona que te brindó ayuda. – JeremyFromEarth

+0

tarea realizada =) ¡Gracias! – Lucas

2

Si aún no lo ha hecho, consulte http://lab.andre-michelle.com/. El hombre hace algunas cosas interesantes.

Tiene algunos ejemplos de síntesis de sonido.

Cuestiones relacionadas