有谁知道任何进行音频合成器仿真的 C/C++/C# 代码库?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/250394/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-03 19:56:07  来源:igfitidea点击:

Does anyone know of any C/C++/C# code libraries that do audio synthesizer emulation?

c#c++caudiosynthesizer

提问by MusiGenesis

I'm trying to write a software synthesizer that recreates the sounds made by classic synthesizers like the Moog and the DX7. Does anyone know of any code resources for something like this? Thanks.

我正在尝试编写一个软件合成器来重现经典合成器(如 Moog 和 DX7)发出的声音。有没有人知道这样的代码资源?谢谢。

采纳答案by Stu Mackellar

There are an awful lot of C/C++ libraries out there, most no longer updated. There's not much for C#, but I have seen a couple. I haven't really used any of them in anger, so I can't give any recommendations.

那里有大量的 C/C++ 库,大多数不再更新。C# 的内容不多,但我见过一些。我没有真正在愤怒中使用过它们中的任何一个,所以我不能给出任何建议。

I would start with Harmony Centraland see if you find anything of use there.

我会从Harmony Central开始,看看你是否在那里找到了任何有用的东西。

Alternatively, a search for analog synthesison sourceforge.net has plenty of results.

或者,在 sourceforge.net 上搜索模拟合成有很多结果。

回答by Joel Coehoorn

I've had some success with the BASS library, but it's .Net support was a little crude when last I played with it. It mostly low-level stream encoding and such, but it does have support for some DX8 effects.

我在BASS 库上取得了一些成功,但是当我上次使用它时,它的 .Net 支持有点粗糙。它主要是低级流编码等,但它确实支持某些 DX8 效果。

回答by S.Lott

Look at the answers to the Python Music Libraryquestion. While the question says "Python", Python is built on C. So anything usable from Python will have a C library, also.

查看Python 音乐库问题的答案。虽然问题说的是“Python”,但 Python 是基于 C 构建的。因此,任何可从 Python 使用的东西也将有一个 C 库。

回答by AShelly

CCRMAat Stanford can be a good resource for audio software. The Synthesis ToolKit in C++ (STK)looks like it could help you out.

斯坦福大学的CCRMA是音频软件的一个很好的资源。 C++ (STK) 中的 Synthesis ToolKit看起来可以帮助您。

回答by humble_guru

Chuckis the best I know of, but its C++ like, not C++.

Chuck是我所知道的最好的,但它像 C++,而不是 C++。

回答by Mark Heath

your best bet is to check out the developer forums over at KvR. They will be able to point you in the direction of the best open source DSP/synthesis engines as well as some open source VSTi plugins that you can take inspiration from. It will all be in C / C++ though. There is only the most basic of audio synthesis available in managed code at the moment.

最好的办法是在 KvR上查看开发者论坛。他们将能够为您指明最佳开源 DSP/合成引擎的方向,以及一些您可以从中获得灵感的开源 VSTi 插件。不过,它将全部使用 C/C++。目前托管代码中只有最基本的音频合成可用。

回答by Ruben Steins

There are two articles on CodeProject you might want to check out. Leslie Stanford created a Synth toolkit in C# (as far as I know it's completely managed).

您可能想查看关于 CodeProject 的两篇文章。Leslie Stanford 在 C# 中创建了一个 Synth 工具包(据我所知,它是完全托管的)。

C# Synth Toolkit - Part IC# Synth Toolkit - Part II

C# 合成工具包 - 第一部分C# 合成工具包 - 第二部分

Also, I just found this StackOverflow Questionwhich has some good links, though it's Java related

另外,我刚刚发现这个 StackOverflow Question有一些很好的链接,尽管它与 Java 相关

回答by Nosredna

The Moog and the Yamaha DX7 are drastically different. The DX7 uses FM synthesis, which is severely strange. Very different from the usual VCO/VCA/VCF analogs like the Moog.

Moog 和 Yamaha DX7 完全不同。DX7 使用 FM 合成,这很奇怪。与 Moog 等通常的 VCO/VCA/VCF 类似物非常不同。

For a long time, Yamaha litigated to defend its FM patents, but they have all expired by now, I believe. Casio's phase distortion was similar to Yamaha's FM, and managed to avoid Yamaha's wrath (so far as I know).

很长一段时间以来,雅马哈一直为捍卫其 FM 专利而提起诉讼,但我相信它们现在都已过期。卡西欧的相位失真类似于雅马哈的FM,并且设法避免了雅马哈的愤怒(据我所知)。

I'd start by picking one or the other. Virtual Analog (emulating analog synths) is all the rage since the Nord Lead and the Access Virus showed up. And a lot easier to contemplate. So I'd go that way if you want to walk with the hip crowd.

我会从选择其中一个开始。自从 Nord Lead 和 Access Virus 出现以来,Virtual Analog(模拟模拟合成器)风靡一时。而且更容易思考。所以如果你想和时髦的人群一起走路,我会走那条路。

Start with good band-limited oscillators, make an envelope generator, do a filter. For inspiration, check out Welsh's Synthesizer Cookbookto see how all kinds of sounds can be make with a two-oscillator synth. I'd start by implementing the minimum features needed for those patches.

从好的带限振荡器开始,制作包络发生器,制作滤波器。如需灵感,请查看Welsh 的 Synthesizer Cookbook,了解如何使用双振荡器合成器制作各种声音。我将从实现这些补丁所需的最低功能开始。

FM and PD are wild. If you go that route, it's all about chaining enough FM operators together in interesting configurations to get a spectrum of interesting sounds. Warning: it's a lot of work to avoid aliasing in FM.

FM 和 PD 是狂野的。如果你走那条路,那就是将足够多的 FM 操作符以有趣的配置链接在一起,以获得一系列有趣的声音。警告:要避免 FM 中的混叠需要大量工作。

回答by Axl

Synthmaker and SynthEdit will generate VST code for you. SynthEdit definitely outputs the uncompiled C++ source files, and is free.

Synthmaker 和 SynthEdit 将为您生成 VST 代码。SynthEdit 肯定会输出未编译的 C++ 源文件,并且是免费的。

http://www.synthedit.com/

http://www.synthedit.com/

http://synthmaker.co.uk/

http://synthmaker.co.uk/

回答by Nick Haddad

The musicdspwebsite also has a great synthesis library. Lots of sample code in C/C++ on how to do things.

musicdsp网站也有很大的合成库。很多关于如何做事的 C/C++ 示例代码。