首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么样的声音处理算法可以让你像这样进行可视化?

什么样的声音处理算法可以让你像这样进行可视化?
EN

Stack Overflow用户
提问于 2010-02-05 20:35:52
回答 1查看 2.8K关注 0票数 6

我感兴趣的是为MP3制作一个OpenGL可视化工具作为一个宠物项目。

我偶然发现了这段youtube视频,视频中有人展示了与增强现实相结合的可视化工具。

http://www.youtube.com/watch?v=SnshyLJSpnc#t=1m15s

请看那个视频,但是忽略那个视频的增强现实方面。我只感兴趣的是做一个可视化,而不是增强现实。

什么样的算法被用来生成与音乐相关的模式?如果你看的话,你可以看到几种不同的可视化方法。第一种看上去很独特:

第一个看起来像是在渲染区域上移动的波浪:

另一种“模式”似乎以同心圆的形式围绕着中心移动:

任何精通音频编程的人,都可以使用什么样的算法来产生相似的视觉效果?第一个算法使用的是哪种算法?还是同心圆的那个?

任何帮助我指出那些算法是用来根据音乐生成这些可视化的,这将极大地帮助我!

EN

回答 1

Stack Overflow用户

发布于 2010-02-05 21:12:56

首先,所有这些似乎都是基于FFT算法(快速傅立叶变换),它可以为特定的时间切片提取声波,并将其分离成X-Y谱线图,其中X代表频谱(通常基于20 or到20 000 or),Y表示每个不同频率的声音的幅度或体积。

如果您查看第一次可视化(在视频前面的平面,无色的可视化),您将看到它朴素的形式。您会注意到,较低的音符在左侧以峰值和尖峰出现,而较高的音符出现在中间和右侧,这是经典的Fourier变换映射。(事实上,这段视频最大的缺点是,在下半部分,在介绍之后,从左到右的FFT映射是有缺陷的,这样大多数最高和最低的音符都会切断可视化的左右边缘)。

从现在开始,他只是在这个基本的技巧中添加了不同的、越来越复杂的装饰品。首先,他添加了一个非常基本的颜色映射:波形的高度直接映射到它的颜色:从红色(最低)到深蓝色/靛蓝(最高),遵循经典的ROYGBIV模式(红色、橙色、黄色、绿色、蓝色、靛蓝、紫色)。记住,高度在这个频率上也与体积相对应。据我所知,他始终使用同样的颜色映射,没有任何变化。

所有随后的装饰和变体似乎只是不同的方式来玩进步的时间映射。起初,他只是把视觉区域前面的波形映射出来,然后逐渐地将它们流走,这样他就有效地绘制了一个连续运行的三维曲面图,它的频率从左向右运行,音量(和颜色)从下到上运行,时间从前到后运行。这是你的第一张照片。

其他的一切都是越来越复杂的版本,以更复杂的方式映射时间(和时间)。举个例子,在第二个圆形图中,我认为他是在一个非常快的径向扫描图中,在中间的一个明显的极点上映射时间。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2210240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档