Class: HeadMusic::Rudiment::Key
Overview
Represents a musical key (major or minor)
Constant Summary
collapse
- QUALITIES =
%i[major minor].freeze
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#alias_name_keys ⇒ Object
Originally defined in module
Named
Returns the value of attribute alias_name_keys.
#name_key ⇒ Object
Originally defined in module
Named
Returns the value of attribute name_key.
Class Method Details
.default_qualifier ⇒ Object
8
9
10
|
# File 'lib/head_music/rudiment/key.rb', line 8
def self.default_qualifier
:major
end
|
.invalid_qualifier_message ⇒ Object
16
17
18
|
# File 'lib/head_music/rudiment/key.rb', line 16
def self.invalid_qualifier_message
"Quality must be :major or :minor"
end
|
.valid_qualifiers ⇒ Object
12
13
14
|
# File 'lib/head_music/rudiment/key.rb', line 12
def self.valid_qualifiers
QUALITIES
end
|
Instance Method Details
#major? ⇒ Boolean
22
23
24
|
# File 'lib/head_music/rudiment/key.rb', line 22
def major?
quality == :major
end
|
#minor? ⇒ Boolean
26
27
28
|
# File 'lib/head_music/rudiment/key.rb', line 26
def minor?
quality == :minor
end
|
#parallel ⇒ Object
42
43
44
45
46
47
48
|
# File 'lib/head_music/rudiment/key.rb', line 42
def parallel
if major?
self.class.get("#{tonic_spelling} minor")
else
self.class.get("#{tonic_spelling} major")
end
end
|
#relative ⇒ Object
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/head_music/rudiment/key.rb', line 30
def relative
if major?
relative_pitch = tonic_pitch + -3
self.class.get("#{relative_pitch.spelling} minor")
else
relative_pitch = tonic_pitch + 3
self.class.get("#{relative_pitch.spelling} major")
end
end
|