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

c – 生成没有图书馆的声音?,第1张

概述我正在寻找文档,教程,如何产生声音的示例.我的意思是没有使用将隐藏所有有趣的东西的图书馆. 我有兴趣的声音,我想开始做某事,但我不知道从哪里开始. 纠正我,如果我错了,但生成声音的最低级别是其中之一(DirectSound ,CoreAudio,ALSA,OSS),具体取决于 *** 作系统.所以我必须选择一个 *** 作系统并学习适当的音响系统? 这是真的值得吗?我应该只学习一个包含上述所有的图书馆,并提供跨平 我正在寻找文档,教程,如何产生声音的示例.我的意思是没有使用将隐藏所有有趣的东西的图书馆.

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

纠正我,如果我错了,但生成声音的最低级别是其中之一(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声称是跨平台的.感兴趣的主要特征是您可以创建(或使用现有的)插件来构建音频过滤器的流水线.

总结

以上是内存溢出为你收集整理的c – 生成没有图书馆的声音?全部内容,希望文章能够帮你解决c – 生成没有图书馆的声音?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1251872.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存