gpt4 book ai didi

c++ - 以编程方式创建打击垫声音

转载 作者:太空狗 更新时间:2023-10-29 19:44:54 24 4
gpt4 key购买 nike

好吧,这个可能有点偏离左场,但我还是要试试。

打击垫是一种“嗡嗡声”的环境电子声音。类似于 this .

我怎样才能用代码生成这个?使用 Processing、OpenFrameworks、C、Objective-C 或 C++。请记住,我编程的时间并不长。

如果这能得到答案,我将印象深刻!

好的...去吧!

最佳答案

我从来没有听过这里应用的术语“pad”,但它听起来像是合成风琴的声音,演奏大调和弦。

首先,为了表示单个音符,您可以在音符的基本频率(如果我们谈论的是 A 大调,则为 440Hz)及其接下来的几个倍数(880、1760、 3520) 并将它们与一些(递减的)权重相加。然后添加以相同方式渲染的和弦的其他音符(C# 和 E)。

如果到目前为止这听起来对您有用,我可以根据需要进行扩展。

编辑:通过“一些(递减的)权重”,我的意思是添加泛音乘以一些放大,例如

F = 440;  // Hz
tone[t] = A * sin(t/F) + B * sin(t/(2*F)) + C * sin(t/(3*F)); // + etc, perhaps

也许在哪里,

A = 1.0;
B = 1.0/2.0;
C = 1.0/3.0;

或类似的东西。

对于 ADSR 滤波器(查找),您将生成的波形乘以放大倍数,放大倍数在您选择的“启动”期间从 0 增加到 1,然后在“衰减”期间下降到某个数字选择(可能是 0.7),然后在您“释放”持续音符时线性下降到 0。

对于回声/混响,您可以通过一些延迟将波形添加回自身,例如

D = 4410;  // 10 msec at 44.1 kHz., as an example value
tone[t] += 0.5 * tone[t-D];

关于c++ - 以编程方式创建打击垫声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3378656/

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