c – 生成没有图书馆的声音?
发布时间:2020-12-16 06:02:17 所属栏目:百科 来源:网络整理
导读:我正在寻找文档,教程,如何产生声音的示例.我的意思是没有使用将隐藏所有有趣的东西的图书馆. 我有兴趣的声音,我想开始做某事,但我不知道从哪里开始. 纠正我,如果我错了,但生成声音的最低级别是其中之一(DirectSound ,CoreAudio,ALSA,OSS),具体取决于操作系统
我正在寻找文档,教程,如何产生声音的示例.我的意思是没有使用将隐藏所有有趣的东西的图书馆.
我有兴趣的声音,我想开始做某事,但我不知道从哪里开始. 纠正我,如果我错了,但生成声音的最低级别是其中之一(DirectSound 这是真的值得吗?我应该只学习一个包含上述所有的图书馆,并提供跨平台的兼容性? 也许这个问题不是很清楚,我很抱歉,但事实证明,我甚至不知道我想要什么.我只是为了找到我的论文有趣的东西. 解决方法
这是一个让你开始的例子.
// 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声称是跨平台的.感兴趣的主要特征是您可以创建(或使用现有的)插件来构建音频过滤器的流水线. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |