fmod实现声音波形_想知道声音的形状吗?一盘沙子就可以实现

声音可以被看到吗?不要以为这是天方夜谭,一些面粉、沙子或盐就能实现。今天,小编带大家一起揭开克拉尼图形的秘密。

1 声音现形--克拉尼图形

18世纪末,在贝多芬耳聋十分严重的时候,他为了坚持创作,用牙齿咬着一根小木棍,另一端插在钢琴箱内,以木头为介质,将钢琴的振动通过骨传导获得听觉而作曲。可见,当时的人们对于声音的传播方式已经有了初步的认识。

539e9a799491d142d13bfd48bb4e29d6.png

德国科学家恩斯特·克拉尼发明了一种方法,首次证明了声音是由振动产生,并通过介质以波的形式来传播,那就是直接将声波的振动可视化,让每个人都可以用眼睛实实在在地观察到。

克拉尼选择了一块金属薄板,并在上面均匀地撒上细沙。然后使用小提琴的琴弓拉响薄板,结果薄片上的细沙开始移动,自动排列成不同的美丽图案。

4d84b8639eb230ece7fcade39d2a3895.gif

随着琴弦拉出的音调改变,图案也随之不断变幻,这就是著名的克拉尼图形

011bcd8f023c60b45676e36f54f900db.gif

换一种音调,图形也发生变化

3e1af9845ba6aa965fef2956d07debea.gif

每一种音调,都有对应的图形

2

多变的克拉尼图形

克拉尼的发现并不是偶然,实验也不仅仅依靠猜想。作为科学家的他早在1786年就开始从数学方面研究声波,在科学研究的同时,还对音乐保持着浓厚的兴趣,被誉为声学之父。

克拉尼实验中,当覆盖着一层沙子的薄板受声波振动时,薄板以复杂的方式振动,每个部分振动的强度不同,从而影响了振动区域沙子抖动后的走向。小沙粒会自动聚集在金属板振动最平缓的地方。

d89f66486c922e06f277d2d0ef8fe6fe.png

后人重复的克拉尼图形

克拉尼板的形状可以是正方形、矩形和圆形,甚至还可以是小提琴或吉他的形状,只需在中心具有固定约束即可。

如果改变板子的材质,或者传递的音频,也就是波的振幅与频率都会发生变化,薄板振动平缓或强烈的区域也将随之改变,最终就会产生不同的图案。

3 克拉尼图形的原理

那么一块木板上为什么会出现不同的振动强度呢?这是因为当声波传递时,遇到障碍物或传递介质的改变,将会发生反射,就好像海边的波浪拍打到岸边,又会退回去一样,形成了反射波。

当木板上的前进波遇到了障碍物形成反射波后,反射波与前进波叠加后会形成驻波。(想要详细了解驻波的小可爱请点击我)

驻波的特点是从波形上给人“驻立不动”的印象,波形上某些始终不动的点被称为波节,在相邻的两个波节中间的点,只做上下振动,振动最大处称为波腹

6dab69672c14fdc7ec64be46ff43485e.gif

上:前进的波,中:反射的波,下:反射波与前进波叠加后形成的驻波

(左边小点为波节,右边小点为波腹)

因此,当在板的侧面拉响金属薄片或者木板等材料时,它们形成的驻波分布在平面或曲面上,部分区域例如波腹处会强烈振动,而另一些区域例如波节处则不动。轻而小的沙子会从驻波振幅最大的波腹向振幅最小的波节处移动,形成克拉尼图形。

c415cd0feb3fb4b35dc730cb87607809.gif

金属薄片上驻波放大后的示意图

4

克拉尼图形的应用

大家可能都听说过一些非常昂贵的乐器,例如价值数十万的小提琴等等。音乐家们对自己的乐器的挑剔当然是无可厚非的,因为每件乐器设计上的细小差距都会影响它的共振,也就影响了声音的传播。

例如,在设计和制造小提琴和其他弦乐器时,需要测试各个孔的最佳位置、木材的厚度以及内部钢筋的位置等因素。

这时我们就可以通过克拉尼板原理将小提琴发声时各种振动的声波进行可视化,从而发现其中的优劣,将小提琴制作得更完美。

570131a475f90c2a451ed0268564b288.png

除了乐器,声音可视化的应用领域也穿插在我们的日常生活中,例如室内家具摆放和充液管道分析。

声音可视化还可以帮助建筑工程师设计音乐厅,可以使音乐厅的音响效果带来更精彩的演绎。

通过研究声音的变化、波形、波长、速度和其他特性,我们可以更好地理解如何操纵和再现声音,这就涉及了麦克风,留声机,耳机,音响等许多声音设备。

驻波是自然界一种十分常见的现象,生活中无处不在,除了常见的水波,乐器发声等,有些轮胎的驻波现象甚至还是引起高速爆胎的一大原因。

当轮胎被压缩的部位还没有来得及恢复原状就再次被压缩,并如此反复时,就会发生轮胎的驻波现象。

火箭喷射气体前进时,由于火箭速度与大气压力的影响,所喷射气体压缩和膨胀过程也会不断重复发生,因此其尾部的火焰也会形成独特的驻波——马赫环。

eac5e5fe8fff3ae4214ded08aa1edfd5.gif

由于驻波,尾焰中形成一节一节的马赫环

生活中驻波的现象还有很多,相信爱动脑的你也能发现更多关于声音的奥秘。

来源:数字北京科学中心

编辑:GUOmazing

↓ 点击标题即可查看 ↓

1. 15年前那场轰动电竞世界的瘟疫,惊动了美国CDC,还发了顶级期刊

2. 飞机为什么能飞起来?直到今天,科学家仍然没有答案

3. 电饭煲蛋糕硬核科学指南:从入门到放弃

4. 宅在家里不动,你的身体会发生什么变化?

5. 费曼:是学物理好还是学数学好?

6. 纳什:如何科学追求对象?

7. 鸡蛋为什么打不发?因为你发泡原理没学好

8. 葡萄干先晒后摘?解开童年疑惑之坚果加工流水线

9. 因为疫情在家的牛顿,都做了些什么?

10. 为什么!我!又走神了!

可以,以下是示例代码: ```cpp #include <QtCore/QCoreApplication> #include <fmod.hpp> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); FMOD::System *system = nullptr; FMOD::Sound *sound = nullptr; FMOD::Channel *channel = nullptr; FMOD_RESULT result = FMOD::System_Create(&system); if (result != FMOD_OK) { qDebug("FMOD error: %s", FMOD_ErrorString(result)); return -1; } result = system->init(32, FMOD_INIT_NORMAL, nullptr); if (result != FMOD_OK) { qDebug("FMOD error: %s", FMOD_ErrorString(result)); return -1; } result = system->createStream("path/to/your/music.mp3", FMOD_DEFAULT, nullptr, &sound); if (result != FMOD_OK) { qDebug("FMOD error: %s", FMOD_ErrorString(result)); return -1; } result = system->playSound(sound, nullptr, true, &channel); if (result != FMOD_OK) { qDebug("FMOD error: %s", FMOD_ErrorString(result)); return -1; } bool isMuted = false; channel->getMute(&isMuted); // 获取静音状态 channel->setMute(!isMuted); // 静音 FMOD::DSP *dsp = nullptr; result = system->createDSPByType(FMOD_DSP_TYPE_FFT, &dsp); if (result != FMOD_OK) { qDebug("FMOD error: %s", FMOD_ErrorString(result)); return -1; } dsp->setParameterInt(FMOD_DSP_FFT_WINDOWTYPE, FMOD_DSP_FFT_WINDOW_RECT); // 矩形窗口 dsp->setParameterInt(FMOD_DSP_FFT_WINDOWSIZE, 1024); // 窗口大小 channel->addDSP(0, dsp); float spectrum[1024] = { 0 }; dsp->getParameterFloat(FMOD_DSP_FFT_SPECTRUMDATA, spectrum, 1024, nullptr, 0); return a.exec(); } ``` 这个示例代码使用了FMOD库,实现了播放音乐、获取波形数据、静音的功能。你需要将 `path/to/your/music.mp3` 替换为你的音乐路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值