c – 以编程方式创建垫声音
发布时间:2020-12-16 10:27:56 所属栏目:百科 来源:网络整理
导读:好的,这个可能有点离开了左边的场地,但我还是会试试. 垫是一种环境电子声,有点’哼唱’.像 this 这样的东西. 我怎样才能在代码中生成这个?使用Processing,OpenFrameworks,C,Objective-C或C.请记住,我没有那么长时间的编程. 如果这导致答案,我会非常感动!
好的,这个可能有点离开了左边的场地,但我还是会试试.
垫是一种环境电子声,有点’哼唱’.像 this 这样的东西. 我怎样才能在代码中生成这个?使用Processing,OpenFrameworks,C,Objective-C或C.请记住,我没有那么长时间的编程. 如果这导致答案,我会非常感动! 好的……去! 解决方法
我从来没有听过这里应用的术语“垫”,但它听起来像合成器官的声音,演奏大和弦.
首先,为了表示单个音符,您可以在音符的基频处产生正弦波(如果我们谈论的是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]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |