Просмотр полной версии : Изменение частоты звука
Подскажите, пожалуйста, можно ли какими-нибудь средствами as3 менять частоту воспроизводимого звука?
P.S. может как-то через ByteArray можно, или классы уже кем-то написаны?
gloomyBrain
04.05.2010, 14:00
может как-то через ByteArray можно
Можно, более того - пример есть в хелпе в разделе Sound
Да, спасибо большое, уже нашел.
И статью интересную - http://www.noinimod.ru/60/
Добавлено через 4 часа 43 минуты
Как динамически менять тональность разобрался :)
Но почему она меняется скачками, плавно нельзя???
var blocs:uint = 4096;
//
function soundUpdate(event:SampleDataEvent):void
{
//trace('sample data - ');
var ba:ByteArray = new ByteArray();
sound.extract(ba, blocs);
ba.position = 0;
if (ba.length < blocs * 8) {
sound.extract(ba, blocs, 0);
}
var freq:Number = stage.mouseY / stage.stageHeight * 3;
if (freq < 0) {
freq = 0;
}
if (freq > 4) {
freq = 4;
}
event.data.writeBytes(soundRate(ba, freq, 1));
//event.data.writeBytes(ba);
}
function soundRate(bytes:ByteArray, freq:Number=0, vol:Number=1)
{
var returnBytes:ByteArray = new ByteArray();
var step:Number = Math.round(uint(freq)<<2);
trace(freq+' - '+step);
bytes.position = 0;
while(bytes.bytesAvailable > 0)
{
//trace(bytes.position);
returnBytes.writeFloat(vol * bytes.readFloat());
returnBytes.writeFloat(vol * bytes.readFloat());
bytes.position += step;
}
return returnBytes;
}
//
var sound:Sound = new idle_engine();
var sound2:Sound = new Sound();
sound2.addEventListener('sampleData',soundUpdate);
sound2.play();
Т.е. при таком коде всё работает только при значениях переменной step = 0; 4; 8;
А как можно поплавнее менять частоту воспроизводимого звука?
Что-то я не совсем понимаю зависимость тональности от считываемой позиции массива bytes :(
Вообще, я хочу сделать плавное изменение частоты звука работающего двигателя автомобиля, при прибавлении/убавлении оборотов двигателя. Т.е. нажал на "газ" - звук двигателя повысился в тональности, нажал "тормоз" - звук понизился в тональности, ПЛАВНО.
djyamato
23.10.2010, 00:40
вот без скачков почти http://www.audiostretch.com/ А вот статья http://gerrybeauregard.wordpress.com/2010/08/03/an-fft-in-as3/
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.