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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.05.2008, 18:24
jaydee вне форума Посмотреть профиль Отправить личное сообщение для jaydee Найти все сообщения от jaydee
  № 1  
Ответить с цитированием
jaydee
[+ 3 29.06.06]

Регистрация: Jan 2006
Сообщений: 38
Отправить сообщение для jaydee с помощью ICQ
По умолчанию computeSpectrum - частотный анализатор

Задание: написать частотный анализатор.
На входе - mp3 файл. Дальше начинается вопроизведение файла.
С помощью SoundMixer.computeSpectrum(outputByteArray, true, 0) получаем байтовый массив outputByteArray с 512 float-point значениями от 0 до 1 (благодаря второму true в списке параметров, трансформация Фурье). Первые 256 значений - левый канал, следующие - правый канал. У каждого из каналов левые значения в массиве - низкие частоты, правые - высокие, средние - соответственно средние частоты. Это все согласно документации.
Вопрос: как трактовать каждое из 256 значений для каждого из каналов? то есть, допустим: первое значение нам дает дипазон частот от n Дб до m Дб (то бишь умножаем m на наше значение от 0 до 1, получаем конкретную частоту), второе аналогично, и т.д. Где можно узнать эту информацию?
Откликнувшимся заранее спасибо.

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

Регистрация: Feb 2008
Адрес: Russia
Сообщений: 19
The SoundMixer.computeSpectrum() method returns frequency spectrum data rather than waveform data if the FFTMode parameter is set to true. The frequency spectrum shows amplitude arranged by sound frequency, from lowest frequency to highest. A Fast Fourier Transform (FFT) is used to convert the waveform data into frequency spectrum data. The resulting frequency spectrum values range from 0 to roughly 1.414 (the square root of 2).
__________________
lida -- dyra (c) lida

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

Регистрация: Feb 2008
Адрес: Russia
Сообщений: 19
Смотри рисунок вот тут:
http://livedocs.adobe.com/flex/3/htm..._Sound_14.html
Возвращаемые значения -- это амплитуда, упорядоченная по частоте звука, от самой низкой частоты до самой высокой.
Первое значение - амплитуда самой низкой частоты, ... , 256-ое значение - амплитуда самой высокой частоты.
На рисунке в левом канале - громкий бас, в правом канале - удар по барабану.
То есть, скажем берём шкалу от 18 до 20000 Гц, ставим на ней 256 точек слева направо, и каждой точке в соответсвие ставим по одному байту из 256-и от первого и до 256-го.
__________________
lida -- dyra (c) lida


Последний раз редактировалось moron; 14.05.2008 в 19:19.
Старый 14.05.2008, 20:15
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 4  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
moron, вообще float - занимает 4 байта, а не 1.

Старый 14.05.2008, 21:52
jaydee вне форума Посмотреть профиль Отправить личное сообщение для jaydee Найти все сообщения от jaydee
  № 5  
Ответить с цитированием
jaydee
[+ 3 29.06.06]

Регистрация: Jan 2006
Сообщений: 38
Отправить сообщение для jaydee с помощью ICQ
А если точно, какая самая низкая частота и какая самая высокая? Я так понимаю что от 18 до 20000 Гц ты написал от балды?
То есть если судя по твоему примеру, то первое значение из массива будет соответствовать ампилтуде частоты 18 Гц, затем 96 Гц, и т.д.?
Я всего на всего плохо понял суть задания:

"На выходе это должен быть код, которому передается ссылка на внешний
файл mp3, и например, определяются пределы частоты, уровень которой нужно
возвращать, например от 50 до 100Гц, либо несколько пределов (например,
поделить весь звук на полосы частот), также передаётся порог.
Код должен возвращать переменную, значение которой в реальном времени
меняется в соответствии с уровнем звука на определенной полосе частот, а
так же переменную, меняющую своё значение если уровень звука достигает
определенного значения порога, и обратно, если уровень звука падает ниже
порога."
Как мне всё что ты выше написал завязать с этим заданием...? Я совсем запутался

Старый 14.05.2008, 22:27
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Вы решили за счет форума задание сделать?

Старый 14.05.2008, 22:55
jaydee вне форума Посмотреть профиль Отправить личное сообщение для jaydee Найти все сообщения от jaydee
  № 7  
Ответить с цитированием
jaydee
[+ 3 29.06.06]

Регистрация: Jan 2006
Сообщений: 38
Отправить сообщение для jaydee с помощью ICQ
Нет, я пытаюсь разобратся в задании, и прошу помощи. Закодить я и сам смогу.
Кажется форум и создан для того, чтобы задавать конкретные вопросы. От правил я, между прочим, не отхожу. И не прошу, дайте мне код тогО, как это сделать.


Последний раз редактировалось jaydee; 14.05.2008 в 22:58.
Старый 14.05.2008, 23:13
CEBEP вне форума Посмотреть профиль Отправить личное сообщение для CEBEP Посетить домашнюю страницу CEBEP Найти все сообщения от CEBEP
  № 8  
Ответить с цитированием
CEBEP
 
Аватар для CEBEP

Регистрация: Nov 2006
Сообщений: 688
Отправить сообщение для CEBEP с помощью ICQ Отправить сообщение для CEBEP с помощью Skype™
Не знаю, может не совсем то.

Sound Spectrum Display
Learn how to read and display waveform data from your sound files using ActionScript 3.
gotoAndLearn.com


Последний раз редактировалось CEBEP; 15.05.2008 в 02:30.
Старый 15.05.2008, 10:15
jaydee вне форума Посмотреть профиль Отправить личное сообщение для jaydee Найти все сообщения от jaydee
  № 9  
Ответить с цитированием
jaydee
[+ 3 29.06.06]

Регистрация: Jan 2006
Сообщений: 38
Отправить сообщение для jaydee с помощью ICQ
Спасибо, но там показывают как делать визуализацию. А мне надо понять, как связаны значения получаемого байтового массива, и величины частот.

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

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

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


 


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


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