【问题标题】:how to implement visual spectrum while playback musics如何在播放音乐时实现视觉频谱
【发布时间】:2011-07-20 13:21:13
【问题描述】:

你好,

我想实现与 iTunes 播放音乐类似的视觉效果。我正在使用 AVAudioPlayer,我的声音文件是本地的。我在 iTunes 中播放了相同的文件并捕获了此屏幕截图。

更新:

  1. 我研究了 Apple 的 avTouch 样本。可视化方面,我有一个粗略的想法。但这个示例是关于体积计量的
  2. 有人告诉我我需要使用 FFT,但我想太多了
  3. 发现iOS 4.1之后,Accelerometer框架包含FFT DSP functions
  4. 看来我需要接触 Core Audio(音频队列?)以获取样本缓冲区,然后对其进行 FFT

哎呀,我只想为我的播放实现一个简单的频谱,有人可以帮忙吗?

【问题讨论】:

标签: iphone objective-c ios core-audio fft


【解决方案1】:

FFT“I”或实际输入是来自样本缓冲区的 n 个样本(最好在转换之前应用窗口加权)。将“Q”或虚输入设置为零。

输出是复数频谱,DC 在 index=0 位置。索引=1 对应于采样频率除以 FFT 长度 N,索引=2 是该频率的两倍,依此类推,直到索引 N/2。要获得某个频率的功率,您需要将实部和虚部的平方相加。

通常您希望以 dB 标度显示功率,计算为 10*log10(功率),显示中的每个块对应于例如3分贝。您可能还想添加一些平均或峰值检测。

更高级的显示器也有对数频率轴,例如每列对应 1/12 倍频程。理想情况下,每个输出都有自己的过滤器,但您可以通过添加更高索引的 FFT 输出而不是全部显示它们来实现类似的效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多