下面有一个例子,或以帮助大家更好的理解正弦函数如何变成声音,有兴趣的朋友可以把它拷到编译器中运行。它会生成一个44100采样,单声道、16位格式的PCM文件new.pcm,可以用cooledit进行播放!

#include <math.h>
#include <iostream>

#pragma warning(disable:4996)
#pragma warning(disable:4244)
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int sample_rate = 44100;
double step = atan(1.0)*8/sample_rate;  // 2*pi/44100
int sample_scale = (int)pow(2.0,16-1);  // 2^15
FILE *pFile = fopen("new.pcm","wb");
double t = 0.0;
double sample;
// 生成10秒数据
for(int s = 0; s < sample_rate*10; s++)
{
sample = 0;
//        sample = (sin(t) cos(20*t) sin(30*t)*cos(t*40) sin(t*50) cos(t*600) sin(t*125) sin(t*87))/6;
double x = min(sin(t),cos(t));
double y = max(300 200*cos(t),300 200*sin(t));
double z = max(300 200*cos(t*1.5),300 200*sin(t*1.7));
sample = (tan(t*2)*sin(x*y*600)*abs(sin(t/10))*abs(cos(t/5)))*0.2;
sample = abs(sin(t*10))*sin(x*y)*0.45;
sample = sin(sin(z*t*0.1))*0.15;
short nSample = sample*sample_scale;
fwrite(&nSample,1,2,pFile); 
fflush(pFile);
//        printf("s=%d\n",s);
t = step;
}
fclose(pFile);
return 0;
}

转载于:https://www.cnblogs.com/icoolmedia/p/sin_to_pcm.html

正弦函数如何变成声音相关推荐

  1. 关于声音的前后左右上下的控制以及单声道立体声的区别

    一. 声像 在立体声重放技术中,用摆声像的方法把各个乐器的位置还原出来,这就是声像.一个乐器就是一个声像点. 我们知道声音是一种波,点击下面链接以flash形式演示波的振动. http://huang ...

  2. 用计算机观察声音的波形,用几何画板观察声音的波形

    用几何画板观察声音的波形 殷正徐 (江苏省沭阳高级中学,江苏 沭阳 223600) 本资料word版本可以到www.wuliba.net下载word版本 在人教版新课标教材<选修3-4>第 ...

  3. 单片机如何发出类似和弦的声音

    蜂鸣器声音优化 1.优化思路 蜂鸣器的控制,在单片机领域,大多数人都是给一定周期的脉冲,蜂鸣器就会发出声音,而本质上,蜂鸣器只是一个金属弹片,声音大小取决于弹片的幅值,而幅值取决于施加的电压大小.电压 ...

  4. Android的声音编程--使用OpenSL ES Audio

    OpenSL ES? 是无授权费.跨平台.针对嵌入式系统精心优化的硬件音频加速API.Android NDK 给出了使用OpenSL ES来实现native-audio的例子.本文介绍了如何使用Ope ...

  5. UE4 SoundCue声音节点总结

    最近撸了一下音效,做个总结Mark一下: 1.Cue文件:音频序列化文件,能够对多个音频文件进行排序.组合.淡入淡出等操作,做出新的音频文件 2.Cue文件中的"声音节点" 2.1 ...

  6. 音频基础学习二——声音的波形

    文章目录 前言 一.声音的基础波形 1.正弦波 2.三角波 3.锯齿波 4.方波 二.正弦波 1.什么是正弦 2.什么是正弦波和正弦曲线 三.正弦波与声音 1.角频率 2.基波和谐波 基波: 谐波: ...

  7. python声音模仿_Python与声音制造(2)

    Python 与声音制造 _ _ _ _ _ _ _ _ _ 罗丹不带乐队改教数学了. 惊不惊喜? 意不意外? 还不快逃? 1 -第一部分: 声音与数学- Topic 2: 认识傅里叶级数函数 如果你 ...

  8. 人工智能在音频链中找到自己的声音

    人工智能在音频链中找到自己的声音 AI finds its voice in audio chain 硅基silicon-based麦克风的出现重塑了音频领域.但在未来几年,市场研究公司Yole Dé ...

  9. DSP28335声音降噪(未完成)

    1. 确定使用的模块是Webrtc-NS,采集声音的芯片TLV32AIC23,实际测试发现Webrtc-NS无法使用,所以改成FIR滤波器. 从时域特性上来看,数字滤波器还可以分为有限冲激响应数字滤波 ...

最新文章

  1. linux怎么修改vdo的名字,linux中VDO的使用
  2. 让自己的程序支持livewriter
  3. Java小结(三)——打印完美杨辉三角
  4. iptables实现网络防火墙及地址转换
  5. 你这么努力为什么还是做不好?
  6. SpringIOC的依耐注入DI---set注入---constructor有参构造注入---了解P命名空间---了解SpEL
  7. IntelliJ IDEA 2019.3要起飞了,主要解决这些痛点...
  8. CSS, JavaScript, jQuery实现标签页切换
  9. 对损失函数的总结(持续更新)
  10. js cookie 存储checkbox_[cookie实战记录-1]种下一个cookie
  11. 一图看懂华为云DevCloud如何应对敏捷开发的测试挑战
  12. 英语阅读理解关于计算机,一篇摘选的关于计算机的英语阅读材料,对大家的英语也许会有提高!...
  13. 笔记-Handheld multi-frame super-resolution之一
  14. 虚拟机 Ubuntu安装gcc和g++
  15. 软件测试面试题整理(一)之自动化测试题大合集
  16. openwrt 需要高级浏览器_斐讯K2P刷openwrt设置mentohust
  17. jq ajax传参的两种方式
  18. 【ZBH选讲·模数和】
  19. 【产业互联网周报】阿里增持菜鸟;微信支付宝向外国游客开放服务;百度推“区块链+智能城市”建设...
  20. 学习python第五天

热门文章

  1. 元数据(ResultSetMeta接口)学习笔记
  2. 基于自研分布式内存及流数据库技术的柏睿数据宣布获2亿元C轮融资
  3. 怎样在主机上安装deepin Linux
  4. 日常填坑 ——linux服务器,mongodb吃内存,导致服务器缓慢
  5. Ubuntu 上使用的下载工具,不是只有迅雷(又不好用)FireDM
  6. APP运营分析数据分析及关键指标
  7. OkHttp从使用到源代码分析(2)-请求的使用方法
  8. LightSwitch中自动编号的生成
  9. 深圳驾考东森路考纪实(2012-8-4通过)
  10. OutputDebugString 封装