檔案狀態:    住戶編號:2315968
 PaulLiu 的日記本
快速選單
到我的日記本
看他的最新日記
加入我的收藏
瀏覽我的收藏
Cadencii 《前一篇 回他的日記本 後一篇》 國際軟體研討會 DebConf
 切換閱讀模式  回應  給他日記貼紙   給他愛的鼓勵  檢舉
篇名: Utau的 wavtool
作者: PaulLiu 日期: 2011.06.12  天氣:  心情:
這方面的文件幾乎沒有. 我想可能的原因是太簡單而微不足道.
但還是稍微的寫下來. 除了避免別人重複花心力於此. 也可算是決心與毅力的證明.

當我們直接使用 wavtool.exe 時, 會發現他需要參數如下
wavtool2 <outfile> <infile> offset length p1 p2 p3 v1 v2 v3 v4 ovr p4 p5 v5

其中 outfile 就是要輸出的檔案. 也會拿來當做輸入使用. 所以輸出檔以 out.wav.whd out.wav.dat 儲存.
分別是 WAVE 的 header 及 WAVE 的資料部份.
而 infile 則是輸入檔, 會依據後面的參數來調整, 並且連接(或部份重疊)至 outfile.

而之後的參數則鮮少有文件說明. 不過只要用幾個檔案輸入進去研究一下, 我們不需要一天就可以知道他的用途.
其中 offset 以 ms 為單位, 決定捨棄多少部份的 infile.
length 的格式為 XXX@TEMPO(+|-)YYY.YYY 其中 TEMPO 就是樂曲的節奏, XXX 的單位是 1/480 個四分之一音符.
而 YYY.YYY 單位則是 ms. 可以對前面的 XXX@TEMPO 進行 +/- 的修正.

ovr 則為 overlap 的長度, 單位為 ms. 要注意的是 length 如果換算成 X ms, 而 ovr 為 Y ms, 則檔案增加的長度應該是 X-Y ms. (因為 Y ms 要與之前留下的 Y ms 進行 mix)

而 p1 p2 p3 p4 p5, v1 v2 v3 v4 v5 分別表示 "點" 與 "聲音大小".
pX 的單位為 ms, 為相對位置, 而 vX 的單位為百分比. 用來調整聲音大小.
使用方法是, 假設檔案開頭(去除offset後)為 p0=0 ms, v0=0%. 檔案結尾為 pe ms, ve=0%
p0=0 -> p1 -> p2 -> p5 ... p3 <- p4 <- pe
v0=0 -> v1 -> v2 -> v5 ... v3 <- v4 <- ve=0
也就是 p1 為距檔案開頭多少ms, p2為距p1多少ms.
我們必須調整聲音的大小至 vX 於相對應的位置上.
中間的部份則用線性內插.
一般來說 p5 很少使用, 所以幾乎都是 p5=0, v5=v2 這樣設定.

也就是說, 要實做這個程式絕對不是件難事. 比起 resampler.exe, 這簡單得太多.

標籤:
瀏覽次數:1612    人氣指數:1812    累積鼓勵:10
 切換閱讀模式  回應  給他日記貼紙   給他愛的鼓勵 檢舉
給本文愛的鼓勵:  最新愛的鼓勵
Cadencii 《前一篇 回他的日記本 後一篇》 國際軟體研討會 DebConf
 
住戶回應


給我們一個讚!