Как синтезировать точные частоты на flash?

#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/

http://labs.makemachine.net/2010/06/sine-square-waves/

http://labs.makemachine.net/category/audio/