#flash #actionscript-3 #actionscript #audio #frequency
#flash #actionscript-3 #actionscript #Аудио #частота
Вопрос:
Я провел небольшое исследование и обнаружил способ динамической генерации звуков на 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)
}
}
Я просто хотел бы знать, как я могу заставить его генерировать точную частоту, которая мне нужна, например 100 Гц.
Спасибо!
Ответ №1:
Предполагаемая частота дискретизации 44,1 кГц:
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);
Комментарии:
1. задача выполнена =) Спасибо!
Ответ №2:
Если вы еще этого не сделали, ознакомьтесь http://lab.andre-michelle.com /. Этот человек делает классные вещи.
У него есть несколько примеров синтеза звука.
Ответ №3:
Я написал много статей на тему синтеза звука во Flash в своем блоге. Вот несколько хороших мест для начала:
http://labs.makemachine.net/2010/06/note-frequency/