将Adobe Audition变为专业的音乐游戏编辑器

      最近在做一款音乐舞蹈类游戏,一直苦于没有合适的编辑器,本来就不是很大型的游戏,专门为它再做个编辑器就划不来了.一开始的替代方案是用千千静听中的lrc歌词文件制作功能,一边听歌,一边按快捷键将要编辑动作的音节记录下来,然后歌词部分就写自己要的动作名称.这样编了大概两三首歌就已经吐血了,这样编歌不仅要一次成功,而且音节对应动作并不十分精确.而且播放器也只能精确到以秒为单位,后期基本没有维护的可能.

     3dmax做为游戏的场景编辑器已经是司空见惯了,但是有没有一款软件可以改为音乐游戏编辑器呢,试了很多终于发现了Audition这款专业的音频软件,Adobe Audition 支持三种插件格式,一个是扩展音频格式的,一个是扩展合成特效的,一个是导出插件,想在里面像3dmax一样写界面工具还是挺难的,不过好在它内部就有个强大的音符备注功能.点击一处波形,按f8即可添加备注,并且在后期维护时,即使前面有删除修改等操作,备注也会始终跟着原来音符的位置走.音符的种类也有很多,还可以编辑长音等复杂音符.

       最终要解决的问题就是如何把它们导出成自己的格式,Audition编辑一首歌曲时会生成.pk文件,开始我以为这是他的项目工程文件,分析内容后发现pk文件只是起缓存作用,方便下次编辑更加快速,那这样备注信息究竟隐藏在那里呢,莫不是直接写入了音频文件里?

       对比了下编辑和未编辑的wav文件发现果然如此,wav文件遵守的是标准的window资源文件协议RIFF,所以对它加入新的数据块是不会影响原有内容的.RIFF协议非常简单 文件头为RIFF  然后是数据块chunk 每个chunk包含4字节的标识符+4字节存储数据大小+数据内容 chunk不能在包含子chunk,但是特殊标识符LIST可以当做子chunk来使用,LIST后面数据区中可以在包含chunk.wav文件的格式网上也是无数攻略.最难的就是Audition自己添加的数据块.

       经过本人对16进制数据的逐行吐血分析,终于将Adobe Audition的wav文件格式分析清楚了.详见下表.

RIFF chunk 16进制标识符:52 49 46 46(RIFF)   


WAVE chunk 16进制标识符:57 41 56 45(WAVE)
WAVE chunk包含两个 chunk   fmt   和 data
fmt  (注意最后是一个空格) 16进制标识符:66 6d 74 20
其中在fmt数据区中第 4 – 8 区域是该音频的采样率(整型),这个数据需要取到后面有用.
data chunk 16进制标识符:64 61 74 61
data数据区全是音频的波形数据我们基本用不着直接取大小跳过.

再下面就是Audition对wav文件新增的chunk了

由于我的全部音符都用的默认类型,即cue类型,所以标识符为cue,如果改用其它音符类型标识符会不一样.
1.cue  (注意最后是一个空格)   16进制标识符:63 75 65 20
数据区 0-4 : 标识的数量
数据区 4-xxx : 每24位表示一个音符的时间信息 
           0-4位 id  4-8位 begin时间  8-12 data 12-20 全是0  20-24 未知,一般和begin时间内容相同,估计是end时间

Audition的时间记录为一个32位整型 代表第几个节拍,节拍位置转化为真正的时间先要读取wav的采样率,就是我们之前读取过的,如每秒44100hz 就是44100   
音符时间(秒) = 节拍数/采样率   44100的采样率约等于 0.02267566毫秒一拍


2.LIST  16进制标识符:4c 49 53 54
这里启用RIFF的特殊标识符LIST说明数据区中包含了若干个子chunk

       1.adtl 
          ltxt 16进制标识符:6c 74 78 74  size:20
          数据区 0-4 : id   4-8:长度   8-12:类型(默认为rgn)
          这个数据块存储音符的长度等信息,我不需要取所以跳过
       2.labl  16进制标识符:6c 61 62 6c
       数据区 0-4 id  4-xxx  标题内容
       这里的标题内容就是在备注里写的动作的名称,取出就知道该音符是那个动作了,注意,这里如果你存的是中文内容的话,Adobe Audition存在一个超级bug,数据的大小它是少算一位的,所以如果内容为中文,按照他的数据大小读完后再多读一个字节才能到下一个数据块,同样所有数据区存储的是中文内容的都要向后多读一字节,比如下面的描述内容.在此也BS下Adobe.
       3.note   16进制标识符:6e 6f 74 65    
           数据区  0-4 id    4-xxx  描述内容 这里存储的就是在备注里写的description了,想写啥写啥,不过重要信息一般存到标题中比较好.

我用的版本是Adobe Audition3.0  新版就不知道一样不一样了.
我QQ:184107415 静候轮回,欢迎游戏圈内的同行来交流.

最后截图留念
热舞吧歌曲编辑器

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值