![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+ 3 29.06.06]
|
Задание: написать частотный анализатор.
На входе - mp3 файл. Дальше начинается вопроизведение файла. С помощью SoundMixer.computeSpectrum(outputByteArray, true, 0) получаем байтовый массив outputByteArray с 512 float-point значениями от 0 до 1 (благодаря второму true в списке параметров, трансформация Фурье). Первые 256 значений - левый канал, следующие - правый канал. У каждого из каналов левые значения в массиве - низкие частоты, правые - высокие, средние - соответственно средние частоты. Это все согласно документации. Вопрос: как трактовать каждое из 256 значений для каждого из каналов? то есть, допустим: первое значение нам дает дипазон частот от n Дб до m Дб (то бишь умножаем m на наше значение от 0 до 1, получаем конкретную частоту), второе аналогично, и т.д. Где можно узнать эту информацию? Откликнувшимся заранее спасибо. |
|
|||||
|
Регистрация: 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 |
|
|||||
|
Регистрация: 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. |
|
|||||
|
стервочка (я мужик)
|
moron, вообще float - занимает 4 байта, а не 1.
|
|
|||||
|
[+ 3 29.06.06]
|
А если точно, какая самая низкая частота и какая самая высокая? Я так понимаю что от 18 до 20000 Гц ты написал от балды?
То есть если судя по твоему примеру, то первое значение из массива будет соответствовать ампилтуде частоты 18 Гц, затем 96 Гц, и т.д.? Я всего на всего плохо понял суть задания: "На выходе это должен быть код, которому передается ссылка на внешний файл mp3, и например, определяются пределы частоты, уровень которой нужно возвращать, например от 50 до 100Гц, либо несколько пределов (например, поделить весь звук на полосы частот), также передаётся порог. Код должен возвращать переменную, значение которой в реальном времени меняется в соответствии с уровнем звука на определенной полосе частот, а так же переменную, меняющую своё значение если уровень звука достигает определенного значения порога, и обратно, если уровень звука падает ниже порога." Как мне всё что ты выше написал завязать с этим заданием...? Я совсем запутался ![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Вы решили за счет форума задание сделать?
|
|
|||||
|
[+ 3 29.06.06]
|
Нет, я пытаюсь разобратся в задании, и прошу помощи. Закодить я и сам смогу.
Кажется форум и создан для того, чтобы задавать конкретные вопросы. От правил я, между прочим, не отхожу. И не прошу, дайте мне код тогО, как это сделать. Последний раз редактировалось jaydee; 14.05.2008 в 22:58. |
|
|||||
|
Не знаю, может не совсем то.
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. |
|
|||||
|
[+ 3 29.06.06]
|
Спасибо, но там показывают как делать визуализацию. А мне надо понять, как связаны значения получаемого байтового массива, и величины частот.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 07:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|