Module: Deftones::DSP::Helpers

Defined in:
lib/deftones/dsp/helpers.rb

Constant Summary collapse

DENORMAL_THRESHOLD =
1.0e-300

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.clamp(value, min_value, max_value) ⇒ Object



10
11
12
# File 'lib/deftones/dsp/helpers.rb', line 10

def clamp(value, min_value, max_value)
  [[value, min_value].max, max_value].min
end

.flush_denormal(value) ⇒ Object



26
27
28
29
# File 'lib/deftones/dsp/helpers.rb', line 26

def flush_denormal(value)
  sample = value.to_f
  sample.abs < DENORMAL_THRESHOLD ? 0.0 : sample
end

.lerp(from, to, progress) ⇒ Object



14
15
16
# File 'lib/deftones/dsp/helpers.rb', line 14

def lerp(from, to, progress)
  from + ((to - from) * progress)
end

.mix(dry, wet, wet_amount) ⇒ Object



18
19
20
# File 'lib/deftones/dsp/helpers.rb', line 18

def mix(dry, wet, wet_amount)
  (dry * (1.0 - wet_amount)) + (wet * wet_amount)
end

.soft_clip(value, drive = 1.0) ⇒ Object



22
23
24
# File 'lib/deftones/dsp/helpers.rb', line 22

def soft_clip(value, drive = 1.0)
  Math.tanh(value * drive)
end

Instance Method Details

#clamp(value, min_value, max_value) ⇒ Object (private)



10
11
12
# File 'lib/deftones/dsp/helpers.rb', line 10

def clamp(value, min_value, max_value)
  [[value, min_value].max, max_value].min
end

#flush_denormal(value) ⇒ Object (private)



26
27
28
29
# File 'lib/deftones/dsp/helpers.rb', line 26

def flush_denormal(value)
  sample = value.to_f
  sample.abs < DENORMAL_THRESHOLD ? 0.0 : sample
end

#lerp(from, to, progress) ⇒ Object (private)



14
15
16
# File 'lib/deftones/dsp/helpers.rb', line 14

def lerp(from, to, progress)
  from + ((to - from) * progress)
end

#mix(dry, wet, wet_amount) ⇒ Object (private)



18
19
20
# File 'lib/deftones/dsp/helpers.rb', line 18

def mix(dry, wet, wet_amount)
  (dry * (1.0 - wet_amount)) + (wet * wet_amount)
end

#soft_clip(value, drive = 1.0) ⇒ Object (private)



22
23
24
# File 'lib/deftones/dsp/helpers.rb', line 22

def soft_clip(value, drive = 1.0)
  Math.tanh(value * drive)
end