Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.05.2010, 13:36
RAlfDog вне форума Посмотреть профиль Отправить личное сообщение для RAlfDog Найти все сообщения от RAlfDog
  № 1  
Ответить с цитированием
RAlfDog
 
Аватар для RAlfDog

Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
По умолчанию Изменение частоты звука

Подскажите, пожалуйста, можно ли какими-нибудь средствами as3 менять частоту воспроизводимого звука?

P.S. может как-то через ByteArray можно, или классы уже кем-то написаны?

Старый 04.05.2010, 14:00
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 2  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
может как-то через ByteArray можно
Можно, более того - пример есть в хелпе в разделе Sound
__________________
...вселенская грусть

Старый 04.05.2010, 14:23
RAlfDog вне форума Посмотреть профиль Отправить личное сообщение для RAlfDog Найти все сообщения от RAlfDog
  № 3  
Ответить с цитированием
RAlfDog
 
Аватар для RAlfDog

Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
Да, спасибо большое, уже нашел.
И статью интересную - 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

Вообще, я хочу сделать плавное изменение частоты звука работающего двигателя автомобиля, при прибавлении/убавлении оборотов двигателя. Т.е. нажал на "газ" - звук двигателя повысился в тональности, нажал "тормоз" - звук понизился в тональности, ПЛАВНО.


Последний раз редактировалось RAlfDog; 04.05.2010 в 19:20.
Старый 23.10.2010, 00:40
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 4  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
вот без скачков почти http://www.audiostretch.com/ А вот статья http://gerrybeauregard.wordpress.com...an-fft-in-as3/

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:26.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.