1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
#+TITLE: Scales
Scales generates fretboard patterns marking the position of notes in a
given musical scale. Many common scales and tunings are included.
Scales can output patterns as ASCII text or in SVG format.
* Options
#+BEGIN_SRC sh :results output :exports results
./pre-inst-env ./scripts/scales
#+END_SRC
#+RESULTS:
#+begin_example
scales [options]
-v, --version Display version.
-h, --help Display this help.
-f, --format=text|svg Print as text (default) or as SVG.
-t, --tuning=EXPR Use string tuning EXPR. This can be a
defined tuning such as "guitar" or
"grand-stick-matched-reciprocal-6+6", or a
list of note names, e.g. "(d a d g b e)".
-s, --scale=SCALE Highlight notes from scale SCALE. This can
be a scale name like "phrygian" or a list
of steps, e.g. "(1 2 2 2 1 2 2)".
-r, --root=NOTE The root note of the scale, e.g. "fis" for
f sharp. Defaults to "c".
-o, --offset=NUMBER The first fret to be drawn.
Defaults to 0.
-n, --frets=NUMBER The number of frets to be drawn.
Defaults to 7.
#+end_example
* Examples
Generate a text pattern for F# phrygian on a standard guitar fretboard:
#+BEGIN_SRC sh :results verbatim code :exports both
./pre-inst-env ./scripts/scales --root fis \
--scale phrygian \
--tuning guitar
#+END_SRC
#+RESULTS:
#+BEGIN_SRC sh
|-e---|-----|-FIS-|-g---|-----|-a---|-----|
|-b---|-----|-cis-|-d---|-----|-e---|-----|
|-g---|-----|-a---|-----|-b---|-----|-cis-|
|-d---|-----|-e---|-----|-FIS-|-g---|-----|
|-a---|-----|-b---|-----|-cis-|-d---|-----|
|-e---|-----|-FIS-|-g---|-----|-a---|-----|
#+END_SRC
If you don’t want to use one of the pre-defined scales, you can
specify a list of steps from the root note. Here’s the minor
pentatonic on F#, using the root note followed by notes that are
consecutively three, two, two, and three semitones apart:
#+BEGIN_SRC sh :results verbatim code :exports both
./pre-inst-env ./scripts/scales --root fis \
--scale '(3 2 2 3)' \
--tuning bass
#+END_SRC
#+RESULTS:
#+BEGIN_SRC sh
|-----|-----|-a---|-----|-b---|-----|-cis-|
|-----|-----|-e---|-----|-FIS-|-----|-----|
|-a---|-----|-b---|-----|-cis-|-----|-----|
|-e---|-----|-FIS-|-----|-----|-a---|-----|
#+END_SRC
|