Cancionero is an Obsidian plugin for writing, studying, and visualizing songs using harmonic degrees, Roman numeral notation, and synchronized lyrics.
It turns your vault into a simple digital songbook that works beautifully on both desktop 💻 and mobile 📱.
- 🎼 Write songs in plain text using chords + lyrics blocks
- 🔀 Toggle Lyrics, Chords, or Both views
- 🎹 Roman numeral notation with ♭ / ♯ accidentals
- 📖 Section headers
[Verso],[Coro], etc. with{Mod …}for modulations - 📐 Compact 4-bar chord charts
- 📲 Responsive design: auto reflows on mobile screens
- 🔁 Repeat markers
(x2)show as×2in chord view - 🪄 Convert real chord sheets into degrees with a single command
↔️ Chord grouping logic: lines not starting with | merge into the previous bar, even across sections- ⬜ Blank lines in input are reflected in Lyrics and Both views
-
Build the plugin:
npm install npm run build
-
Copy into your vault:
<Vault>/.obsidian/plugins/cancionero/Required files:
manifest.jsonmain.jsstyles.cssversions.json(optional)
-
Enable in Obsidian:
- Settings → Community Plugins → Installed plugins → Cancionero
Songs are written in fenced code blocks with the song language.
[Verse]
|I | IIIm7 | IIIm bIIIm | IIm
Quedate sentada donde estas, hasta el final de la canción, como si nada
|IIm | IIm7 | V | I
piensa que a tu lado hay un control, que puede malinterpretar, ciertas miradas
[Chorus] {Mod Im}
|I | IIIm | ♭VII I | IV
Soy un invitado de ocasión y no pretendo figurar en tu programa
|IV V | I VIm | IIm V | I
Soy como lo fui siempre en tu vida, una noche de debut y despedida
[End] {Imaj}
|I
Quédate sentada donde estás...
- Use
|pipes for bar boundaries - Use
[Section]headers to organize verses, choruses, etc. - Use
{Mod …}to indicate modulations and{I}to return to tonic - Add
(x2)in a lyric line to mark repeats - If a chord line does not start with a pipe
|, its leading chords are merged into the previous bar
Use the command palette (Cmd+P / Ctrl+P) → Convert chords to degrees.
A modal will ask for the tonic key.
Example input:
Dmaj7 Em F#m7 Fdim7
Sé que aun
Em A7sus A7
Me queda una oportunidad
With tonic = D, becomes:
|Imaj7 IIm IIIm7 ♭III°7
Sé que aun
|IIm V7sus V7
Me queda una oportunidad
Near-term
- 🌐 Smarter import of chord sheets from the web → auto-convert to degrees
- ✍️ Visual “easy editor” for bar splitting and chord placement
Medium-term
- 🖨️ PDF / image export
- ⚙️ Global plugin settings (default view, font size)
- 🔄 Toggle between degree notation and absolute chords
- 🎵 Transposition engine (pick new tonic → auto-shift chords)
🚧 This plugin is in early development. Core features (notation parsing, rendering, conversion, responsive layouts) are already working. Expect rapid iteration. Contributions and feedback welcome.