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

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

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

Регистрация: May 2010
Адрес: Ногинск
Сообщений: 56
По умолчанию Низкие частоты в SoundMixer.computeSpectrum

Есть необходимость в аудиоплеере запускать анимацию динамика в том случае, если в композиции бьет барабан или происходит еще что-нибудь такое. Как я понимаю, для этого нужно проследить за амплитудой низких частот звука. Я попробовал следующий код:

Код AS3:
SoundMixer.computeSpectrum(_spectrum);
var arr:ByteArray = new ByteArray();
_spectrum.readBytes(arr, 0, 20);
var F:Number = 0;
while(arr.position < arr.length)
 {
   F = arr.readFloat();
   trace(F);
 }
Пробовал выделять из _spectrum разные диапазоны - не смог найти закономерность - где там низкие частоты и как определить, что у них подскочила амплитуда - выдается набор как будто случайных чисел.

Старый 25.07.2010, 20:28
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Ммм...гляньте, авось пригодится:
http://blog.andrevenancio.com/2010/0...eat-detection/
__________________
тут я

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

Регистрация: May 2010
Адрес: Ногинск
Сообщений: 56
Спасибо. Конечно, не идеал, но полезно ) Я последовал примеру этих товарищей. Идею можно выразить таким кодом:

Код AS3:
SoundMixer.computeSpectrum(_spectrum);					
 
var med:Number = 0;
var max:Number = 0;
var cur:Number = 0;
 
while(_spectrum.position < _spectrum.length)
 {
  cur = _spectrum.readFloat();
  max = (cur > max) ? cur : max;
 }
 
med = max/2;
if(med+0.1 < max)
 {
   //сделать то, что надо
  }
То есть, как я понял, если половина максимума из спектра плюс параметр меньше, чем сам максимум, то есть, между ними большой разрыв - зафиксирован бит. Параметр надо подбирать экспериментально. Я попробовал разные песни - подобрал так, чтобы везде было более-менее в ритм.

Но если вдруг есть и другие идеи - я хотел бы знать.

Старый 25.07.2010, 22:11
t4arty вне форума Посмотреть профиль Отправить личное сообщение для t4arty Найти все сообщения от t4arty
  № 4  
Ответить с цитированием
t4arty

Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
Извените, что не в тему, но :
- Возможноли заполнять байтовый массив данными (которые туда можно передать) и потом воиспроизвести ? ( что-то ввиде "написание" музыки)

Старый 25.07.2010, 22:34
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 5  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 t4arty:
В 10-ом плеере добавилась динамическая генерация звука, раньше же, насколько я помню, класс Sound, не позволял получать доступ к данным звуков напрямую - можно было только загружать.
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

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

Теги
actionscript 3 , cumputespectrum , soundmixer , спектр звука

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

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


 


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


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