class Musi::Note
Public Class Methods
flat(note)
click to toggle source
# File lib/musi/note.rb, line 101 def self.flat(note) self.lower_helper(note, 1, 1) end
lowerA4(note)
click to toggle source
# File lib/musi/note.rb, line 163 def self.lowerA4(note) self.lower_helper(note, 3, 6) end
lowerM2(note)
click to toggle source
# File lib/musi/note.rb, line 122 def self.lowerM2(note) self.lower_helper(note, 1, 2) end
lowerM3(note)
click to toggle source
# File lib/musi/note.rb, line 141 def self.lowerM3(note) self.lower_helper(note, 2, 4) end
lowerM6(note)
click to toggle source
# File lib/musi/note.rb, line 194 def self.lowerM6(note) self.lower_helper(note, 5, 9) end
lowerM7(note)
click to toggle source
# File lib/musi/note.rb, line 212 def self.lowerM7(note) self.lower_helper(note, 6, 11) end
lowerP4(note)
click to toggle source
# File lib/musi/note.rb, line 150 def self.lowerP4(note) self.lower_helper(note, 3, 5) end
lowerP5(note)
click to toggle source
# File lib/musi/note.rb, line 176 def self.lowerP5(note) self.lower_helper(note, 4, 7) end
lower_helper(note, diatonic_step, semitones)
click to toggle source
# File lib/musi/note.rb, line 65 def self.lower_helper(note, diatonic_step, semitones) letter = note[0] i = 13 while i >= 7 if letter == @@letter_names[i] new_letter = @@letter_names[i - diatonic_step] break end i -= 1 end if !note.match /b/ if @@sharp_notes[note] - @@sharp_notes[new_letter] == semitones || @@sharp_notes[note] - @@sharp_notes[new_letter] == (semitones - 12) return new_letter elsif @@sharp_notes[note] - @@sharp_notes[new_letter] == semitones + 1 || @@sharp_notes[note] - @@sharp_notes[new_letter] == (semitones - 11) new_letter += "#" else new_letter += "b" end else if @@flat_notes[note] - @@flat_notes[new_letter] == semitones || @@flat_notes[note] - @@flat_notes[new_letter] == (semitones - 12) return new_letter else new_letter += "b" end end end
lower_whole_step(note)
click to toggle source
# File lib/musi/note.rb, line 118 def self.lower_whole_step(note) self.lower_helper(note, 1, 2) end
lowerd5(note)
click to toggle source
# File lib/musi/note.rb, line 167 def self.lowerd5(note) self.lower_helper(note, 4, 6) end
lowerm2(note)
click to toggle source
# File lib/musi/note.rb, line 105 def self.lowerm2(note) self.lower_helper(note, 1, 1) end
lowerm3(note)
click to toggle source
# File lib/musi/note.rb, line 131 def self.lowerm3(note) self.lower_helper(note, 2, 3) end
lowerm6(note)
click to toggle source
# File lib/musi/note.rb, line 185 def self.lowerm6(note) self.lower_helper(note, 5, 8) end
lowerm7(note)
click to toggle source
# File lib/musi/note.rb, line 203 def self.lowerm7(note) self.lower_helper(note, 6, 10) end
raiseA4(note)
click to toggle source
tritone
# File lib/musi/note.rb, line 155 def self.raiseA4(note) self.raise_helper(note, 3, 6) end
raiseM2(note)
click to toggle source
# File lib/musi/note.rb, line 114 def self.raiseM2(note) self.raise_helper(note, 1, 2) end
raiseM3(note)
click to toggle source
M3
# File lib/musi/note.rb, line 137 def self.raiseM3(note) self.raise_helper(note, 2, 4) end
raiseM6(note)
click to toggle source
M6
# File lib/musi/note.rb, line 190 def self.raiseM6(note) self.raise_helper(note, 5, 9) end
raiseM7(note)
click to toggle source
M7
# File lib/musi/note.rb, line 208 def self.raiseM7(note) self.raise_helper(note, 6, 11) end
raiseP4(note)
click to toggle source
P4
# File lib/musi/note.rb, line 146 def self.raiseP4(note) self.raise_helper(note, 3, 5) end
raiseP5(note)
click to toggle source
P5
# File lib/musi/note.rb, line 172 def self.raiseP5(note) self.raise_helper(note, 4, 7) end
raise_helper(note, diatonic_step, semitones)
click to toggle source
# File lib/musi/note.rb, line 38 def self.raise_helper(note, diatonic_step, semitones) letter = note[0] i = 0 while i < 7 if letter == @@letter_names[i] new_letter = @@letter_names[i + diatonic_step] break end i += 1 end if !note.match /b/ if @@sharp_notes[new_letter] - @@sharp_notes[note] == semitones || @@sharp_notes[new_letter] - @@sharp_notes[note] == (semitones - 12) return new_letter elsif @@sharp_notes[new_letter] - @@sharp_notes[note] == semitones - 1 || @@sharp_notes[new_letter] - @@sharp_notes[note] == (semitones - 13) new_letter += "#" else new_letter += "b" end else if @@flat_notes[new_letter] - @@flat_notes[note] == semitones || @@flat_notes[new_letter] - @@flat_notes[note] == (semitones - 12) return new_letter else new_letter += "b" end end end
raise_whole_step(note)
click to toggle source
M2
# File lib/musi/note.rb, line 110 def self.raise_whole_step(note) self.raise_helper(note, 1, 2) end
raised5(note)
click to toggle source
# File lib/musi/note.rb, line 159 def self.raised5(note) self.raise_helper(note, 4, 6) end
raisem2(note)
click to toggle source
# File lib/musi/note.rb, line 97 def self.raisem2(note) self.raise_helper(note, 1, 1) end
raisem3(note)
click to toggle source
m3
# File lib/musi/note.rb, line 127 def self.raisem3(note) self.raise_helper(note, 2, 3) end
raisem6(note)
click to toggle source
m6
# File lib/musi/note.rb, line 181 def self.raisem6(note) self.raise_helper(note, 5, 8) end
raisem7(note)
click to toggle source
m7
# File lib/musi/note.rb, line 199 def self.raisem7(note) self.raise_helper(note, 6, 10) end
sharp(note)
click to toggle source
m2
# File lib/musi/note.rb, line 93 def self.sharp(note) self.raise_helper(note, 1, 1) end