Fretboard.el
Visualize notes, keys and chords on a guitar fretboard in Emacs.
Install / Use
/learn @skyefreeman/Fretboard.elREADME
🎸 fretboard.el
An Emacs package for visualizing notes, scales and chords on a guitar fretboard.

Features
- 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.
Installation
Manual
- Download or clone the
fretboard.elrepo 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)
Melpa
(use-package fretboard :ensure t)
Straight
(use-package fretboard
:straight (:host github :repo "skyefreeman/fretboard.el")
:defer t)
Elpaca
(use-package fretboard
:ensure (:host github :repo "skyefreeman/fretboard.el")
:defer t)
Doom
(package! fretboard
:recipe (:type git :host github :repo "skyefreeman/fretboard.el" :branch "main" :files ("*.el"))
:defer t)
package.el
(use-package fretboard
:vc (:fetcher github :repo skyefreeman/fretboard.el)
:defer t)
Usage
Basic Commands
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
Customization
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
Available Customization Options
| Option | Description | Default |
|--------|-------------|---------|
| fretboard-fret-count | Number of frets to display | 12 |
Available Faces
| 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 |
Navigation
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 |
Available Scales
- Major
- Minor
- Pentatonic Major
- Pentatonic Minor
- Blues
- Harmonic Minor
- Melodic Minor
Available Chords
- Major
- Minor
- 7th
- Major 7th
- Minor 7th
- Diminished
- Augmented
- Sus2
- Sus4
- Add9
- 6th
- Minor 6th
- 9th
- Minor 9th
Available Modes
When viewing the major scale you can toggle between the 7 diatonic modes.
- Ionian (Major)
- Dorian
- Phrygian
- Lydian
- Mixolydian
- Aeolian (Natural Minor)
- Locrian
Available Tunings
- 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)
License
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.
