Module: Musa::Datasets::DeltaD
Overview
Delta events with flexible duration encoding.
DeltaD (Delta Duration) extends Delta events with three different ways to specify duration changes in delta-encoded sequences. This provides flexibility for efficient encoding of musical sequences.
Duration Encoding Modes
:abs_duration - Absolute duration override
Sets duration to an absolute value, regardless of previous duration. Use when duration changes to a completely different value.
{ abs_duration: 2.0 }
# Sets duration to 2.0, ignoring previous
:delta_duration - Incremental duration change
Adds or subtracts from the previous duration value. Use for small adjustments to duration.
{ delta_duration: 0.5 } # Add 0.5 to previous
{ delta_duration: -0.25 } # Subtract 0.25 from previous
:factor_duration - Multiplicative duration factor
Multiplies previous duration by a factor. Use for proportional changes (doubling, halving, etc.).
{ factor_duration: 2 } # Double previous duration
{ factor_duration: 0.5 } # Half previous duration
Natural Keys
- :abs_duration: Absolute duration value
- :delta_duration: Duration increment/decrement
- :factor_duration: Duration multiplication factor
Only one duration key should be present at a time.
Usage in Delta Encoding
Used by GDVd for efficient delta encoding of musical sequences:
Constant Summary collapse
- NaturalKeys =
Natural keys for delta duration encoding.
Only one of these keys should be present in a delta event.
[:abs_duration, # absolute duration :delta_duration, # incremental duration :factor_duration # multiplicative factor duration ].freeze
Instance Method Summary collapse
-
#valid? ⇒ Boolean
included
from E
Checks if event is valid.
-
#validate! ⇒ void
included
from E
Validates event, raising if invalid.
Instance Method Details
#valid? ⇒ Boolean Originally defined in module E
Checks if event is valid.
Base implementation always returns true. Subclasses should override to implement specific validation logic.
#validate! ⇒ void Originally defined in module E
This method returns an undefined value.
Validates event, raising if invalid.