An Emacs package for visualizing notes, scales and chords on a guitar fretboard.
- Display scales, chords and modes on a guitar fretboard.
- Cycle between chord tonalities.
- Toggle between the 7 diatonic modes.
- View the fretboard notes by either name or intervals.
- Support for multiple tunings
- Support for 4 and 6 string instruments.
- Interactive navigation mode.
- Download or clone the
fretboard.el
repo onto your local machine. - Add the following to your Emacs configuration:
;; Add the directory containing fretboard.el to your load-path
(add-to-list 'load-path "/path/to/directory/containing/fretboard.el")
(require 'fretboard)
(use-package fretboard :ensure t)
(use-package fretboard
:straight (:host github :repo "skyefreeman/fretboard.el")
:defer t)
(use-package fretboard
:ensure (:host github :repo "skyefreeman/fretboard.el")
:defer t)
(package! fretboard
:recipe (:type git :host github :repo "skyefreeman/fretboard.el" :branch "main" :files ("*.el"))
:defer t)
(use-package fretboard
:vc (:fetcher github :repo skyefree
8000
man/fretboard.el)
:defer t)
M-x fretboard
- Display the A major scale on the fretboard (default)M-x fretboard-display-scale
- Display a scale on the fretboardM-x fretboard-display-chord
- Display a chord on the fretboardM-x fretboard-set-tuning
- Change the guitar tuning
You can customize the appearance and behavior of fretboard.el using Emacs' customization interface or directly in your configuration:
;; Using M-x customize-group RET fretboard RET
;; OR directly in your init.el:
;; Change the number of frets displayed (default is 12)
(customize-set-variable 'fretboard-fret-count 24)
;; Customize the appearance
(customize-set-variable 'fretboard-base-face '((t :height 180))) ;; Larger font size
(customize-set-variable 'fretboard-root-face '((t :inherit fretboard-base-face :foreground "orange"))) ;; Change root note color
(customize-set-variable 'fretboard-display-relative-face '((t :inherit fretboard-base-face :foreground "cyan"))) ;; Change interval note color
Option | Description | Default |
---|---|---|
fretboard-fret-count |
Number of frets to display | 12 |
Face | Description | Default |
---|---|---|
fretboard-base-face |
Base face for all fretboard elements (controls font size) | :height 200 |
fretboard-root-face |
Face for root notes | Red, bold |
fretboard-display-relative-face |
Face for interval notes when in relative mode | Blue |
fretboard-unmarked-face |
Face for unmarked positions | Inherits from base face |
When viewing a fretboard display, you can use the following keys:
Key | Function |
---|---|
n |
Next note (same scale/chord type) |
p |
Previous note (same scale/chord type) |
k |
Next scale/chord type (same note) |
j |
Previous scale/chord type (same note) |
, |
Next mode (same scale, only for major scale) |
m |
Previous mode (same scale, only for major scale) |
d |
Toggle between scale and chord display |
t |
Toggle between different tunings |
r |
Toggle between note names and relative intervals |
s |
Switch to scale display |
c |
Switch to chord display |
q |
Close all fretboard buffers |
- Major
- Minor
- Pentatonic Major
- Pentatonic Minor
- Blues
- Harmonic Minor
- Melodic Minor
- Major
- Minor
- 7th
- Major 7th
- Minor 7th
- Diminished
- Augmented
- Sus2
- Sus4
- Add9
- 6th
- Minor 6th
- 9th
- Minor 9th
When viewing the major scale you can toggle between the 7 diatonic modes.
- Ionian (Major)
- Dorian
- Phrygian
- Lydian
- Mixolydian
- Aeolian (Natural Minor)
- Locrian
- Standard (E A D G B E)
- Drop D (D A D G B E)
- Open G (D G D G B D)
- DADGAD (D A D G A D)
- Half step down (Eb Ab Db Gb Bb Eb)
- Ukulele Standard (G C E A)
- Ukulele Baritone (D G B E)
- Bass Standard (E A D G)
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation.