如何开始用 C++ 编写音乐可视化工具?[关闭]
-
03-07-2019 - |
题
我对学习使用 OpenGL 很感兴趣,并且产生了编写音乐可视化工具的想法。谁能给我一些关于我需要哪些元素以及我应该如何学习做到这一点的指示?
其他提示
我创建 BeatHarness 的方法(http://www.beatharness.com) :
- 实时录制音频
- 有一个线程对音频运行 FFT 以获得频率强度
- 计算左右声道的音量
- 过滤频段中的频率(低音、中音、高音)
现在您有一些很好的变量可以在图形显示中使用。例如,显示一张尺寸乘以低音的图片 - 这将为您提供一张放大节拍的图片。从那时起,这是你自己的想象!:)
您是否正在尝试编写自己的音频/音乐播放器?也许您应该尝试为现有播放器编写插件,这样您就可以专注于图形而不是编解码器,dsp和音频输出设备的细节。
我知道WinAMP和Foobar有可视化插件的API。我确信Windows Media Player和iTunes也有它们。只需选择一个媒体播放器并开始阅读。其中一些甚至可能有现成的OpenGL插件,您可以从中开始,这样您就可以专注于纯OpenGL。
如果您刚刚使用了一些基本的3D或加速2D,那么我建议您购买Dave Astle的副本“开始OpenGL游戏编程”它涵盖了C ++中OpenGL的基础知识。
对于音乐分析部分,您应该研究傅立叶级数的基础,然后选择DFFT(数字快速傅里叶变换)算法的免费实现。
您可能需要考虑在FFTW上使用libvisual的FFT / DCT功能;它们使用起来更加简单,并且为了生成视觉效果而提供同样易于使用的数据。一些媒体播放器和可视化插件在某种程度上使用libvisual来实现其视觉效果。示例:图腾(玩家),GOOM(图腾和其他玩家的插件),PsyMP3 2.x(玩家)
不隶属于 StackOverflow