Class: Deftones::Core::ScaleExp

Inherits:
Scale show all
Defined in:
lib/deftones/core/signal_operators.rb

Constant Summary

Constants inherited from Signal

Deftones::Core::Signal::EXPONENTIAL_UNITS

Instance Attribute Summary collapse

Attributes inherited from Scale

#max, #min

Attributes inherited from ComputedSignal

#input

Attributes inherited from Signal

#clamp_values, #context, #convert_values, #default_value, #input, #max_value, #min_value, #output, #units

Instance Method Summary collapse

Methods inherited from ComputedSignal

#coerce_signal, #default_units, #exponentiate, #integer_like?, #process, #ramp_to, #resolve_context, #value, #value=

Methods inherited from Signal

#add_event, #apply, #automation_anchor_time, #automation_event_count, #automation_events?, #bounded_value, #cancel_and_hold_at_time, #cancel_scheduled_values, #coerce_value, #connect, #convert, #convert=, #convert_frequency, #convert_generic, #convert_without_units, #curve_value, #db_to_gain, #disconnect, #dispose, #disposed?, #event_sort_key, #exponential_approach_value_at_time, #exponential_ramp_to, #exponential_ramp_to_value_at_time, #get, #get_defaults, #get_value_at_time, #immediate, #insert_event, #interpolate, #linear_ramp_to, #linear_ramp_to_value_at_time, #name, #now, #overridden?, #process, #ramp_to, #resolve_automation_start_time, #resolve_time, #safe_exponential_value, #sample_time, #schedule_automation, #set, #set_ramp_point, #set_target_at_time, #set_value_at_time, #set_value_curve_at_time, #target_ramp_to, #target_value, #to_frequency, #to_s, #to_seconds, #to_ticks, #value, #value=

Methods included from SignalOperatorMethods

#abs, #add, #equal_power_gain, #greater_than, #greater_than_zero, #modulo, #multiply, #negate, #normalize, #pow, #scale, #scale_exp, #subtract, #to_audio, #to_gain, #wave_shaper

Constructor Details

#initialize(input:, min:, max:, exponent: 2.0, context: nil) ⇒ ScaleExp

Returns a new instance of ScaleExp.



109
110
111
112
# File 'lib/deftones/core/signal_operators.rb', line 109

def initialize(input:, min:, max:, exponent: 2.0, context: nil)
  super(input: input, min: min, max: max, context: context)
  @exponent = coerce_signal(exponent, units: :number)
end

Instance Attribute Details

#exponentObject (readonly)

Returns the value of attribute exponent.



107
108
109
# File 'lib/deftones/core/signal_operators.rb', line 107

def exponent
  @exponent
end

Instance Method Details

#value_at(time) ⇒ Object



114
115
116
117
118
119
120
# File 'lib/deftones/core/signal_operators.rb', line 114

def value_at(time)
  min_value = @min.value_at(time)
  max_value = @max.value_at(time)
  scaled = exponentiate(@input.value_at(time), @exponent.value_at(time))

  min_value + ((max_value - min_value) * scaled)
end