【发布时间】:2017-12-10 15:17:59
【问题描述】:
大约一周前,我开始使用 PortAudio 库。我已经检查了大多数教程/测试示例,但还没有看到我需要的解决方案。我正在制作简单的音序器——我已经在钢琴卷轴上绘制了声音块,但现在我需要以某种方式让它听起来。我想知道是否有可能让它像这样工作:
- 运行一个播放一个声音的方法,
- 将声音的频率和持续时间作为该方法的参数,
- 播放多个声音(即同时三个声音,调用三个方法)。
在示例文件中,它看起来更复杂。当我想播放多个正弦波时,我必须合并所有这些波,然后将这些数据提供给流式传输。
也许有人有更好的解决方案来解决这个问题?
【问题讨论】:
-
大多数音频设备不支持同时播放多个文件,因此您必须创建一个简单的混音器才能做到这一点。只要您的文件具有相同的采样率,这相当简单。即使您没有指定它,您似乎也想创建一个音调发生器。同样,网上有很多资源,请查看它们。不熟悉 PortAudio 是否支持其中任何一个。
-
是的,我想创建音调发生器,它将产生正弦波、方波、三角波和锯齿波。我不知道如何用用户定义的频率制作这些波,并同时播放很多声音。
-
到目前为止您尝试过什么?创建一个简单的音源应用程序并不难。
-
我有类似这个例子的东西。已经做了一些研究并且知道如何改变频率和多种音调,但仍然试图让它像我上面发布的那样。 (这里是生成正弦波示例的链接:link)
-
PortAudio 无法为您提供帮助,但我可以编写一个简单的 C++ 函数来生成正弦波并接受频率和持续时间作为参数。这样,您将能够理解的不仅仅是使用库(尽管我并不是说使用库有什么问题)