olvidalo / obsidian-chord-sheets

Work with chord sheets (chords over lyrics or inline in brackets) in Obsidian: Chord diagrams for guitar, ukulele and mandolin, transpose, autoscroll and more. Works in Live Preview and reading mode.
https://github.com/olvidalo/obsidian-chord-sheets
MIT License
54 stars 4 forks source link
chords guitar lyrics mandolin music obsidian obsidian-plugin plugin tabs ukulele

Obsidian Chord Sheets

Render and work with chord sheets (chords over lyrics or inline chords in brackets) in your vault. This plugin brings UltimateGuitar-like functionality into Obsidian, featuring chord diagrams, support for guitar, ukulele and mandolin, transposition, and autoscroll. Works seamlessly in edit / live preview and reading mode. It integrates with your theme colors and is customizable to your needs.

Features

✨ Highlight Chord Symbols

Detects and highlights chord symbols in fenced code blocks marked as ```chords.

chord-blocks.png

inline-chords.png

Note: When copy and pasting a chord sheet from a website, paste as plain text to preserve formatting (per default ⌘ + ⇧ + V on Mac and Ctrl + ⇧ + V on Windows/Linux or right click ➔ Paste as plain text).

The plugin auto-detects chord and lyric lines. If it fails, add %c at the end of chord lines or %t for lyrics (an idea 'borrowed' from the Chord Lyrics plugin):

line-markers.png

🎼 Chord Diagrams

Show chord diagrams on hover or on top of a chord block. Provides alternative fingerings for each chord. Diagrams are rendered locally, no API calls to an external service required.

diagram-popups.gif

chord-overview.gif

🎸 Choose Your Instrument

Includes chord diagrams for guitar, ukulele and mandolin. The instrument can be set globally or specified per chord block.

change-instrument.gif

📝 Seamless Editing

Allows seamless editing of chords and lyrics in live preview / edit mode while keeping chord symbol highlighting and chord diagram rendering active, without needing to switch the fenced block to source view. This is achieved by implementing a CodeMirror editor extension for rendering instead of a code block post processor.

🔄 Transpose Songs

Transpose songs up and down with a click or an editor command.

transpose.gif

📜 Autoscroll

Scroll down as you play with configurable speed.

autoscroll.gif

Save your preferred scroll speed for a note by adding the autoscroll-speed frontmatter property. Set it manually or use the Save current autoscroll speed command to add it with the last used speed. The property will update automatically as you adjust the speed.

🌈 Uses Theme Colors

Minimal dark Minimal light AnuPpuccin light
minimal-dark.png minimal-bright.png anuppuccin-bright.png

To customize colors and styles, use the Style Settings plugin.

⌨️ Editor Commands

Access all features using dedicated editor commands with support for keyboard shortcuts.

editor-commands.png

Note: The keyboard shortcuts in the screenshot are just for illustration. Shortcuts are empty by default and need to be set in Obsidian settings after installing the plugin.

📱Mobile Support

Works well on mobile. Bring up chord diagram popups by tapping on the chord symbols. Can be a bit fiddly in edit / live preview mode because tapping on a chord will position the caret there which brings up the keyboard. Prefer reading mode on mobile.

⚙️ Configurability

Development

This repo contains run / debug configurations for JetBrains IDEs (such as WebStorm). You will need to adapt the Run Obsidian configuration to the path of your Obsidian installation and set the working directory to the path where you cloned this repo.

To start a development and debug session with supports for breakpoints etc.:

  1. Run the Run Obsidian configuration in debug mode. This will start Obsidian with the --remote-debugging-port=9222 parameter which enables Chrome remote debugging on port 9222.
  2. Run the Debug configuration which attaches the IDE to Obsidian.
  3. Run the dev configuration in debug mode which starts the development server.

Manually installing the plugin

Credits

This plugin uses:

Inspiration / Alternatives

Support My Work

If you like this plugin and want to say thanks, here are ways to support its development:

Ko-fi GitHub Sponsors Paypal

Your support helps maintain and improve this project. Thank you!