Class: Musicality::Rhythm
- Inherits:
-
Object
- Object
- Musicality::Rhythm
- Defined in:
- lib/musicality/composition/model/rhythm.rb
Overview
Note:
Rests are represented by negative durations.
A rhythm based on an array of durations.
Instance Attribute Summary collapse
-
#durations ⇒ Object
readonly
Returns the value of attribute durations.
-
#durations_sum ⇒ Object
readonly
Returns the value of attribute durations_sum.
Instance Method Summary collapse
-
#initialize(durations) ⇒ Rhythm
constructor
A new instance of Rhythm.
- #to_notes(pitch) ⇒ Object
Constructor Details
#initialize(durations) ⇒ Rhythm
Returns a new instance of Rhythm.
8 9 10 11 12 13 14 |
# File 'lib/musicality/composition/model/rhythm.rb', line 8 def initialize durations if durations.find {|x| x.zero? } raise ArgumentError, "rhythm contains duration(s) that are zero" end @durations = durations.clone.freeze @durations_sum = @durations.inject(0) {|sum,x| sum + x.abs} end |
Instance Attribute Details
#durations ⇒ Object (readonly)
Returns the value of attribute durations.
6 7 8 |
# File 'lib/musicality/composition/model/rhythm.rb', line 6 def durations @durations end |
#durations_sum ⇒ Object (readonly)
Returns the value of attribute durations_sum.
6 7 8 |
# File 'lib/musicality/composition/model/rhythm.rb', line 6 def durations_sum @durations_sum end |