summaryrefslogtreecommitdiff
path: root/README.org
blob: 6597128299d1e923754cfb298f8abbdde707fd5c (about) (plain)
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#+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

Here’s the same scale on a standard Ukulele fretboard:

#+BEGIN_SRC sh :results verbatim code :exports both
./pre-inst-env ./scripts/scales --root fis \
                                --scale '(3 2 2 3)' \
                                --tuning ukulele
#+END_SRC

#+RESULTS:
#+BEGIN_SRC sh
|-a---|-----|-b---|-----|-cis-|-----|-----|
|-e---|-----|-FIS-|-----|-----|-a---|-----|
|-----|-cis-|-----|-----|-e---|-----|-FIS-|
|-----|-----|-a---|-----|-b---|-----|-cis-|
#+END_SRC

* License

Scales is libre software and is released under the Affero General
Public License (AGPL) version 3 or, at your option, any later version.
See the COPYING file for the license text.