Method: AudioStream::Fx::Panning#initialize

Defined in:
lib/audio_stream/fx/panning.rb

#initialize(pan: 0.0) ⇒ Panning

Returns a new instance of Panning.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/audio_stream/fx/panning.rb', line 4

def initialize(pan: 0.0)
  @pan = pan

  l_gain = 1.0 - pan
  lr_gain = 0.0
  if 1.0<l_gain
    lr_gain = l_gain - 1.0
    l_gain = 1.0
  end

  r_gain = 1.0 + pan
  rl_gain = 0.0
  if 1.0<r_gain
    rl_gain = r_gain - 1.0
    r_gain = 1.0
  end

  normalize = [1.0 - pan, 1.0 + pan].max

  @r_gain = r_gain / normalize
  @rl_gain = rl_gain / normalize
  @l_gain = l_gain / normalize
  @lr_gain = lr_gain / normalize
end