class Musicality::Scale
Attributes
pitch_class[R]
Public Class Methods
new(pitch_class, intervals)
click to toggle source
# File lib/musicality/composition/model/scale.rb, line 5 def initialize pitch_class, intervals @pitch_class = pitch_class @intervals = intervals end
Public Instance Methods
at_octave(octave)
click to toggle source
# File lib/musicality/composition/model/scale.rb, line 28 def at_octave octave start_pitch = Pitch.new(octave: octave, semitone: @pitch_class) AddingSequence.new(@intervals, start_pitch) end
intervals()
click to toggle source
# File lib/musicality/composition/model/scale.rb, line 10 def intervals; @intervals.entries; end
rotate(n)
click to toggle source
# File lib/musicality/composition/model/scale.rb, line 21 def rotate n diff = AddingSequence.new(@intervals).at(n) new_pc = (@pitch_class + diff).to_pc new_intervals = @intervals.rotate(n) Scale.new(new_pc,new_intervals) end
size()
click to toggle source
# File lib/musicality/composition/model/scale.rb, line 12 def size @intervals.size end
transpose(diff)
click to toggle source
# File lib/musicality/composition/model/scale.rb, line 16 def transpose diff new_pc = (@pitch_class + diff).to_pc Scale.new(new_pc,@intervals) end