查看完整版本: [-- 【测试】如何转换可循环播放的adx --]

【 浮游城 - Castle in the Sky | 开放邀请注册,PS|SS|WII|DC下载研究中心 】 -> 【 DC 窝棚 | DreamCast Wikiup 】 -> 【测试】如何转换可循环播放的adx [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

YZB 2012-06-03 00:31

原来一直想写个教程的,都懒得动手,近日kona又提到以前做的那个街霸,想起来那游戏音乐没循环,重新做个又麻烦,授人以鱼不如授人以渔,所冶ΡΥ个简单的教程,方便大家自由转换 diy adx音乐吧~、

wav转换成adx音乐的程序好像有一些,不过支持音乐循环的好像没几个,个人习惯用dos窗口转换的adxencd.了,出错率小一点~

先下载附件的压缩包,解压,里面包含了4个文件


CinePackcc.exe 播放adx音乐的播放器,用来测试转换后的adx文件

2.wav 测试转换用的wav文件

adxencd.exe 转换程序

test.bat 转换用的bat快捷方式(修改编辑就是用这个文件了)


先看看adxencd程序的说明:


复制代码
  1. ||||||||||||   ADX Audio decompression tool Ver.4.70    ||||||||||
    Software Audio Encoder for "CRI ADX for Dreamcast"     1999-11-30
    Copyright(c) 1996-1999 CRI

           Usage: adxencd <Input PCM File> [Output Dir] [Options]
    <PARAMETER>
        Input  PCM File : Input audio data file [.wav|.aif]
        Output Dir|FIle : ADX output directory or file
                          'File' should be specified extention[.adx]
    <OPTIONS>
        -sf<sfreq>      : Sampling freq. for compression [Hz] def=same as input
        -ch<mode>       : Audio data channel  def=not specified
                          0=Left  1=Right  2=L/R exchange  3=(L+R)/2(MONO)
        -lmsec<msec>    : Compression data size [msec] def=input data size
        -lcof<freq>     : CutOff freq. for down-sampling LPF [Hz] def=Auto
        -ldim<dim>      : Down-sampling LPF dimension
        -lps<pos>       : Loop start position [smpl]
        -lpe<pos>       : Loop end position [smpl]
        -lpa            : Loop all
             -p2g<switch>    : Gain data, 2's power  ON=1/OFF=0 def=OFF
        -sbg<switch>    : Gain data, number of bit shift ON=1/OFF=0 def=OFF
        -dflt           : Specify ByMatch as DFLT filter type
        -k<k1>          : Factor of filter1(double value) def=not specified
        -nf<nfilt>      : Specify filters to be optimized (0..nfilt-1 are specified)
        -lkb<byte>      : Max. size of compress data[Kbyte] def=not specified
        -cof2<freq>     : ADPCM2 High-pass filter CutOff freq. def=%s Hz
        -b<blksize>     : Compression data block size [smpl] def=%s
        -f<filtno>      : Fixed filter number [-1..3] , -1=Optimize def=ADPCM2
        -dbg<pos>       : Sample number, encoding information required.
        -r<type>        : Output RDS file [??r.wav]
                          1=RDS  2=After gain adjust 3=Reproduced signal
        -w[filename]    : Output encoded audio data file
                          WAV data after LPF and down-sampling
                          [??@.wav] is used if filename was not specified.
        -opt            : Display all options (including DebugOption)






英文不好的是不是和我一样看着很晕,嘿嘿,其实弄懂几个关键的指令就可以了~~(求英语达人翻译一下上面那段说明)

用记事本打开test.bat文件,然后会发现下面就写了1行

adxencd 2.wav D:\adx\2.adx -sf=44100Hz -lps=220500 -lpe=441000

来看下这些都代表什么意思~

adxencd 主程序文件,不用说

2.wav 需要转换的wav文件记得必须查看采样率,下面需要用到,大部分的音乐播放器都可以查看采样率的,目前这个文件是44100hz

D:\adx\2.adx 输出文件位置,这个只能是绝对地址,不能是相对地址~~

-sf=44100Hz 输出采样码率 (转换的文件和输出的adx文件采样率必须一致) dc只认那几个标准的采样率 22050 32000 44100 48000.........

-lps=220500循环起点
-lpe=441000 循环结尾

这2个的计算方法为 开始时间(单位秒)x采样率

比如我这个测试文件想从第5秒开始到第10秒一直循环播放,第一个就填 5x44100(采样率)=220500第2个就填 10x44100(采样率)=441000

如果你是想整个音乐从头到尾都循环的话就不需要计算了,直接在输出采样码率后面写上一个 -lpa 就可以了~


这样写好以后保存,在运行bat就可以得到可循环的adx文件了~
赶紧用播放器测试一下吧~


最后说一下,这个也是支持批量转换的,在bat上编辑好就可以了~

比如像这样


adxencd 0.wav D:\adx\0.adx -sf=44100Hz -lps=220500 -lpe=441000
adxencd 1.wav D:\adx\1.adx -sf=44100Hz -lps=220500 -lpe=441000
adxencd 2.wav D:\adx\2.adx -sf=44100Hz -lps=220500 -lpe=441000
adxencd 3.wav D:\adx\3.adx -sf=44100Hz -lps=220500 -lpe=441000


关键就是要编辑好循环起点 和循环结尾就可以了~~

kona 2012-06-03 10:38
终于有个比较详细的嘹解 多年怨念有望解决 先收藏慢慢品尝

jin8182373 2012-12-01 15:07
有个比较详细的

sky0611 2014-06-20 10:54
这么不错的帖子.竟然没几个人
试了下效果不错!自己来掐循环ADX难免有点不准~
Y大!有没有办法修改一下里面的test.bat

能不能让他自动识别当前文件夹(就是D:/ADX文件夹)下的wav文件!
每次修改名字有点麻烦!然后让其输出也是此名字!

意思就是我吧wav丢进去!然后修改循环.执行就可以了

这样就方便多了!不知道可不可以实现~

mr.n 2020-01-02 02:20
是不是替换DC音乐的,都是不需要制定开始和结束,要整个曲子都要循环?


查看完整版本: [-- 【测试】如何转换可循环播放的adx --] [-- top --]


Powered by PHPWind Code © 2003-08 PHPWind
Gzip enabled

You can contact us