Class: RBMusic::Scale
- Inherits:
-
Object
- Object
- RBMusic::Scale
- Defined in:
- lib/rb-music/scale.rb
Instance Attribute Summary collapse
-
#degrees ⇒ Object
readonly
Returns the value of attribute degrees.
-
#key ⇒ Object
readonly
Returns the value of attribute key.
Instance Method Summary collapse
- #degree_count ⇒ Object (also: #size)
-
#initialize(key, name) ⇒ Scale
constructor
A new instance of Scale.
- #name ⇒ Object
Constructor Details
#initialize(key, name) ⇒ Scale
Returns a new instance of Scale.
7 8 9 10 11 12 13 |
# File 'lib/rb-music/scale.rb', line 7 def initialize(key, name) @scale_name = name.to_sym raise ArgumentError unless NOTES.has_key?(key) raise ArgumentError unless SCALES.has_key?(@scale_name) @key = key @degrees = [:unison] + SCALES[@scale_name] end |
Instance Attribute Details
#degrees ⇒ Object (readonly)
Returns the value of attribute degrees.
5 6 7 |
# File 'lib/rb-music/scale.rb', line 5 def degrees @degrees end |
#key ⇒ Object (readonly)
Returns the value of attribute key.
4 5 6 |
# File 'lib/rb-music/scale.rb', line 4 def key @key end |
Instance Method Details
#degree_count ⇒ Object Also known as: size
15 16 17 |
# File 'lib/rb-music/scale.rb', line 15 def degree_count @degree_count ||= @degrees.size end |
#name ⇒ Object
20 21 22 |
# File 'lib/rb-music/scale.rb', line 20 def name @name ||= "#{key} #{human_scale_name}" end |