有人知道做音频合成器仿真的C/C++/C#代码库吗
Does anyone know of any C/C++/C# code libraries that do audio synthesizer emulation?
我正在尝试编写一个软件合成器,以重现Moog和DX7等经典合成器发出的声音。有人知道这样的代码资源吗?谢谢
有很多C/C++库,大多数库都不再更新。C#没有太多内容,但我已经看到了一些。我在愤怒中并没有真正使用过它们,所以我不能给出任何建议。
我会从和谐中心开始,看看你在那里有没有用。
或者,在sourceforge.net上搜索模拟合成也有很多结果。
斯坦福大学的CCRMA可以成为音频软件的良好资源。C++(STK)中的Synthesis工具包看起来可以帮助您。
Moog和雅马哈DX7截然不同。DX7使用调频合成,这是非常奇怪的。与通常的VCO/VCA/VCF类似物(如Moog)非常不同。
很长一段时间以来,雅马哈一直在为其FM专利辩护,但我相信这些专利现在都已经过期了。卡西欧的相位失真类似于雅马哈的调频,并设法避免了雅马哈(据我所知)的愤怒。
我会先选一个。自从Nord Lead和Access Virus出现以来,虚拟模拟(模拟模拟合成器)风靡一时。而且更容易思考。所以,如果你想和时髦的人群一起走,我会走那条路。
从好的限带振荡器开始,做一个包络发生器,做一次滤波器。想要获得灵感,请查看威尔士的合成器食谱,了解如何用双振荡器合成器发出各种声音。我会从实现这些补丁所需的最低功能开始。
FM和PD都很疯狂。如果你走这条路,那就是把足够多的调频运营商以有趣的配置连接在一起,以获得一系列有趣的声音。警告:要避免FM中的混叠,需要做大量工作。
Synthmaker和SynthEdit将为您生成VST代码。SynthEdit肯定会输出未编译的C++源文件,并且是免费的。
http://www.synthedit.com/
http://synthmaker.co.uk/
您最好的选择是查看KvR上的开发者论坛。他们将能够为您指明最佳开源DSP/合成引擎的方向,以及一些您可以从中获得灵感的开源VSTi插件。不过,这一切都将在C/C++中实现。目前,托管代码中只有最基本的音频合成可用。
musicdsp网站还有一个很棒的合成库。C/C++中有很多关于如何做事的示例代码。
看看Python音乐库问题的答案。虽然问题是"Python",但Python是基于C构建的。因此,任何可从Python中使用的东西都将有一个C库。
我编写了一个简单的synth库,作为iPhone应用程序的一部分。也许它也能满足你的合成器需求。也许不是。http://mobilesynth.googlecode.com/svn/trunk/mobilesynth/Classes/synth/
这些教程(尤其是从第8部分开始)涵盖了用C++编程经典减法合成器的所有部分:振荡器、包络、滤波器和LFO。
我在BASS库方面取得了一些成功,但它的.Net支持在我上次使用它时有点粗糙。它主要是低级别的流编码等,但它确实支持一些DX8效果。
您可能想要查看CodeProject上的两篇文章。Leslie Stanford用C#创建了一个Synth工具包(据我所知,它是完全管理的)。
C#Synth工具包-第一部分C#Synth工具包-第二部分
此外,我刚刚发现了这个StackOverflow问题,它有一些很好的链接,尽管它是与Java相关的
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 我的字符计数代码计算错误.为什么
- 孤立代码块在结构中引发异常
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 此代码是否违反一个定义规则
- 为什么我的代码在输出中增加了93天
- 我的简单if-else语句是如何无法访问的代码
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 为什么在这个代码结束循环中没有得到结束
- 在c代码之间共享数据的最佳方式
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值