跳轉至內容

Reaktor/教程/應用代數 Reaktor 使用者

來自華夏公益教科書

你應該知道什麼

[編輯 | 編輯原始碼]

代數是使用 Reaktor 時最需要的數學形式。理想情況下,應該瞭解高中代數,以及至少一些三角函式的周邊知識。在 Reaktor 中通常不會遇到需要二次方程之類情況,但總的來說,你應該能夠解決單變數線性方程(例如,如果求解 x:)和雙變數線性方程(例如,如果求解 y:)。多項式中的項通常不會大於 1 次方(例如,),但你可能會在將線性控制器資料塑造成曲線時遇到它們。

有用公式

[編輯 | 編輯原始碼]

將資料從一個範圍縮放到另一個範圍

[編輯 | 編輯原始碼]


  • x = 輸入
  • f(x) = 輸出
  • m = 輸入的最小值
  • M = 輸入的最大值
  • m' = 輸出的最小值
  • M' = 輸出的最大值

例如,假設你有一個 LFO 輸出的範圍是 -1 到 1。但是,你希望 LFO 輸出的範圍是 30 到 50。我們可以使用上述公式構建一個函式,將我們的輸入從舊範圍轉換為新範圍:我們只需將我們的值代入,然後簡化。


注意: 點 ( ) 表示乘法。減去負數與加法相同。

考慮到運算順序(從優先順序最高到最低:括號、指數、乘除、加減),我們看到我們可以透過三個簡單的步驟來轉換我們的輸入

  1. 將 1 加到輸入中 -- 這將範圍 (-1..1) 轉換為 (0..2)。
  2. 將結果乘以 10 -- 這將 (0..2) 的範圍縮放到 (0..20)。
  3. 將 30 加到乘法的結果中 -- 這將 (0..20) 的範圍轉換為 (30..50),我們的目標。

以下是一個更復雜的例子,我們把輸入範圍為 -300 到 24 的資料轉換為範圍為 100 到 10000 的資料。


注意: 我們不會化簡這個分數,因為 9900 ÷ 324 會得到一個迴圈小數 (30.55555...)。

因此,我們得到以下步驟:

  1. 將 9900 除以 324 – 這將得到 30.555555...
  2. 將 300 加到輸入值 – 這會將範圍 (-300..24) 轉換為 (0..324)。
  3. 將步驟 1 的結果乘以步驟 2 的結果 – 這會將範圍 (0..324) 縮放到 (0..9900)。
  4. 將 100 加到步驟 3 的結果 – 這會將範圍 (0..9900) 轉換為 (100..10000),這是我們的目標。

如你所見,線性縮放資料就像移動、縮放、再移動一樣簡單。

MIDI 音高 => 頻率 (Hz)

[編輯 | 編輯原始碼]


  • = 音高
  • = 頻率

頻率 (Hz) => MIDI 音高

[編輯 | 編輯原始碼]


  • = 頻率
  • = 音高
  • = 自然對數

MIDI 音高 A 比 MIDI 音高 B 慢多少倍 (A < B)

[編輯 | 編輯原始碼]


  • A = MIDI 音高 A
  • B = MIDI 音高 B
  • f(x) = 輸出
華夏公益教科書