class Coltrane::Theory::DiatonicScale
Public Class Methods
new(tone, major: true)
click to toggle source
Calls superclass method
# File lib/coltrane/theory/diatonic_scale.rb, line 6 def initialize(tone, major: true) @major = major tone = Note[tone] notes = CircleOfFifths.new(tone - (major? ? 0 : 9), 7).notes.sort super notes: notes.rotate(notes.index(tone)) end
Public Instance Methods
major?()
click to toggle source
# File lib/coltrane/theory/diatonic_scale.rb, line 29 def major? !!@major end
minor?()
click to toggle source
# File lib/coltrane/theory/diatonic_scale.rb, line 33 def minor? !@major end
name()
click to toggle source
# File lib/coltrane/theory/diatonic_scale.rb, line 13 def name major? ? 'Major' : 'Natural Minor' end
relative()
click to toggle source
# File lib/coltrane/theory/diatonic_scale.rb, line 25 def relative major? ? relative_minor : relative_major end
relative_major()
click to toggle source
# File lib/coltrane/theory/diatonic_scale.rb, line 21 def relative_major major? ? self : self.class.new(@tone - 9, major: true) end
relative_minor()
click to toggle source
# File lib/coltrane/theory/diatonic_scale.rb, line 17 def relative_minor minor? ? self : self.class.new(@tone + 9, major: false) end