gpt4 book ai didi

c# - 如何在 C# 中合成和输出简单的声波?

转载 作者:可可西里 更新时间:2023-11-01 14:07:58 41 4
gpt4 key购买 nike

如果你口齿不清,请不要尝试说出我的标题。

但是,是的,什么是生成简单的最简单的方法,或者更复杂的锯齿波和其他波的 Bonus。

最佳答案

根据我的经验 .wav file format (Wikipedia entry 列出了提供文件格式的其他文档;使用您认为最好的一种)是最简单且广泛使用的一种。编写未压缩的 PCM 非常容易。

对于正弦波和锯齿波之类的东西,我会将任务分为采样和文件制作。所以你可能有一个界面,例如:

public interface IWave
{
double Sample(double time);
}

其中 Sample 将被赋予一个大于 0(但可能大于 1)的时间,并且应该返回一个介于 -1 和 1 之间的值。(您可以为此使用委托(delegate)。)然后编写文件生成器以根据采样持续时间(例如“100000 波”)和采样频率(例如 50000 Hz)创建 wav 文件。

那么这只是一个适本地实现 IWave 的例子——例如一个为简单的正弦波返回 sin(time/(2 * pi)) 或为锯齿波返回 (time % 1.0) * 2 - 1 的版本。对于额外的娱乐,您可以编写组合函数来加速或减慢波浪、放大它、组合其他波浪等。当然,文件生成器不需要知道这些。任何。它只需要采用单个 IWave 并对其进行适当次数的采样,适本地将 [-1, 1] 范围缩放到 [0, 255]。

关于c# - 如何在 C# 中合成和输出简单的声波?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/933617/

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