用 Rust 寫的 Windows 獨立電吉他即時效果處理器——低延遲音訊引擎 + 破音 / 箱體 IR / 雜訊閘 / 殘響,對標 Neural DSP 的 standalone 模式。
設計製作 · Isan(13soul) — 全端設計工程師 · 影像及音樂創作人
⚠️ 早期版(alpha):效果鏈已含調音器 / gate / comp / drive / NAM 擴大機 / cab IR / delay / reverb 與節拍器、預設存讀,低延遲框架穩定。NAM 與 IR 需自備檔案(見下)。各效果仍在調音中,歡迎回饋。
- 低延遲音訊引擎(可即時切換後端)
- WASAPI 共享 — 免設定、相容性最好(延遲較高,約 60ms+)
- WASAPI 獨佔 — 繞過 Windows 音訊引擎,個位數~十幾 ms(實測 RME UCX II ~12ms)
- ASIO — 專業驅動直連,最低延遲 3-7ms(需自行從原始碼編譯,見下)
- TUNER 調音器:YIN 基頻偵測(降採樣,吉他 ~46–1400Hz),顯示音名 + cents 偏移,唯讀不影響音色
- 效果鏈(訊號順序):
TUNER 調音器 → GATE 雜訊閘 → COMP 壓縮 → DRIVE 破音 → AMP(NAM) → CAB 箱體 IR → DELAY 延遲 → REVERB 殘響 → 音量 → 節拍器- GATE:高增益消底噪用的雜訊閘(快開慢關 + 遲滯)
- COMP:feed-forward 壓縮,單鈕帶動門檻 + 比例,軟膝、快攻慢放,可補償增益
- DRIVE / TONE:4× 升頻非對稱 soft-clip 破音 + 二階 TONE 低通
- AMP:NAM(Neural Amp Modeler)擴大機模型,載入
.nam權重 - CAB:載入你自己的箱體脈衝響應(.wav IR),分割 FFT 卷積
- DELAY:回授延遲,分數延遲內插 + 回授阻尼,可手動 ms 或 BPM 同步(♩/♪./♪/♩3)
- REVERB:Freeverb 風格殘響
- 節拍器:依全域 BPM 出 click(第 1 拍重音),Tap Tempo 抓拍,與 delay 同步共用拍速
- 預設存讀:整條鏈參數一鍵存成
.json/ 載回(%APPDATA%\RustRig\presets) - 全程 lock-free(GUI ↔ 音訊執行緒),即時執行緒零配置/零鎖
- Windows 10 / 11(64-bit)
- 建議搭配音效介面(走 WASAPI 獨佔或 ASIO 才有低延遲;內建音效通常鎖在 ~10ms period)
- 吉他輸入 + 喇叭/耳機輸出(進出建議用同一台介面,共用時鐘避免 drift)
- 下載 Release 的 zip,解壓,直接執行
rustrig.exe - 引擎選 WASAPI 獨佔(低延遲),輸入/輸出選你的介面
- 點中間的播放鍵 → 對吉他彈
- 開 DRIVE,點「載入 IR…」選一個箱體
.wav(見下),開 CAB - 視需要開 GATE(消底噪)、REVERB(空間感)
直通(沒掛 cab)會很尖很刺,那是正常的——掛上 cab IR 才會是「音箱」的聲音。 用喇叭 + 麥克風會回授嘯叫,建議戴耳機。
本專案不附任何 IR 檔。你可以用:
- 自己購買的商業 IR 包(如 ML Sound Lab、God's Cab、Celestion 等)
- 免費 IR(網路上很多廠商有提供免費包)
支援單聲道 .wav(16/24/32-bit 整數或 float,會自動重採樣到引擎取樣率)。
| 後端 | 實測延遲(RME UCX II) | 備註 |
|---|---|---|
| WASAPI 共享 | ~66ms | 相容性最好,免設定 |
| WASAPI 獨佔 | ~12ms | 獨佔裝置,多數情況夠用 |
| ASIO | ~7ms(buffer 可再調低) | 需自行編譯,最低延遲 |
試用版不含 ASIO——ASIO SDK 是 Steinberg 專有授權,無法隨附於本散佈檔。想要 ASIO 最低延遲,請自行從原始碼編譯:
- 從 Steinberg 開發者網站 下載 ASIO SDK(免費,需同意其授權),解壓到某路徑
- 安裝 libclang(bindgen 需要)。最省的方式:
pip install --user libclang - 設兩個環境變數(或專案根目錄放
.cargo/config.toml):[env] CPAL_ASIO_DIR = "你的\\ASIOSDK\\路徑" LIBCLANG_PATH = "libclang.dll\\所在資料夾"
- 編譯:
cargo run -p rustrig-app --bin rustrig --features asio
你機器上的防毒(行為監控/勒索防護)可能會擋 bindgen/cc 的 build script 寫檔——把專案資料夾與
~/.cargo加進例外清單即可。
git clone <repo>
cd RustWindows
cargo run --release -p rustrig-app --bin rustrig需要 Rust(含 MSVC toolchain)。預設不含 ASIO,任何人都能直接編。
crates/
├── rustrig-dsp 純 DSP 核心(零 OS 依賴):drive / cab / gate / reverb / gain
├── rustrig-audio 音訊 I/O:AudioBackend trait + WASAPI 共享/獨佔 + ASIO + RT 安全工具
└── rustrig-app GUI(egui)+ lock-free 橋接 + CLI 延遲探針
即時鐵律:AudioProcessor::process 在音訊執行緒呼叫,禁止 allocation / lock / syscall。
RT 保護:FTZ/DAZ denormal 歸零、MMCSS Pro Audio、lock-free SPSC ring(rtrb)。
程式碼以 Apache License 2.0 釋出(見 LICENSE)。 RustRig's own source is released under Apache-2.0 (see LICENSE).
- ASIO 是 Steinberg Media Technologies 的商標/專有 SDK;本 repo 與公開 binary 皆不含 ASIO SDK,使用 ASIO 功能須自行取得 SDK 並遵守其授權。
- NAM 模型權重(
.nam)與箱體 IR(.wav)版權屬各自權利人,本專案不隨附、不轉散,僅於執行期讀取你提供的檔案。 - 第三方元件(ASIO SDK、nam-rs、各 Rust crate)的授權與來源見 NOTICE.md。 Third-party licenses and sources are listed in NOTICE.md.
Isan(13soul) — 全端設計工程師 · 影像及音樂創作人 / full-stack design engineer · video & music creator
- 官方網站 / Website · https://www.poofone.com.tw/
- Threads · https://www.threads.com/@isan1314558
- YouTube · https://www.youtube.com/@13Neosoul
- Instagram · https://www.instagram.com/isan1314558/
- Facebook 社團 / Group · https://www.facebook.com/groups/26340062805675868
