Cross-feed 與 反射音處理程式
發表於 : 週四 7月 02, 2009 1:05 am
寫了一個程式,可以在 wave 檔案中添加 cross-feed 訊號與模擬聆聽空間中的反射音,
有興趣者可以下載來試試看,並請不吝討論並給予指教。
步驟為:
1. 下載檔案
http://www.FunP.Net/167420
在下還沒功力寫病毒或木馬程式,還是請掃一下毒。
2. 解壓縮,得三個檔
cross16.exe (260kB or 266,240 位元組)
cross16_readme.pdf (48.1KB or 49,325 位元組)
cross16.ini (533 位元組)
3. 準備一個雙聲道,16-bit 的 wave 音訊檔,放在同一個子目錄,
本程式只支援這種格式
4. 用 Notepad 修改 cross16.ini 的第一行與第二行
第一行為欲處理的 wave 檔的檔名,最長 128 字元,請勿在檔名中有空白字元。
第二行為輸出檔檔名
5. 執行 cross16.exe
會產生兩個檔案,一個是 wave 檔,
另一個是 log 檔,裡面有簡易的處理資訊,可用 Notepad 看
6. 聽聽看兩個 wave 音訊有何不同。
edit:
參數很重要, readme 裡面的範例只是說明參數的格式如何給,
處理過後的 wave,聽起來通常會比不處理的訊號差 。
7. 有興趣就試試 cross16_readme.pdf 裡面的 examples
example 6 為 tim.chnan 兄模擬 cross-feed 以及一次/二次反射音訊號的處理方式。
大家可以試試這個。
樓下也有 tim.chnan 兄根據理論 "計算" 出來,更新的參數,試這個會比較好。
注意:
播放產出的 wave 檔前,建議最好先將音量關小些,沒問題再開正常音量,
雖然損傷音響器材的機率應該不大,
但若各位的器材有任何損壞,在下概不負責。
-------------------------------------------------------------------------------------------------
本文的處理程式,目的並不是要超越現有技術或幹什麼的,
而是藉由簡單的參數設定與處理,試試看不同的延時 (相位) 與訊號衰減,對於聽感的影響。
訊號處理是很簡單的 (1) 讀取訊號 ,(2) 考慮延時,選資料, (3) 乘以 decay 係數, (4) 訊號相加, (5) 存檔
...........超級簡單的 process。
建議先用一個或兩個訊號混 ( i_LINK = 1 or 2) ,試試不同參數的影響。
8 個 16 bit 訊號要去混和,理論上應該輸出要 (16 + 3) bits 的輸出格式才不會損原本訊號的精度,
tim.chnan 兄一次弄個 13 *2 個訊號混到一個聲道,訊號精度就損失 4-bit 以上......
小的再來看看 24-bit wave 要怎麼弄。目前卡在 3-byte integer 的說。
不是即時的 DLL,且要用 wave 檔,有點不方便。
想方便者,建議用 4Front Headphones 的 DSP,甚至掛上 Dolbby Headphone,這兩個夠味。
-------------------------------------------------------------------------------------------------
測試時,建議用打擊類或敲擊類樂器試,如爵士鼓,鋼琴,吉他.......
用的原始 wave 則建議用人家說音場還蠻大的那種會比較好,
用人聲 solo 的 (近似單聲道錄音),可能不好。
--------------------------------------------------------------------------------------------------
tim.chnan 兄,接下來交給您了,小弟寫簡單程式還算勉強,對耳機的聽感則不行。
有興趣者可以下載來試試看,並請不吝討論並給予指教。
步驟為:
1. 下載檔案
http://www.FunP.Net/167420
在下還沒功力寫病毒或木馬程式,還是請掃一下毒。
2. 解壓縮,得三個檔
cross16.exe (260kB or 266,240 位元組)
cross16_readme.pdf (48.1KB or 49,325 位元組)
cross16.ini (533 位元組)
3. 準備一個雙聲道,16-bit 的 wave 音訊檔,放在同一個子目錄,
本程式只支援這種格式
4. 用 Notepad 修改 cross16.ini 的第一行與第二行
第一行為欲處理的 wave 檔的檔名,最長 128 字元,請勿在檔名中有空白字元。
第二行為輸出檔檔名
5. 執行 cross16.exe
會產生兩個檔案,一個是 wave 檔,
另一個是 log 檔,裡面有簡易的處理資訊,可用 Notepad 看
6. 聽聽看兩個 wave 音訊有何不同。
edit:
參數很重要, readme 裡面的範例只是說明參數的格式如何給,
處理過後的 wave,聽起來通常會比不處理的訊號差 。
7. 有興趣就試試 cross16_readme.pdf 裡面的 examples
example 6 為 tim.chnan 兄模擬 cross-feed 以及一次/二次反射音訊號的處理方式。
大家可以試試這個。
樓下也有 tim.chnan 兄根據理論 "計算" 出來,更新的參數,試這個會比較好。
注意:
播放產出的 wave 檔前,建議最好先將音量關小些,沒問題再開正常音量,
雖然損傷音響器材的機率應該不大,
但若各位的器材有任何損壞,在下概不負責。
-------------------------------------------------------------------------------------------------
本文的處理程式,目的並不是要超越現有技術或幹什麼的,
而是藉由簡單的參數設定與處理,試試看不同的延時 (相位) 與訊號衰減,對於聽感的影響。
訊號處理是很簡單的 (1) 讀取訊號 ,(2) 考慮延時,選資料, (3) 乘以 decay 係數, (4) 訊號相加, (5) 存檔
...........超級簡單的 process。
建議先用一個或兩個訊號混 ( i_LINK = 1 or 2) ,試試不同參數的影響。
8 個 16 bit 訊號要去混和,理論上應該輸出要 (16 + 3) bits 的輸出格式才不會損原本訊號的精度,
tim.chnan 兄一次弄個 13 *2 個訊號混到一個聲道,訊號精度就損失 4-bit 以上......
小的再來看看 24-bit wave 要怎麼弄。目前卡在 3-byte integer 的說。
不是即時的 DLL,且要用 wave 檔,有點不方便。
想方便者,建議用 4Front Headphones 的 DSP,甚至掛上 Dolbby Headphone,這兩個夠味。
-------------------------------------------------------------------------------------------------
測試時,建議用打擊類或敲擊類樂器試,如爵士鼓,鋼琴,吉他.......
用的原始 wave 則建議用人家說音場還蠻大的那種會比較好,
用人聲 solo 的 (近似單聲道錄音),可能不好。
--------------------------------------------------------------------------------------------------
tim.chnan 兄,接下來交給您了,小弟寫簡單程式還算勉強,對耳機的聽感則不行。