Module: OutroRails::TransposerHelper

Included in:
ChordChartsHelper
Defined in:
app/helpers/outro_rails/transposer_helper.rb

Instance Method Summary collapse

Instance Method Details

#semitone_shift_label(semitones) ⇒ Object



20
21
22
23
24
25
# File 'app/helpers/outro_rails/transposer_helper.rb', line 20

def semitone_shift_label(semitones)
  return "same key (0 semitones)" if semitones.zero?

  label = "+#{semitones} #{"semitone".pluralize(semitones)} up"
  semitones > 6 ? "#{label} (−#{12 - semitones} down)" : label
end

#transposer_key_optionsObject



13
14
15
16
17
18
# File 'app/helpers/outro_rails/transposer_helper.rb', line 13

def transposer_key_options
  {
    "Major keys" => Theory::Key.canonical(:major).map(&:to_s),
    "Minor keys" => Theory::Key.canonical(:minor).map(&:to_s)
  }
end

#transposer_mode_optionsObject



5
6
7
8
9
10
11
# File 'app/helpers/outro_rails/transposer_helper.rb', line 5

def transposer_mode_options
  [
    [ "Chords → Chords (new key)", "chords_to_chords" ],
    [ "Chords → Nashville Numbers", "chords_to_nashville" ],
    [ "Nashville Numbers → Chords", "nashville_to_chords" ]
  ]
end