如何在C/C++或Java中生成真正的低音吉他声音

How to generate a real bass guitar sound either in C/C++ or Java?

本文关键字:声音 吉他 C++ Java      更新时间:2023-10-16

我一直在互联网上进行广泛的研究,因为我需要一种从程序中生成真实低音的方法(比如电低音吉他)。问题是,我一直在寻找MIDI的方法来产生这种声音,但我不确定这是否是正确的做法,事实上,我对这个主题没有什么了解,这是我第一次尝试从原始编码中产生声音。我一直在研究不同的API来帮助我,其中大多数是开源的,看看它们在做什么,但我发现它们非常复杂,学习曲线非常陡峭,文档很少。我也一直在寻找开源程序,比如用java制造的tuggitate,这与GuitarPro类似,所以我可以看看它是如何产生低音的,我还有一些代码要扫描,这样我就可以找到我想要的东西,但我担心这不是我需要或能够做的。所以,为了结束这一切,我的问题是:有没有一种方法可以通过本地代码或任何API产生真正的低音,没有必要使用MIDI或类似的东西,最好是在c/c++或java中?非常感谢请原谅任何冒犯或语言错误,我不是英语母语。

MIDI只是一个控制协议,与声音本身无关。它通常用于合成器控制(注意开/关消息等等),但仅此而已

大多数设备都有一个合成器,可以在使用MIDI控制的情况下为您产生声音。这是迄今为止最简单的入门方法,但你会发现大多数普通MIDI合成器听起来都不太好。

现在,就产生你想要的声音而言,你正在谈论编写自己的合成器。没有魔法。没有捷径可走。这是一项艰苦的工作!通常,合成器会使用一组样本,然后对它们进行操作。例如,你会有一个弹拨的样本,然后是另一个吉他声的样本。这一切都将在ADSR信封上进行控制。即便如此,这听起来也不会令人惊叹,因为你只接近了乐器的一小部分特征。

您可以尝试通过midi控制声卡的内置合成器。但如果你想要良好的声音和乐器质量,我建议你学习VST,这是Steinbergh的一项技术,包括虚拟乐器(VSTi)和效果插件。

因此,从本质上讲,您可以创建或使用一个VST主机应用程序,该应用程序可以与现有的商业免费VSTi和VST插件一起使用。然后你可以重复使用可用的软件合成器和乐器模拟,这听起来很神奇。正如Brad在评论中所建议的那样,您可以通过midi控制主机应用程序。

虽然我在这里只宣传VST,但维基百科链接包含了来自不同品牌的其他技术的列表,这些技术正在做同样的事情。但你明白了。