Method: AudioStream::Buffer.merge
- Defined in:
- lib/audio_stream/buffer.rb
.merge(buffers, average: false) ⇒ Object
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/audio_stream/buffer.rb', line 107 def self.merge(buffers, average: false) buffers.each {|buf| unless Buffer===buf raise Error, "argument is not Buffer: #{buf}" end } if buffers.length==0 raise Error, "argument is empty" elsif buffers.length==1 return buffers[0] end dst = buffers.inject(:+) if average gain = AGain.new(level: Decibel.mag(1.0/buffers.length)) dst = gain.process(dst) end dst end |