как реализовать визуальный спектр при воспроизведении музыки - PullRequest
4 голосов
/ 20 июля 2011

iTunes EQ

Здравствуйте,

Я бы хотел реализовать такие же визуальные эффекты, как iTunes воспроизводит музыку. Я использую AVAudioPlayer, мои звуковые файлы локальные. Я воспроизвел те же файлы в iTunes и сделал этот снимок экрана.

Обновлен:

  1. Я исследовал образец Apple avTouch . Что касается визуализации, у меня есть грубая идея. но этот образец о объемном измерении
  2. кто-то сказал мне, что мне нужно использовать БПФ, но это слишком много для моей головы
  3. Я обнаружил, что после iOS 4.1 платформа Accelerometer содержит FFT DSP функции
  4. Похоже, мне нужно дотянуться до Core Audio (Audio Queue?), Чтобы получить буфер сэмпла, а затем FFT его

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

1 Ответ

4 голосов
/ 22 июля 2011

БПФ "I" или реальный вход - это n выборок из буфера выборок (предпочтительно с использованием взвешивания окна, примененного до преобразования).Установите «Q» или мнимый вход в нули.

Выход представляет собой сложный спектр с постоянным током в позиции индекса = 0.Индекс = 1 соответствует частоте дискретизации, деленной на длину БПФ N, индекс = 2 вдвое больше этой частоты и т. Д. До индекса N / 2.Чтобы получить мощность на определенной частоте, вам нужно добавить квадратные действительные и мнимые части.

Обычно вы хотите отобразить мощность в масштабе дБ, который рассчитывается как 10 * log10 (мощность), каждый блокна дисплее соответствует, например, 3 дБ.Вы также можете добавить усреднение или обнаружение пиков.

Более продвинутые дисплеи также имеют логарифмическую ось частоты, например, каждый столбец соответствует 1/12 октавы.В идеале каждый выход имеет свой собственный фильтр, но вы можете добиться чего-то похожего, добавив выходы FFT с более высоким индексом вместо того, чтобы показывать их все.

...