声音合成框架在C / C ++ / Objective-C的?
-
12-09-2019 - |
题
我搜索网,但没有发现任何有趣。也许我做错了什么。
我正在寻找用于声音合成的API写在C,C ++或甚Objective-C的,其可以合成不同类型的波,效果是可选的。
解决方案
下面是FM(频率调制)合成一个完整的文库/工具箱:
如果您有空闲时间...从头开始创建简单的声音合成实际上是一个有趣的尝试。如果创建256个16位的样品代表无论是正弦小缓冲区。锯齿,嵌段或脉冲,可以将这些复制到一个活audiobuffer(例如小的缓冲器(比如16KB)),其不断地循环。通过保持领先的playposition,不断填补了缓冲用新值,你可以创建soundoutput。 您可以使用小缓冲区这些有趣的方式结合(最简单的就是将它们添加到一起(添加剂的合成))。
该音调的频率可通过使用通过小缓冲器更大或更小的采样步骤进行操作。振幅可以通过将它们放入输出缓冲器之前缩放所述样本进行操作。
大乐趣与此实验!
如果您已在此步骤钉,可以添加像过滤器的更多复杂的效果(低通,高通等)和效果(混响,回声等)
[R
其他提示
你有看着合成工具包( STK )?这是一个在C ++(我不认为ObjC是音频合成正确的语言,其实音响设备,苹果公司自己做的东西的音频,包括发电机/过滤器/效果的方式......在C ++中)。
STK将在Mac OS X上运行,而iOS没问题(CoreAudio的支持),也可以在Linux和Windows(直达声和ASIO)上运行,使用RtAudio。它真的很好做,重量轻,这些人花了很多时间来思考它,它肯定会给你一个很大的开端。它可以处理不同格式的音频文件的MIDI +的负荷(希望OSC很快...)。
还有创建和CLAM这是巨大的,这其中就包括GUI组件和许多其他的事情,你可能或可能不希望。如果你只是在做声音合成感兴趣的我真的建议STK。
PortAudio也是我们在音频编程过程中使用的最后一个学期一个伟大的C API。它提供了一个音频回调...你还能需要!?
我没有尝试过用Objective-C中任何尚未纳入它,但是当我做会汇报。
另一C ++库是nsound:
可以产生任何类型的使用生成的类或使用所提供的正弦类的调制信号的。每个时间步长可以有它自己的瞬时频率和相位偏移。
您也可以尝试用Python模块快速原型您的算法,然后用C ++实现。它可以产生在Python漂亮matplotlib情节和甚至是从C ++!