Module: OutroRails::InstrumentsHelper

Included in:
ApplicationHelper, ChordChartsHelper
Defined in:
app/helpers/outro_rails/instruments_helper.rb

Constant Summary collapse

GUITAR_STANDARD_TUNING =
Instruments::Guitar::STANDARD_TUNING

Instance Method Summary collapse

Instance Method Details

#guitar_open_midis(tuning = GUITAR_STANDARD_TUNING) ⇒ Object



29
30
31
# File 'app/helpers/outro_rails/instruments_helper.rb', line 29

def guitar_open_midis(tuning = GUITAR_STANDARD_TUNING)
  Instruments::Guitar.new(tuning: tuning).open_midis
end

#guitar_positions(positions) ⇒ Object



33
34
35
# File 'app/helpers/outro_rails/instruments_helper.rb', line 33

def guitar_positions(positions)
  Instruments::Guitar.normalize_positions(positions)
end

#guitar_tuning_optionsObject



11
12
13
# File 'app/helpers/outro_rails/instruments_helper.rb', line 11

def guitar_tuning_options
  guitar_tunings.map { |tuning| [ tuning.label, tuning.slug ] }
end

#guitar_tuningsObject



7
8
9
# File 'app/helpers/outro_rails/instruments_helper.rb', line 7

def guitar_tunings
  Instruments::Guitar::Tunings.all
end

#midi_to_note(midi, prefer: :sharps) ⇒ Object Also known as: piano_midi_to_note



20
21
22
# File 'app/helpers/outro_rails/instruments_helper.rb', line 20

def midi_to_note(midi, prefer: :sharps)
  Theory::Pitch.from_midi(midi, prefer: prefer).to_s
end

#midi_to_note_name(midi, prefer: :sharps) ⇒ Object



25
26
27
# File 'app/helpers/outro_rails/instruments_helper.rb', line 25

def midi_to_note_name(midi, prefer: :sharps)
  Theory::Pitch.from_midi(midi, prefer: prefer).note_name.to_s
end

#note_to_midi(note) ⇒ Object Also known as: piano_note_to_midi



15
16
17
# File 'app/helpers/outro_rails/instruments_helper.rb', line 15

def note_to_midi(note)
  Theory::Pitch.parse(note).midi
end

#piano_keys_between(start_note, end_note, prefer: :sharps) ⇒ Object



37
38
39
# File 'app/helpers/outro_rails/instruments_helper.rb', line 37

def piano_keys_between(start_note, end_note, prefer: :sharps)
  Instruments::Piano.keys_between(start_note, end_note, prefer: prefer)
end