Method: AudioStream::Fx::Panning#process

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

#process(input) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/audio_stream/fx/panning.rb', line 29

def process(input)
  return input if @pan==0.0

  src = input.stereo.streams
  src0 = src[0]
  src1 = src[1]

  dst0 = Vdsp::DoubleArray.new(src0.length)
  Vdsp::UnsafeDouble.vsmsma(src0, 0, 1, @l_gain, src1, 0, 1, @lr_gain, dst0, 0, 1, src0.length)

  dst1 = Vdsp::DoubleArray.new(src1.length)
  Vdsp::UnsafeDouble.vsmsma(src0, 0, 1, @rl_gain, src1, 0, 1, @r_gain, dst1, 0, 1, src1.length)

  Buffer.new(dst0, dst1)
end