j70c手机铃声探究

关于j70c铃声的讨论
从前我一直坚持说j70c是电子合成铃声,而不是三和弦 。其实对此没有真正的研究,之所以坚持,主要是sony给我的一封回信里说这手机不是什么和弦 。而dondong2002坚持说它是三和弦,看来我现在是要向dondong投降了,哈哈 。不过有一点,dongdong并没有拿出明确的依据来说明j70c的铃声类型 。
近日,本人学习了使用sony自己开发的ringtone composer,因着sony软件的设计,对于j70c的铃声系统有了进一步的认识!下面给大家介绍一下我的研究成果 。由于是循着一些线索有结合了自己的臆测,所以错误在所难免,还望有深究的同志不吝赐教!
1.j70c的铃声结构概览
我们都知道,sony的铃声文件扩展名是.sng,即sony ringtone file 。我用一个文本编辑器把文件打开,发现它其实就是一个文本的源文件:(以xiebr提供的“凤阳花鼓”为例)
{
Name:[凤阳花鼓]
Speed:3
Rhythm:4/4
Shift:0
}
@1 W:0 V:2 N:[NoName] A:1 D:127 R:1 S:1
R8C 16R8R 16C 16R4R 16C 16R 16C 16
R 16 |R 16R 16C 16R8R 16C 16R8R 16G 16
A 16G 16R 16G 16R 16 |R 16R 16C 16R8R 16
C 16R8R 16A 16R 16G 16R 16E 16R 16 |R 16
R 16G 16G 16R8G 16R4R 16C 16R 16E 16
@2 W:0 V:2 N:[NoName] A:1 D:127 R:1 S:1
R8R 16R8R 16R 16R4R 16E 16R 16E 16
R 16 |R 16R 16R 16R8R 16R 16R8R 16R 16
R 16R 16R 16R 16R 16 |R 16R 16R 16R8R 16
R 16R8R 16R 16R 16R 16R 16R 16R 16 |R 16
R 16R 16R 16R8R 16R4R 16E 16R 16C 16
@3 W:0 V:0 N:[NoName] A:1 D:127 R:1 S:1
@4 W:0 V:2 N:[NoName] A:1 D:127 R:1 S:1
> G 16R 16> E 16R 16> D 16R 16> E 16R 16> G4.=> G 16
R 16> E 16R 16> G 16R 16> A 16R 16>>C 16R 16> G4.=
> G 16R 16> G 16R 16> G8. R 16>>C 16R 16> A8. R 16
> G 16R 16> E 16R 16> D 16R 16> G 16> G 16> E 16R 16
> D 16R 16> C4.=> C 16
@5 W:0 V:0 N:[NoName] A:1 D:127 R:1 S:1
@6 W:0 V:0 N:[NoName] A:1 D:127 R:1 S:1
@7 W:0 V:0 N:[NoName] A:1 D:127 R:1 S:1
@8 W:0 V:0 N:[NoName] A:1 D:127 R:1 S:1
@9 W:0 V:0 N:[NoName] A:1 D:127 R:1 S:1
大家可以看到其实声音文件就是一系列代码,指导手机里的声效芯片产生音乐 。这其实和midi文件驱动声卡发出不同乐器的音乐是机理相同的 。再打个比方,如果把声效芯片比作计算机的CPU,那么这个声音文件就象是java源文件生成的一段字节码,由CPU解释执行 。现在大家对此有了初步了解了吧?再来!
2. j70c声音文件的结构组织
进一步研究这个声音文件和ringtone composer程序 。可以发现,sony的铃声支持三个音源同时发声,或者说支持三种音色的乐器同时发声 。因此,如果从手机声音芯片对“和弦”一词的定义来看,这的确是三和弦!在软件里,把每一个音源叫做一个channel 。
经过实验,我发现sony定义的这一个channel和midi里的一条音轨是相对应的!即midi文件里每一个谱曲了的音轨(midi track)在转换过程中变成.sng文件的一个channel!

推荐阅读