计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

也谈下重放*.wav文件

2017-09-10 06:39
导读:理工论文论文,也谈下重放*.wav文件论文样本,在线游览或下载,科教论文网海量论文供你参考:《计算机世界月刊》1995.3期曾刊登了《在dos下使用windows *.wav文件》一文,根据
《计算机世界月刊》1995.3期曾刊登了《在dos下使用windows *.wav文件》一文,根据《在》文中所附的源程序重放wav文件,发现其音质确实较差;又用文中所提及的第二种延时方法,效果并无改善(大概是循环次数int(vol[counter]/256)≡0)。究其原因,可能是重放时将原wav文件中127/128的有用信息抛弃了。
实际上,我们是可以把原来抛弃的127/128的有用信息捡回来的。我们知道,wav文件中所存的是采样时的电压幅值信号,只要将电压信号重现在pc的小喇叭上,就可以逼真地重放wav文件了。
喇叭上发出的声音,实在就是驱动喇叭的电压变化。而对pc上的数字开关喇叭,只有“0”和“1”两种状态:“1”时喇叭纸盆向外运动,“0”则纸盆向内运动而回复正常位置。
但是向喇叭发送“1”信号时,喇叭向外运动有一个延迟时间,当喇叭还没到达最外位置时,立即再发送“0”信号,纸盆来不及运动到最外位置而转向向内运动。根据这一原理,我们控制喇叭向外运动的时间,就可以间接地控制纸盆运动的幅度,从而根据wav文件的采样值来控制喇叭的声音大小。
对于pc时钟,显然来不及控制纸盆运动的幅度(即使对8253定时器重新编程,也无法使纸盆从正常位置到最外位置有若干个int08h发生),因此,对于wav文件的延时,只能采用loop指令。实际上,windows也正是用这种方法来延时的(以标准模式和增强模式分别启动时,windows要重新建立延迟时间而发出测试的声音)。
程序中读wav文件头信息和wav数据与《在》文相同,发声子程序重新改写了。若发出的声音在频率上有失真,可以修改wave函数中cx的初值(386增强模式、386dx33微机上windows使用0x13)。
程序运行环境:386兼容机,dos6.2,twrbo c 3.0编译系统。
#include
    上一篇:基于dsp三相变流器滑模变结构控制(b) 下一篇:没有了