diff options
-rw-r--r-- | scales/ui.scm | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/scales/ui.scm b/scales/ui.scm index 9382b24..b95d5d9 100644 --- a/scales/ui.scm +++ b/scales/ui.scm @@ -40,7 +40,9 @@ (format (single-char #\f) (value #t)) (tuning (single-char #\t) (value #t)) (scale (single-char #\s) (value #t)) - (root (single-char #\r) (value #t)))) + (root (single-char #\r) (value #t)) + (offset (single-char #\o) (value #t)) + (frets (single-char #\n) (value #t)))) (options (getopt-long args option-spec)) (help-wanted (option-ref options 'help #f)) (version-wanted (option-ref options 'version #f)) @@ -51,7 +53,9 @@ (scale (call-with-input-string (option-ref options 'scale "aeolian") read)) - (root (option-ref options 'root "c"))) + (root (option-ref options 'root "c")) + (offset (option-ref options 'offset "0")) + (frets (option-ref options 'frets "7"))) (if (or version-wanted help-wanted) (begin (if version-wanted @@ -71,11 +75,16 @@ scales [options] 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. "))) (let ((scale (lookup-scale scale)) (tuning (lookup-tuning tuning)) (root (string->symbol root)) + (offset (string->number offset)) + (frets (string->number frets)) (show (case (string->symbol format) ((svg) (compose display svg-fretboard)) (else print-fretboard)))) @@ -86,4 +95,4 @@ scales [options] (for-each show (map (lambda (group) (fretboard group (scale root))) tuning)) - (show (fretboard tuning (scale root)))))))) + (show (fretboard tuning (scale root) frets offset))))))) |