class RBMusic::Scale
Attributes
degrees[R]
key[R]
Public Class Methods
new(key, name)
click to toggle source
# 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
Public Instance Methods
degree_count()
click to toggle source
# File lib/rb-music/scale.rb, line 15 def degree_count @degree_count ||= @degrees.size end
Also aliased as: size
name()
click to toggle source
# File lib/rb-music/scale.rb, line 20 def name @name ||= "#{key} #{human_scale_name}" end
Private Instance Methods
human_scale_name()
click to toggle source
# File lib/rb-music/scale.rb, line 25 def human_scale_name @scale_name.to_s.split("_").map { |word| word.capitalize }.join(" ") end