Method: SPCore::EnvelopeDetector#process_sample

Defined in:
lib/spcore/util/envelope_detector.rb

#process_sample(sample) ⇒ Object

Process a sample, returning the updated envelope.



46
47
48
49
50
51
52
53
54
55
56
# File 'lib/spcore/util/envelope_detector.rb', line 46

def process_sample sample
  input_abs = sample.abs
    
  if @envelope < input_abs
    @envelope = (@envelope * @g_attack) + ((1.0 - @g_attack) * input_abs)
  else
    @envelope = (@envelope * @g_release) + ((1.0 - @g_release) * input_abs)
  end
  
  return @envelope
end