descriptionScales generates fretboard patterns marking the position of notes in a given scale.
ownerRicardo Wurmus
last changeSat, 1 Oct 2016 16:40:01 +0000 (18:40 +0200)
readme

Table of Contents

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.

1 Options

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.

2 Examples

Generate a text pattern for F# phrygian on a standard guitar fretboard:

./pre-inst-env ./scripts/scales --root fis \
				--scale phrygian \
				--tuning guitar
|-e---|-----|-FIS-|-g---|-----|-a---|-----|
|-b---|-----|-cis-|-d---|-----|-e---|-----|
|-g---|-----|-a---|-----|-b---|-----|-cis-|
|-d---|-----|-e---|-----|-FIS-|-g---|-----|
|-a---|-----|-b---|-----|-cis-|-d---|-----|
|-e---|-----|-FIS-|-g---|-----|-a---|-----|

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:

./pre-inst-env ./scripts/scales --root fis \
				--scale '(3 2 2 3)' \
				--tuning bass
|-----|-----|-a---|-----|-b---|-----|-cis-|
|-----|-----|-e---|-----|-FIS-|-----|-----|
|-a---|-----|-b---|-----|-cis-|-----|-----|
|-e---|-----|-FIS-|-----|-----|-a---|-----|

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

./pre-inst-env ./scripts/scales --root fis \
				--scale '(3 2 2 3)' \
				--tuning ukulele
|-a---|-----|-b---|-----|-cis-|-----|-----|
|-e---|-----|-FIS-|-----|-----|-a---|-----|
|-----|-cis-|-----|-----|-e---|-----|-FIS-|
|-----|-----|-a---|-----|-b---|-----|-cis-|

3 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.

shortlog
2016-10-01  rekadoValidate tunings. master
2016-10-01  rekadoValidate scales.
2016-10-01  rekadoPrevent infinite loop when invalid root note is provided.
2016-10-01  rekadoAdd more Guitar and Ukulele tunings.
2016-10-01  rekadoREADME: Add license section.
2016-10-01  rekadoExpand summary in README.
2016-10-01  rekadoChange README code block export settings
2016-09-30  rekadoAdd README.
2016-09-30  rekadoAdd "offset" and "frets" options.
2016-09-30  rekadoAdd bass tunings.
2016-09-30  rekadoIgnore generate files.
2016-09-30  rekadoUse autotools.
2016-09-29  rekadoAdd simple command line interface.
2016-09-29  rekadoAdd primitive SVG fretboard drawing procedure.
2016-09-29  rekadoAdd license headers.
2016-09-28  rekadoFix indentation.
...
heads
3 years ago master