class AudioStream::Fx::HanningWindow
Public Instance Methods
process(input)
click to toggle source
# File lib/audio_stream/fx/hanning_window.rb, line 6 def process(input) #window_size = input.window_size #window_max = input.window_size - 1 #channels = input.channels #period = 2 * Math::PI / window_max streams = input.streams.map {|stream| #stream.map.with_index {|f, i| # f * (0.5 - 0.5 * Math.cos(i * period)) #} stream * self.window(input.window_size) } Buffer.new(*streams) end
window(size)
click to toggle source
# File lib/audio_stream/fx/hanning_window.rb, line 23 def window(size) @window ||= {} @window[size] ||= Vdsp::DoubleArray.hann_window(size, Vdsp::FULL_WINDOW) end