class AudioStream::Fx::Distortion
Public Class Methods
new(gain: 40.0, level: -20.0)
click to toggle source
@param gain [AudioStream::Decibel] input gain @param level [AudioStream::Decibel] output level
# File lib/audio_stream/fx/distortion.rb, line 6 def initialize(gain: 40.0, level: -20.0) @gain = Decibel.create(gain).mag @level = Decibel.create(level).mag end
Public Instance Methods
process(input)
click to toggle source
# File lib/audio_stream/fx/distortion.rb, line 11 def process(input) streams = input.streams.map {|stream| dst = Vdsp::DoubleArray.new(input.window_size) Vdsp::UnsafeDouble.vclip(stream * @gain, 0, 1, -1.0, 1.0, dst, 0, 1, input.window_size) dst * @level } Buffer.new(*streams) end