Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Низкие частоты в SoundMixer.computeSpectrum (http://www.flasher.ru/forum/showthread.php?t=142594)

Mirror13 25.07.2010 20:11

Низкие частоты в 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

Ммм...гляньте, авось пригодится:
http://blog.andrevenancio.com/2010/0...eat-detection/

Mirror13 25.07.2010 21:50

Спасибо. Конечно, не идеал, но полезно ) Я последовал примеру этих товарищей. Идею можно выразить таким кодом:

Код 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)
 {
  //сделать то, что надо
  }

То есть, как я понял, если половина максимума из спектра плюс параметр меньше, чем сам максимум, то есть, между ними большой разрыв - зафиксирован бит. Параметр надо подбирать экспериментально. Я попробовал разные песни - подобрал так, чтобы везде было более-менее в ритм.

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

t4arty 25.07.2010 22:11

Извените, что не в тему, но :
- Возможноли заполнять байтовый массив данными (которые туда можно передать) и потом воиспроизвести ? ( что-то ввиде "написание" музыки)

Хемуль 25.07.2010 22:34

2 t4arty:
В 10-ом плеере добавилась динамическая генерация звука, раньше же, насколько я помню, класс Sound, не позволял получать доступ к данным звуков напрямую - можно было только загружать.


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

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