SkillAgentSearch skills...

Fretboard.el

Visualize notes, keys and chords on a guitar fretboard in Emacs.

Install / Use

/learn @skyefreeman/Fretboard.el
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

MELPA

🎸 fretboard.el

An Emacs package for visualizing notes, scales and chords on a guitar fretboard.

Fretboard usage example

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

  1. Download or clone the fretboard.el repo onto your local machine.
  2. 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 fretboard
  • M-x fretboard-display-chord - Display a chord on the fretboard
  • M-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.

View on GitHub
GitHub Stars54
CategoryDevelopment
Updated5mo ago
Forks2

Languages

Emacs Lisp

Security Score

92/100

Audited on Oct 30, 2025

No findings