English

設計 Sub-Octave:為什麼我用除頻而不是移調

Qingtan 的 sub-octave 目標很窄也很明確:幫貝斯加一個扎實的降八度,而且不能糊掉低頻、不能有延遲。這個限制反而讓決策比想像中單純。

三種做法

要做出降八度,大致有三條路:

  1. FFT / phase-vocoder 移調器 — 通用又能和弦,但需要 buffer,所以有延遲、也容易把 transient 抹掉。對單音貝斯來說殺雞用牛刀。
  2. 類比式除頻(OC-2 那套) — 把輸入方波化,用 flip-flop 把頻率除以 2(再除以 4),再重建振幅。優雅、零延遲,但經典版是電路而不是公式。
  3. DSP zero-crossing 除頻 — 偵測波形過零點,在過零時切換極性/狀態,用它逐個 sample 合成低八度。

我的選擇與理由

我選了 zero-crossing 除頻(做法 3),這是 OC-2 概念的 DSP 版本。

對貝斯來說這是對的取捨:

  • 零延遲。 沒有分析 buffer,低八度就能緊貼原音——對必須和大鼓咬合的貝斯至關重要。
  • 貝斯(多半)是單音。 除頻只在單音時乾淨,而貝斯正是這樣彈的。這方法的弱點在這裡不成立。
  • 基頻夠強、好追蹤。 貝斯有強勢的低頻基頻,zero-crossing 偵測很穩——讓這方法在吉他和弦上脆弱的因素,在這裡不存在。

實際表現(與穩定度小技巧)

原始的過零追蹤,一遇到泛音或雜訊過零就會抖。三個便宜的保護解決了大半:

  • 偵測前先 pre-lowpass,讓除頻器追基頻而不是上面的雜訊。
  • amplitude gate,讓靜音與手指雜音不會觸發假的過零。
  • 後級濾波 + dry/oct-1/oct-2 混音,讓合成的八度融進音體,而不是聽起來像生的方波。

結果是保留了原音的 attack,低八度在底下把重量填滿——是紮實,不是糊。

下一篇:同一個「保護低頻」的直覺,也出現在我怎麼調 filter。