Class: Sunniesnow::Charter::TimeDependent::InterpolablePiecewiseData
- Inherits:
-
PiecewiseData
- Object
- PiecewiseData
- Sunniesnow::Charter::TimeDependent::InterpolablePiecewiseData
- Defined in:
- lib/sscharter/charter/event.rb
Overview
Represents a piecewise linear function defined by some data points.
Instance Attribute Summary collapse
Attributes inherited from PiecewiseData
Attributes included from Metronomic
#beat, #bpm_changes, #duration_beats, #offset
Instance Method Summary collapse
Methods inherited from PiecewiseData
#data_point, #dup, #initialize
Methods included from Metronomic
#<=>, #beat_state, #end_time, #time, #time_at_relative_beat
Constructor Details
This class inherits a constructor from Sunniesnow::Charter::TimeDependent::PiecewiseData
Instance Attribute Details
#beat_speed ⇒ Float
168 169 170 |
# File 'lib/sscharter/charter/event.rb', line 168 def beat_speed @beat_speed end |
#speed ⇒ Float
165 166 167 |
# File 'lib/sscharter/charter/event.rb', line 165 def speed @speed end |
Instance Method Details
#interpolable? ⇒ true
183 184 185 |
# File 'lib/sscharter/charter/event.rb', line 183 def interpolable? true end |
#to_sunniesnow ⇒ Hash
188 189 190 191 |
# File 'lib/sscharter/charter/event.rb', line 188 def to_sunniesnow speed = @speed || @beat_speed && @bpm_changes.bps_before(@data_points&.min_by(&:beat)&.beat || @beat) * @beat_speed super.tap { _1[:speed] = speed if speed } end |