c – 生成没有图书馆的声音?

前端之家收集整理的这篇文章主要介绍了c – 生成没有图书馆的声音?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找文档,教程,如何产生声音的示例.我的意思是没有使用将隐藏所有有趣的东西的图书馆.

我有兴趣的声音,我想开始做某事,但我不知道从哪里开始.

纠正我,如果我错了,但生成声音的最低级别是其中之一(DirectSound
,CoreAudio,ALSA,OSS),具体取决于操作系统.所以我必须选择一个操作系统并学习适当的音响系统?

这是真的值得吗?我应该只学习一个包含上述所有的图书馆,并提供跨平台的兼容性?

也许这个问题不是很清楚,我很抱歉,但事实证明,我甚至不知道我想要什么.我只是为了找到我的论文有趣的东西.

解决方法

这是一个让你开始的例子.
// filename "wf.cpp" (simple wave-form generator)

   #include <iostream>
   #include <cmath>
   #include <stdint.h>

int main()
   {

   const double R=8000; // sample rate (samples per second)
   const double C=261.625565; // frequency of middle-C (hertz)
   const double F=R/256; // bytebeat frequency of 1*t due to 8-bit truncation (hertz)
   const double V=127; // a volume constant

   for ( int t=0; ; t++ )
      {
      uint8_t temp = (sin(t*2*M_PI/R*C)+1)*V; // pure middle C sine wave
   // uint8_t temp = t/F*C; // middle C saw wave (bytebeat style)
   // uint8_t temp = (t*5&t>>7)|(t*3&t>>10); // viznut bytebeat composition
      std::cout<<temp;
      }

   }

通过ALSA接口在Linux上编译并运行:

make wf && ./wf |aplay

通过GStreamer接口在Linux上编译和运行:

make wf && ./wf |gst-launch-0.10 -v filesrc location=/dev/stdin ! 'audio/x-raw-int,rate=8000,channels=1,depth=8' ! autoaudiosink

GStreamer声称是跨平台的.感兴趣的主要特征是您可以创建(或使用现有的)插件来构建音频过滤器的流水线.

原文链接:https://www.f2er.com/c/112931.html

猜你在找的C&C++相关文章