Class: RBMusic::Scale

Inherits:
Object
  • Object
show all
Defined in:
lib/rb-music/scale.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key, name) ⇒ Scale

Returns a new instance of Scale.

Raises:



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

#degreesObject (readonly)

Returns the value of attribute degrees.



5
6
7
# File 'lib/rb-music/scale.rb', line 5

def degrees
  @degrees
end

#keyObject (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_countObject Also known as: size



15
16
17
# File 'lib/rb-music/scale.rb', line 15

def degree_count
  @degree_count ||= @degrees.size
end

#nameObject



20
21
22
# File 'lib/rb-music/scale.rb', line 20

def name
  @name ||= "#{key} #{human_scale_name}"
end