Class: Sunniesnow::Charter::TimeDependent::InterpolablePiecewiseData

Inherits:
PiecewiseData
  • Object
show all
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

#data_points

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_speedFloat

Returns:

  • (Float)


168
169
170
# File 'lib/sscharter/charter/event.rb', line 168

def beat_speed
  @beat_speed
end

#speedFloat

Returns:

  • (Float)


165
166
167
# File 'lib/sscharter/charter/event.rb', line 165

def speed
  @speed
end

Instance Method Details

#interpolable?true

Returns:

  • (true)


183
184
185
# File 'lib/sscharter/charter/event.rb', line 183

def interpolable?
	true
end

#to_sunniesnowHash

Returns:

  • (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