Class: Uke

Inherits:
Object
  • Object
show all
Defined in:
lib/uke.rb,
lib/uke/chords.rb,
lib/uke/version.rb,
lib/uke/fretboard.rb

Defined Under Namespace

Classes: Chord, Fretboard

Constant Summary collapse

ENHARMONIC_EQUIVALENTS =
{
  'A#' => 'Bb',
  'C#' => 'Db',
  'D#' => 'Eb',
  'F#' => 'Gb',
  'G#' => 'Ab'
}
CHORDS_RAW =
"A         2,1,0,0  2,1,-,-\nA         2,1,0,4  2,1,-,4\nA         2,4,0,4  1,3,-,4\nA 5       2,4,0,0  1,3,-,-\nA 7       0,1,0,0  -,1,-,-\nA 7       2,4,3,4  1,3,2,4\nA sus     2,2,0,0  2,3,-,-\nA 7sus    0,2,0,0  -,2,-,-\nA 9       2,1,3,2  2,1,4,3\nA 9       0,1,0,2  -,1,-,3\nA 9       4,1,0,0  4,1,-,-\nA aug     2,1,1,0  3,1,2,-\nA aug     2,1,1,4  2,1,1,4\nA dim7    2,3,2,3  1,3,2,4\nA m       2,0,0,0  2,-,-,-\nA m       2,0,0,3  2,-,-,4\nA m       2,4,0,3  2,4,-,3\nA m7      0,0,0,0\nA m7      0,0,3,0  -,-,2,-\nA m7      2,4,3,3  1,4,2,3\nA m7b5    2,3,3,3  1,2,3,4\nA maj7    1,1,0,0  1,2,-,-\nA maj7    1,1,4,0  1,2,4,-\nA maj7    1,1,0,4  1,2,-,4\nA maj7    2,4,4,4  1,2,3,4\n\nA#        3,2,1,1  3,2,1,1\nA# 7      1,2,1,1  1,2,1,1\nA# 7sus   1,3,1,1  1,3,1,1\nA# 9      3,2,4,3  2,1,4,3\nA# 9      1,2,1,3  1,2,1,4\nA# aug    3,2,2,1  4,2,3,1\nA# dim    3,1,0,1  4,1,-,2\nA# dim    3,1,0,4  3,1,-,4\nA# dim    3,4,0,4  1,2,-,3\nA# dim7   0,1,0,1  -,1,-,2\nA# dim7   3,4,3,4  1,3,2,4\nA# m      3,1,1,1  3,1,1,1\nA# m      3,1,1,4  3,1,1,4\nA# m7     1,1,1,1  1,1,1,1\nA# m7b5   1,1,0,1  1,2,-,3\nA# m7b5   1,1,0,4  1,2,-,4\nA# m7b5   1,4,0,4  1,3,-,4\nA# m7b5   3,4,4,4  1,2,3,4\nA# maj7   3,2,1,0  3,2,1,-\nA# maj7   2,2,1,1  3,4,1,2\nA# maj7   2,2,1,0  3,4,1,-\nA# sus    3,3,1,1  3,4,1,1\n\nB         4,3,2,2  3,2,1,1\nB 7       2,3,2,2  1,2,1,1\nB 7       4,3,2,0  3,2,1,-\nB 7       2,3,2,0  1,3,2,-\nB 7sus    2,4,2,2  1,3,1,1\nB 7sus    4,4,2,0  3,4,1,-\nB 7sus    4,4,0,0  3,4,-,-\nB 7sus    2,4,0,2  1,4,-,2\nB 9       2,3,2,4  1,3,2,4\nB aug     4,3,3,2  4,2,3,1\nB aug     0,3,3,2  -,2,3,1\nB dim     4,2,1,2  4,2,1,3\nB dim7    1,2,1,2  1,3,2,4\nB m       4,2,2,2  3,1,1,1\nB m7      2,2,2,2  1,1,1,1\nB m7      4,2,2,0  4,1,2,-\nB m7b5    2,2,1,2  2,3,1,4\nB m7b5    4,2,1,0  4,2,1,-\nB m7b5    2,2,1,0  2,3,1,-\nB maj7    3,3,2,2  2,3,1,1\nB maj7    4,3,2,1  4,3,2,1\nB sus     4,4,2,2  3,4,1,1\n\nC         0,0,0,3  -,-,-,3\nC         0,4,0,3  -,2,-,1\nC         0,4,3,3  -,2,1,1\nC 5       0,0,3,3  -,-,1,1\nC 7       0,0,0,1  -,-,-,1\nC 7       3,4,3,3  1,2,1,1\nC 7       3,4,3,1  2,4,3,1\nC 7       3,0,0,1  3,-,-,1\nC 7sus    0,0,1,1  -,-,1,1\nC 7sus    3,0,1,1  3,-,1,1\nC 7sus    3,0,1,3  3,-,1,4\nC 9       3,0,0,1  3,-,-,1\nC 9       0,2,0,1  -,2,-,1\nC 9       3,2,0,3  2,1,-,3\nC aug     1,0,0,3  1,-,-,3\nC aug     1,4,0,3  1,4,-,3\nC aug     1,4,4,3  1,3,4,2\nC m       0,3,3,3  -,1,1,1\nC m7      3,3,3,3  1,1,1,1\nC m7      0,3,3,1  -,2,3,1\nC m7      3,3,3,1  2,3,4,1\nC m7b5    3,3,2,3  2,3,1,4\nC m7b5    3,3,2,1  3,4,2,1\nC maj7    0,0,0,2  -,-,-,2\nC maj7    4,4,3,3  2,3,1,1\nC maj7    4,0,0,2  3,-,-,1\nC maj7    0,4,0,2  -,3,-,1\nC sus     0,0,1,3  -,-,1,3\n\nC#        1,1,1,4  1,1,1,4\nC# 5      1,1,4,4  1,1,3,4\nC# 7      1,1,1,2  1,1,1,2\nC# 7      4,1,1,2  4,1,1,2\nC# 7      4,1,1,4  3,1,1,4\nC# 7sus   1,1,2,2  1,2,3,4\nC# 7sus   4,1,2,2  4,1,3,2\nC# 7sus   4,1,2,4  3,1,2,4\nC# 9      1,3,1,2  1,3,1,2\nC# 9      4,3,1,4  3,2,1,4\nC# dim    0,1,0,4  -,1,-,4\nC# dim    0,4,0,4  -,3,-,4\nC# dim    0,4,3,4  -,3,2,4\nC# m      1,1,0,4  1,2,-,4\nC# m      1,4,0,4  1,3,-,4\nC# m      1,4,4,4  1,4,4,4\nC# m7     1,1,0,2  1,2,-,3\nC# m7     4,4,4,4  1,1,1,1\nC# m7     4,1,0,2  4,1,0,2\nC# m7     1,4,0,2  1,4,0,2\nC# m7b5   0,1,0,2  -,1,-,3\nC# m7b5   4,4,3,4  2,3,1,4\nC# m7b5   0,4,3,2  -,3,2,1\nC# m7b5   0,4,0,2  -,3,-,1\nC# maj7   1,0,1,4  1,-,2,4\nC# maj7   1,1,1,3  1,1,1,3\nC# maj7   1,0,1,3  1,0,2,4\nC# sus    1,1,2,4  1,1,2,4\n\nD         2,2,2,0  1,2,3,-\nD 7       2,2,2,3  1,1,1,2\nD 7       2,0,2,0  1,-,3,-\nD 7       2,0,2,3  1,-,2,3\nD 7sus    2,2,3,3  1,2,3,4\nD 7sus    0,2,3,3  -,1,2,3\nD m       2,2,1,0  2,3,1,-\nD m7      2,2,1,3  2,3,1,4\nD m7      2,0,1,0  2,-,1,-\nD m7      2,0,1,3  2,-,1,4\nD m7b5    1,2,1,3  1,2,1,3\nD m7b5    1,0,1,3  1,0,2,4\nD maj7    2,2,2,4  1,1,1,3\nD maj7    2,1,2,4  2,1,3,4\nD maj7    2,1,2,0  2,1,3,-\nD sus     0,2,3,0  -,2,3,-\nD sus     2,2,3,0  1,2,3,-\n\nD#        0,3,3,1  -,3,4,1\nD#        3,3,3,1  2,3,4,1\nD# 7      3,3,3,4  1,1,1,2\nD# 7      0,1,3,1  -,1,3,1\nD# 7      3,1,3,1  3,1,4,1\nD# 7      0,3,3,4  -,1,1,2\nD# 7      3,1,3,4  2,1,3,4\nD# 7sus   3,3,4,4  1,2,3,4\nD# 9      0,1,1,1  -,1,1,1\nD# 9      0,3,1,4  -,2,1,4\nD# dim    2,3,2,0  2,1,3,-\nD# m      3,3,2,1  3,4,2,1\nD# m7     3,3,2,4  2,3,1,4\nD# m7b5   2,3,2,4  1,3,2,4\nD# sus    1,3,4,1  1,3,4,1\nD# sus    3,3,4,1  2,3,4,1\n\nE         1,4,0,2  1,4,-,2\nE         1,4,4,2  1,4,3,2\nE         4,4,4,2  2,3,4,1\nE 5       4,4,0,2  3,4,-,1\nE 7       1,2,0,2  1,2,-,3\nE 7       1,2,4,2  1,2,4,3\nE 7       4,2,4,2  3,1,4,2\nE 7sus    2,2,0,2  1,2,-,3\nE 7sus    2,2,0,0  2,3,-,-\nE 7sus    4,2,0,0  3,1,-,-\nE 9       1,2,2,2  1,2,3,4\nE 9       1,4,2,2  1,4,2,3\nE dim     0,4,0,1  -,4,-,1\nE dim     0,4,3,1  -,4,3,1\nE dim     3,4,3,1  2,4,3,1\nE m       0,4,3,2  -,3,2,1\nE m       0,4,0,2  -,3,-,1\nE m       4,4,3,2  3,4,2,1\nE m7      0,2,0,2  -,2,-,3\nE m7      0,2,3,2  -,2,4,3\nE m7b5    0,2,0,1  -,2,-,1\nE m7b5    0,2,3,1  -,2,3,1\nE m7b5    3,2,3,1  3,2,4,1\nE maj7    1,3,0,2  1,3,-,2\nE maj7    4,3,4,2  3,2,4,1\nE maj7    1,3,4,2  1,3,4,2\nE sus     2,4,0,2  1,4,-,2\nE sus     4,4,0,0  3,4,-,-\n\nF         2,0,1,0  2,-,1,-\nF         2,0,1,3  2,-,1,4\nF 7       2,3,1,3  2,3,1,4\nF 7       2,3,1,0  2,3,1,-\nF 7sus    3,3,1,3  2,3,1,4\nF 7sus    3,3,1,1  3,4,1,1\nF 9       2,3,3,3  1,2,3,4\nF 9       0,3,1,0  -,3,1,-\nF m       1,0,1,3  1,-,2,4\nF m7      1,3,1,3  1,3,1,4\nF m7      1,3,4,3  1,2,4,3\nF m7b5    1,3,1,2  1,3,1,2\nF maj7    2,4,1,3  2,4,1,3\nF sus     3,0,1,1  3,-,1,1\nF sus     3,0,1,3  3,-,1,4\n\nF#        3,1,2,1  3,1,2,1\nF#        3,1,2,4  3,1,2,4\nF# 7      3,4,2,4  2,3,1,4\nF# 7sus   4,4,2,4  2,3,1,4\nF# 7sus   4,4,2,2  3,4,1,1\nF# 9      1,1,0,1  1,2,-,3\nF# 9      3,4,4,4  1,2,3,4\nF# 9      1,4,2,1  1,4,2,1\nF# dim    2,0,2,0  1,-,2,-\nF# dim    2,0,2,3  1,-,2,4\nF# m      2,1,2,0  2,1,3,-\nF# m      2,1,2,4  2,1,3,4\nF# m7     2,4,2,4  1,3,2,4\nF# m7b5   2,4,2,3  1,3,1,2\nF# sus    4,1,2,2  4,1,2,3\nF# sus    4,1,2,4  3,1,2,4\n\nG         0,2,3,2  -,1,3,2\nG         4,2,3,2  3,1,2,1\nG 7       0,2,1,2  -,2,1,3\nG 7sus    0,2,1,3  -,2,1,3\nG 9       2,2,3,2  1,1,2,1\nG 9       4,2,3,0  3,1,2,-\nG 9       4,2,1,0  4,2,1,-\nG dim     0,1,3,1  -,1,3,2\nG dim     3,1,3,1  4,1,3,2\nG dim     3,1,3,4  2,1,3,4\nG m       0,2,3,1  -,2,3,1\nG m       3,2,3,1  2,3,4,1\nG m7      0,2,1,1  -,2,1,1\nG m7b5    0,1,1,1  -,1,1,1\nG maj7    0,2,2,2  -,1,1,1\nG sus     0,2,3,3  -,1,2,3\n\nG#        1,3,4,3  1,2,4,3\nG# 7      1,3,2,3  1,3,2,4\nG# 7sus   1,3,2,4  1,3,2,4\nG# 9      1,0,2,1  1,-,3,2\nG# 9      3,3,4,3  1,1,2,1\nG# dim    1,2,4,2  1,2,4,3\nG# dim    4,2,4,2  3,1,4,2\nG# m      4,3,4,2  3,2,4,1\nG# m      1,3,4,2  1,3,4,2\nG# m7     1,3,2,2  1,4,2,3\nG# m7b5   1,2,2,2  1,2,3,4\nG# maj7   0,3,4,3  -,1,3,2\nG# maj7   1,3,3,3  1,2,3,4\nG# sus    1,3,4,4  1,2,3,4\n"
CHORDS =
Hash.new { |h, k| h[k] = [] }
VERSION =
"1.0.3"

Instance Method Summary collapse

Instance Method Details



8
9
10
# File 'lib/uke.rb', line 8

def print_chord_list
  puts Uke::CHORDS.keys.join " "
end


12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/uke.rb', line 12

def print_chords(which, style = nil)
  Array(which).each{ |chord_name|
    chords = CHORDS[chord_name]
    if !chords.empty?
      puts chords.reduce(
        chord_name_to_ascii_lines(chord_name)
      ){ |old_lines, chord|
        old_lines.zip(Fretboard.new(chord, style).lines).map(&:join)
      }.join($/)
    else
      $stderr.puts "\n   #{chord_name} not found"
    end
  }
end