关于c#实现计算机音频接口输出固定频率波形的一些问题
来源:互联网 发布:淘宝外包美工多少钱 编辑:程序博客网 时间:2024/06/09 03:38
前些日子,要做一个固定波形输出的一个小项目,所以把所思所想贴上来。
功能需求是要固定的方波波形,但是若用本身的Beep输出的话,用示波器可以看到是平滑固定的弦波,那么若要看到方波就需要在不同的时间段去调节频率,然后缩小示波器的波形倍数,这个时候可以看到方波的出现。波形幅值的大小用的是音量的大小来驱动,但是这两者之间并不存在线性关系。
Console.Beep(freq,MaxValue)
首先,要用电脑输出波形,首先用到Console.Beep(frq,MaxValue),括号里是频率大小和持续时间,频率大小介于37到32767之间,持续时间为毫秒级。
在音量调节方面仍然用到了广为流传的一些方法,控制的是windows系统音量。但是调节的时候同时会有一个问题,比如说:从音量10调节到50就要比从50调节到100所花费的时间要多,最大的调节时间会达到50ms,最小的调节时间可以达到在示波器缩短为1ms,调节时间的大小与音量的间隔大小有关,间隔时间越长调节时间越长,间隔时间越短调节时间越短,不知道是不是因为windows系统本身的问题。
可参考:http://blog.csdn.net/taoerit/article/details/43085901
但是上面这篇文章里的调节音量所需时间过长,可能会达到150ms,而且VK_VOLUME_UP和VK_VOLUME_DOWN这两个个模拟键一次是调节两个音量值无法获得单数的音量值。
参考:http://blog.csdn.net/qiujuer/article/details/41575517
上述这篇博文可以直接获得所需音量值,我只用了一部分作了一个类应用,单独参考了音量变化部分。
在每个幅值的持续时间方面,用到的是winform定时器,如果调节时间过大,会影响波形的生成。
基本就是这样,会用到两个线程,timer和Beep没办法单线程运行。
- 关于c#实现计算机音频接口输出固定频率波形的一些问题
- 关于printf输出结果的一些问题
- fft波形与实际频率的关系
- avr频率占空比可调波形输出子函数
- STM32F4_TIM输出PWM波形(可调频率、占空比)
- 关于LPC2103的改变系统时钟频率后,串口不能正常输出的问题.
- 关于STM32定时器输出方波时改变频率延时相应的问题
- C#实现wav波形图
- 关于 C# 注释问题的一些注解
- C#关于重写的一些问题
- 基于C#的波形显示控件的实现
- 关于幅值谱逆变换得原始波形的问题(matlab)
- char的问题,输出固定长度
- 关于计算机的一些发展史
- 关于自增、输出流、指针的一些小问题
- stm32f0 TIM1实现输出PWM波形
- 关于modelsim的波形文件
- 关于modelsim的波形文件
- 阿里云服务器添加swap
- bash学习
- 小程序wx.request https TLS1.2环境配置
- 有两个序列A和B,A=(a1,a2,...,ak),B=(b1,b2,...,bk),A和B都按升序排列。对于1<=i,j<=k,求k个最小的(ai+bj)。要求算法尽量高效。
- 需求分析Tips
- 关于c#实现计算机音频接口输出固定频率波形的一些问题
- (转)关于密钥管理的几个设计原则
- [00100] 字符串和文本
- redis.sentinel选择指定数据库
- Git教程学习(五)—远程仓库
- MacOS下rvm安装新版本ruby时报curl SSL证书错误的解决
- C语言专题精讲篇_4.3.指针才是C语言的精髓
- android中打开相机、打开相册进行图片的获取
- Android数据库优化