【发布时间】:2011-06-10 05:26:19
【问题描述】:
我想知道它是否可以使用声卡,并使用汇编级或 C 编程语言从中产生各种音符。
【问题讨论】:
-
在什么操作系统下?
-
如果可以在计算机上完成,则可以使用汇编程序完成,几乎可以肯定是 C 或 C++。您有更具体的问题吗?
标签: c
我想知道它是否可以使用声卡,并使用汇编级或 C 编程语言从中产生各种音符。
【问题讨论】:
标签: c
看到这个 SO 答案Streaming Data to Sound Card Using C on Windows
PortAudio 是一个免费、跨平台、开源的音频 I/O 库。它让您可以使用“C”或 C++ 编写简单的音频程序,这些程序可以在许多平台上编译和运行,包括 Windows、Macintosh OS X 和 Unix (OSS/ALSA)。旨在促进不同平台开发者之间的音频软件交流。许多应用程序将 PortAudio 用于音频 I/O。
PortAudio 提供了一个非常简单的 API,用于使用简单的回调函数或阻塞读/写接口来录制和/或播放声音。示例程序包括播放正弦波、处理音频输入(吉他模糊)、录制和播放音频、列出可用的音频设备等。
【讨论】:
是的,这是可能的。其实现很大程度上取决于您将要编码的系统。
您通常可以选择使用 DAC(数模转换器)输出,或者可能访问 MIDI。
【讨论】:
我不是声音生成方面的专家,但是……当然有可能。毕竟,在任何使用音频的应用程序中,都需要一些东西来调用声卡。
但是,几乎在所有情况下,最好调用 API,并让系统现有的声卡驱动程序完成所有繁重的工作。更便携(……至少在某种程度上),也更容易。
http://www.linux.com/archive/feature/113775 可能有一些很好的信息。对于 Windows Vista/7,您可以查看http://msdn.microsoft.com/en-us/library/dd370784%28v=vs.85%29.aspx。
哦,在许多情况下,您最好使用可以生成音符的现有软件库,而不是尝试自己生成波形。 (参见 Fredrik 的回答。)
【讨论】: