Try MaybeCabinetIR (github.io)
See list of other web synthesizers (github.io)
MaybeCabinetIR is impulse response (IR) generator which resembles guitar cabinets.
The sound is a bit too clean, but it works okay. When `Source -> LP Q` is high, strange delays are added to IR. Maybe this can be used for another reverb IR generator.
At start, I analyzed several cabinet IRs and came up with the recipe below:
- Peaking at 100 to 200 Hz, around +20 dB. Broad Q.
- Peaking at 1000 to 3000 Hz, +10 to +20 dB. Less broad Q.
- (Optional) Negative peaking or notch at 500 to 1000 Hz. Narrow Q.
Character is mostly decided by the ratio between lower and higher peak.
IR is generated by following steps:
- Generate random noise.
- Apply low-pass bidirectionally.
- Apply inverse FFT.
- Rotate half to move peak into center
- Apply peaking filters bidirectionally.
- Transform 5 into minimum phase FIR.
- Apply highpass and lowpass to remove direct current and Nyquist frequency.
- Normalize amplitude.
The recipe is used at step 5. Bidirectional filtering is a technique to apply IIR filter as linear phase. It can only work on offline (or non real-time) processing as all the signal has to be known beforehand. Minimum phase algorithm is ported from `scipy.signal.minimum_phase`.
---
MaybeCabinetFIR を試す (github.io)
Web シンセサイザの一覧を見る (github.io)
MaybeCabinetIR はギターキャビネットに似せたインパルス応答 (IR) の Web シンセです。
クリーンすぎる感じもしますが、それなりに使えます。 `Source -> LP Q` の値が大きいとき変なディレイが現れます。また別のリバーブ IR 合成器へと応用できそうです。
制作にあたっては、いくつかキャビネット IR を分析して以下のレシピにたどり着きました。
- ピーキング、 100 ~ 200 Hz, +20 dB 付近。広めの Q 。
- ピーキング、 1000 ~ 3000 Hz, +10 ~ +20 dB。やや狭めた Q 。
- (任意) 負のピーキングかノッチ、 500 ~ 1000 Hz。狭い Q 。
音のキャラクターは高低のピーキングのゲイン差で決まります。
IR は以下の手順で合成しています。
- ランダムなノイズを生成。
- 双方向にローパスを適用。
- 逆 FFT 。
- ピークを中央に動かすように半分回転。
- 双方向にピーキングを適用。
- 最小位相 (minimum phase) FIR に変換。
- ローパスとハイパスで直流とナイキスト周波数を除去。
- 振幅の正規化。
先のレシピはステップ 5 で適用されます。双方向フィルタリングは IIR フィルタを線形位相を保ったままかけるテクニックです。事前に信号がすべて分かっている必要があるのでオフライン (あるいは非リアルタイム) 処理でなければ使えません。最小位相に変換するアルゴリズムは `scipy.signal.minimum_phase` から移植しました。