合成器(Wavtool)

合成器介绍


作用

  • 对重采样器输出的音频裁剪、添加音量包络、拼接。

命令行

wavtool2 <outfile> <infile> offset length p1 p2 p3 v1 v2 v3 v4 ovr p4 p5 v5

参数

必选参数

  • 第一个参数:输入文件(如a.wav)
  • 第二个参数:输出文件(如temp.wav)
  • 第三个参数:StartPoint(实数)
  • 第四个参数:输出长度(音长@曲速±校正值)
  • 第五个参数:音量包络p1
  • 第六个参数:音量包络p2

可选参数

  • 第七个参数:音量包络p3(一旦指定了,必须指定重叠及之前所有参数)
  • 第八个参数:音量包络v1
  • 第九个参数:音量包络v2
  • 第十个参数:音量包络v3
  • 第十一个参数:音量包络v4
  • 第十二个参数:重叠
  • 第十三个参数:音量包络p4
  • 第十四个参数:音量包络p5
  • 第十五个参数:音量包络v5

补充说明

关于输出长度

  • 格式:音长@曲速±校正值
  • 示例:480@120+50.1,120@105-41
  • 音长就是以tick为单位的音长。
  • 校正值 = 先行声音(校正后)+ 末端偏移
    详见 咬合校正
  • 注意事项:校正值+理论长度不能变成负数。

关于合成结束信号

  1. 对于一般的合成器

    • 需要将拼接的音频划分为 temp.wav.whd(文件头)与 temp.wav.dat(数据内容)。
    • 第一次调用产生这两个文件,后续调用将数据追加在dat文件上。
    • 批处理在最后一次拼接后合并这两个文件,生成一个完整的 temp.wav。
  2. 针对 moresampler(合成器模式)

    • 每次调用会将缓存的文件名(类似文本的格式)直接写入 temp.wav 作为参考,结束前检测 temp.bat 文件的内容,根据缓存文件名来判断是不是最后一次调用。
    • 如果是最后一次,那么根据 temp.wav 的内容一次性拼接所有的缓存文件。
    • 因此如果要自己写程序调用引擎并兼容moresampler,必须按照格式保留 temp.bat。
      • 当使用 UTAU 多核处理时由于 temp.bat 不符合单核处理的格式,moresampler 读取不到结束信号,所以会失败。
    • 使用时必须开启 UTAU 的缓存处理选项(没开时每次生成的缓存会覆盖上一次)。