gpt4 book ai didi

c++ - 绘制 .wav 文件的波形

转载 作者:可可西里 更新时间:2023-11-01 16:28:00 26 4
gpt4 key购买 nike

我想为特定的绘图宽度绘制 .wav 文件的波形。

我应该使用哪种方法来显示正确的波形图?

欢迎任何建议、教程、链接....

最佳答案

基本算法:

  1. 找到适合绘图窗口的样本数
  2. 确定每个像素应呈现多少样本
  3. 计算样本 block 中每个像素的 RMS(或峰值)值。平均不适用于音频信号。
  4. 绘制值。

假设 n(样本数)=44100,w(宽度)=100 像素:

那么每个像素应该代表 44100/100 == 441 个样本( block 大小)

for (x = 0; x < w; x++)
draw_pixel(x_offset + x,
y_baseline - rms(&mono_samples[x * blocksize], blocksize));

尝试不同视觉效果的东西:

  • rms 与模块的最大值
  • 重叠 block ( block 大小 x 但每个像素提前 x/2 等)

下采样可能不会起作用,因为您会丢失峰值信息。

关于c++ - 绘制 .wav 文件的波形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2066090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com