C++ 如何通过带有C+的外部PC扬声器输出不同的波形信号+;?

C++ 如何通过带有C+的外部PC扬声器输出不同的波形信号+;?,c++,audio,waveform,phase,acoustics,C++,Audio,Waveform,Phase,Acoustics,对于我的学校项目,我想知道是否有人能帮助我找到一种通过电脑扬声器实时输出声音的方法。 这必须是donevia my声卡,同时播放所播放信号的参数,如相位、振幅、波形等? 如果有可能,我会在C++语言下使用图书馆,因为实际的原因,在Windows平台上。当然,Linux也是可能的 最重要的是,我还想通过每个扬声器发送不同的波形,以创建通过本实验可以看到的驻波: 有几个API可以实现这一点 对于Windows XP及以上版本,请使用DirectSound 对于Windows Vista/7/8及以

对于我的学校项目,我想知道是否有人能帮助我找到一种通过电脑扬声器实时输出声音的方法。 这必须是donevia my声卡,同时播放所播放信号的参数,如相位、振幅、波形等? 如果有可能,我会在C++语言下使用图书馆,因为实际的原因,在Windows平台上。当然,Linux也是可能的

最重要的是,我还想通过每个扬声器发送不同的波形,以创建通过本实验可以看到的驻波:
有几个API可以实现这一点

  • 对于Windows XP及以上版本,请使用DirectSound
  • 对于Windows Vista/7/8及以上版本,请使用WASAPI
  • 有一些跨平台的API,比如OpenAL和SDL

在网上搜索一些例子。玩一下这些API和示例,看看你是怎么做的。

一个有趣的可能性是使用。它在Linux、Windows和OSX下工作,并提供对音频输出的低延迟访问。它还允许输出任意路由到其他程序

JACK的编程模型非常简单-支持的唯一数据类型是32位
float
s的单通道,因此,您可以提供左音频正弦波发生器和右音频正弦波发生器的单独实例,并将每个实例路由到适当的输出通道,而不是手动交错数据通道


也作为一个小的兴趣点,JAC2是用C++编写的(尽管外部API仍然是C)。我建议您从一个简单的示例客户机开始,或者修改其中一个,以完成您正在尝试的操作。

因为声音输出通常是特定于平台的,所以您应该指定要使用的操作系统。谢谢Edward,它已经修复。好的,谢谢!我会尝试一下,然后再给你回复。看来这正是我完成工作所需要的。谢谢