打印

凌阳音乐文件(x.BIN)数据格式解析

[复制链接]
2694|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小燕子神飞|  楼主 | 2010-5-20 09:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 小燕子神飞 于 2010-5-20 09:32 编辑

下表是我经过反复试验整理出来的,不是官方文档,不一定对哈!
整体格式:
速度+命令字+音阶+间隔+命令字+音阶+间隔+...+结束标志(3fh)
其中速度是一个字节,范围是0x00--0x1f,值越大播放速度越慢,控制字用来调节音量、选择音色、转换当前的基础音高和发出某个频率的声音。对于SPCE061A,可以同时播放6个通道的声音,所以上面的每个命令都有六种数据,对应6个通道,前2个通道是鼓点,后4个是乐器通道。当SPCE061A的解码器工作时,会顺序读取数据,遇到命令字执行命令,遇到间隔数据则延时相应的时间再读取以后的命令,直到遇到结束标志0x3f为止。
控制字格式:
30h--35h:调节通道音量,后接音量值,范围:00h--0fh,值越大声音越大
28h--2dh:选择音色,后接音色。
    对于28h,29h,音色范围是 00h--13h(对应鼓点名称在后面)
    对于2ah--2dh,音色范围是 00h--22h(对应乐器名称在后面)
20h--25h:转换音高,后面接当前的基本音高,范围是00h--04h,注意这个不是实际的发音频率,实际的发音频率等于这个值乘以12再加下面的音高。
例如从02h转到03h,那么以后发的音会提高一个八度。
音高:0xAB
    A:选择通道,范围:8,9,a,b,c,d
    B:选择音高,范围:1--c 表示12个音,相邻数字表示半音关系
    七个基本音1234567的对应值:
    1-1  2-3  3-5  4-6  5-8  6-a  7-c(3和4,1和7是半音关系)
    如果是通道0或1(A=8,9),则B的值一般为1,因为鼓点没有音高。
间隔:0x00--0x1f,越大越慢,实验发现不能用多个间隔数据表示更长的延时。
====================================================
下面是音色表,名字是我随便起的。音乐盲~~~呵呵
通道2--6的音色表:
00h:中音---------铃
01h:钟声
02h:钢琴1
03h:低音---------钢琴
04h:低音---------钢琴1
05h:小提琴
06h:低音---------钢琴2
07h:颤音---------笛子
08h:低音---------铃
09h:高音颤声---钢琴
0ah:强颤声------钢琴1
0bh:钢琴2
0ch:低音---------钢琴2
0dh:钢琴3
0eh:振动钢琴1
0fh:钢琴4
10h:强振钢琴1
11h:弱振-弱颤音--钢琴1
12h:弱振-弱颤音--钢琴2
13h:振动钢琴2
14h:强振钢琴2
15h:强颤声------钢琴2
16h:强颤声------钢琴3
17h:高音----------钢琴
18h:高音----------钢琴
19h:高音----------钢琴
1ah:高音----------钢琴
1bh:高音----------钢琴
1ch:钢琴
1dh:高音----------钢琴
1eh,1fh,20h,21h,22h:笛子
=================================================
通道0,1的鼓点表:
00h:鼓
01h:鼓
02h:鼓
03h:镲
04h:小擦
05h:小擦
06h:鼓
07h:小擦
08h:镲
09h:小擦
0ah:镲
0bh:小擦
0ch:镲
0dh:镲
0eh:镲
0fh:镲
10h:鼓
11h:小擦
12h:鼓
13h:镲
如果不清楚可以到我博客看看,有篇**用一个具体的BIN文件解释了。我还有个软件可以播放BIN文件,也可以在博客中下载:[url=http://www.myrobot.21ic.org/]myrobot.21ic.org[/url]

相关帖子

沙发
小燕子神飞|  楼主 | 2010-5-20 10:36 | 只看该作者
其实这个表没啥使用价值,凌阳的语音函数库只有MS01的高层播放函数,而底层的发音API没有公开(至少我是没找到类似windows中控制声卡的那类函数),只能播放整首歌,要做实用的电子琴是没希望了。以前我用SPCE061A做过一个电子琴,办法很别扭,就是建立一个RAM缓冲区,修改MS01的取数据函数,让它播放这个缓冲区中的数据,然后主程序反复读取键盘数据,用这些数据填充这个缓冲区,基本是实现电子琴功能了,但是时差很大,按下一个键要有零点几秒的延时后才发出声音,做着玩还行,实用性就差远了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

37

帖子

1

粉丝