PC-1500的代码存入WAV文件
目录
第1章保存
本章将介绍如何把PC-1500机内的BASIC代码保存到PC的wav文件内。您需要:PC-1500的底座(CE-150)、录音软件(本章以Cool Edit 2.1为例进行说明)、E500Comm14.11.23版
1.1 操作
准备一根音频线。普通的音频线也行,如下图所示
图1.1
音频线一端插入底座的MIC插孔(这是PC-1500输出音频信号的地方),另一端插入PC的MIC插孔。一定不要插入PC的Line In插孔。Line In和MIC都是PC音频输入的插孔,但它们有很大的区别:Line In直接把音频信号传给声卡,MIC会把音频信号放大后再传给声卡。PC-1500输出的音频信号很弱,使用Line In插孔,PC根本无法辨认。
运行Cool Edit 软件,新建一个波形文件,如下图所示:
采样率建议16000以上。声道固定为"单声道",采样精度固定为"8位"。
图1.2
单击下图的录音按钮,然后在PC-1500上运行CSAVE命令。Cool Edit 将录音。CSAVE命令执行完毕,请单击下图的停止按钮。
图1.3
注意波形的最大值和最小值,两者的差值应在80左右,太小则说明采集到的信号太弱了。
图1.4
解决办法就是调整PC上麦克风的音量和麦克风加强,如下图所示:
图1.5
Cool Edit里单击【文件】【另存为】菜单项,将录好的音频保存到wav文件里,如下图所示:
图1.6
1.2 波形说明
上一节记录下来的波形如下图所示。
图1.7
理想的波形应该是正弦波,如下图所示:
图1.8
码元宽度(竖线的间隔)为0.0004秒。左边3个码元内的正弦波频率为2500Hz;右边4个码元内的正弦波频率为1250Hz。高频码元被当做1,低频码元被当做0。8个码元1组成一个数据位1;8个码元0组成一个数据位0。因此,PC-1500输出的音频信号,其波特率为2500,其比特率大概为2500/8=312.5,每秒大概只能输出40个字节(事实上,每秒大概只能输出15个左右的字节。1KB的程序大概要1分钟才能传输完毕)。
1.3 波形整形
波形整形有这么几个目的:
1、图1.7所示波形其振幅非常关键:振幅太小则PC-1500将无法接收音频信号。因此,有必要将波谷的样本值调整为0,波峰的样本值调整得大一些(一般大于180即可)。
2、可以简化波形,如下图所示:可更改采样率为5000Hz,这样一个码元里只需要2个采样点。左边三个码元表示1,右边四个码元都表示0。
图1.9
简化之后,wav文件的大小会减小很多。假定录制wav文件时的采样率为16000Hz,而简化后的采样率变成了5000Hz,数据量将减少近70%。
不过,播放简化后的wav文件其波形就不是非常完美的了。下图是使用Cool Edit打开globe.wav文件(下载自www.pc1500.com)看到的内容:
图1.10
globe.wav的采样值只有两个:0和173。上图上面一排小方块的采样点,其采样值就是173。为什么不设置为最大值255呢?因为如上图所示:高频变低频时,会有一个突然变高的波峰。为了让这个突变的波峰尽量接近255,只能设置采样值的最大值为173了。
wav文件的波形整形请通过E500Comm来实现。该程序下载方法:
进入网盘 http://pan.baidu.com/s/1gd7XDkf
再进入 public\Tools\E500Comm 下载压缩包E500Comm14.11.23.rar
使用E500Comm处理wav文件的步骤:
1、运行E500Comm。选择计算器为"PC-1500",然后单击"确定"按钮;
图1.11
2、程序主界面请单击"1.程序"按钮
图1.12
3、单击【文件】【打开...】菜单项,载入wav文件,如下图所示。
图1.13
4、单击上图【文件】【保存】菜单项(或【另存为】菜单项),保存wav文件。
1.4 压缩
波形整形后,能否压缩为MP3或wma?经笔者测试是不行的。因为MP3和wma都是有损压缩。
第2章载入
本章将介绍如何把录制在wav文件里的BASIC代码载入到PC-1500机内。
2.1 操作
音频线一端插入底座的EAR插孔(这是PC-1500输入音频信号的地方,也就是"耳朵"),另一端插入PC的Line Out插孔。一定不要插入PC的耳机插孔。Line Out和耳机都是PC音频输出的插孔,但它们有很大的区别:Line Out是声卡直接输出的音频信号,耳机则是声卡输出的音频信号经放大后输出的。不使用耳机的原因一是音量太大,二是容易失真。
PC-1500上运行命令CLOAD,PC上播放wav文件。注意:PC上的能突然发声的程序请关闭,如:QQ。否则会打扰PC-1500接听wav文件。
2.2 音量
PC-1500接听声音文件,最难控制的就是音量。
该如何精准的调节音量呢?笔者在这里介绍一个方法——使用 Cool Edit 查看Line Out输出的音频信号。具体做法为:
1、将插入PC-1500底座的EAR孔的音频线插头拔下来,插入PC的Line In插孔。也就是说:Line Out输出的音频信号直接进入Line In插孔;
2、PC上播放wav文件;
3、使用Cool Edit软件录制音频,查看音频波形的振幅。这个振幅最好在170以上。
对于波形被处理后的wav文件,简单的把音量调整到最大即可(假定播放wav音频的软件是Windows Media Player,则其音量也要最大。其它播放软件不知是否放大了音频信号,最好用Cool Edit查看一下音频输出)。
第3章 wav2bin代码解析
wav2bin下载自http://www.pocketmuseum.com/index.html。它可以将wav文件转换为bas文件(文本格式的BASIC代码)和img文件(二进制格式的BASIC代码)。
3.1 读取一个数据位
3.2毫秒内,8个周期的高频波(2500Hz),表示二进制位1。如下图所示:
图3.1
3.2毫秒内,4个周期的低频波(1250Hz),表示二进制位0。如下图所示:
图3.2
换句话说就是:二进制位1与中间红线的交点个数为16;二进制位0与中间红线的交点个数为8。
数据存入wav文件时,会有1个起始位0,4个数据位,6个停止位1。所以,问题的关键在于把数据位前面的两个二进制位10读取出来。换句话说就是找到一段6.4毫秒的数据,前面3.2毫秒交点数为16,后面3.2毫秒交点数为8。这样就找到了起始位,接着读取4个数据位。