Building a Personal Music Database in Obsidian (Part I)
I play guitar for fun and, over the years, I’ve collected a small forest of music artifacts: scanned handwritten scores (PDF rasters), clean vector PDFs, old Guitar Pro files (I no longer pay to edit), and open formats like MusicXML and ABC. Useful? Absolutely. Searchable when I need them? Not so much.
So I built a personal music library in Obsidian — a vault that centralizes, standardizes, and makes my repertoire actually playable. Here’s the approach.
Photo by Veronika Tarakanova on Unsplash
1. What I’m trying to achieve
- Centralize everything
Each piece lives in one note that bundles the sources (PDF, scans, MusicXML, ABC, legacy Guitar Pro) and a practice-ready view (lyrics + chords, melody). - Standardize the data
Every piece uses the same set of fields (composer, genre, key, language) so I can query consistently. - Make it playable inside Obsidian
I use Chord Sheets (lyrics + chords) and ABC notation (single-line melody) so I can practice without launching another app. - Query with intent
With Dataview, I can spin up lists like “all Waltzes in D minor” or “Tárrega pieces” in seconds. - Keep formats open and durable
I treat PDF and MusicXML as long-term masters, while preserving GP3/GP5/GPX for reference (yes, proprietary — but valuable history). - Serve my personal workflow
The system is designed to support my practice and and reference.
2. Why MusicXML and ABC?
I use these two formats in complementary roles:
- MusicXML: an open, information-rich standard (pitch, duration, polyphony, meter, performance markings, etc.). Most major notation programs support it. For me, MusicXML is the “digital master” for long-term storage and conversion.
- ABC notation: a minimalist text format focused on melody, rhythm, lyrics, and basic chords. Lightweight, easy to read/write, and renders directly in Obsidian. I use ABC as the “practice edition”.

Render a classical guitar score in ABC format with the ABC Music Notation plugin
Original ABC source:
T:Lagrima (Teardrops)
C:Francisco Tarrega
L:1/8
Q:1/4=80
M:3/4
K:C
!f! [E^g]B [^Fa]B [^Gb]B |!f! [_E^f]!mf!B AB!ff! B,!mf!B | [E^g]B [^Fa]B [^Gb]B |
!f! [_E^f]!mf!B AB!ff! B,!mf!B |!f! [^ce']e!f! [B_e']e!f! [A^c']^f |!f! [Bb]!mf!^g ^ce ^fa |
[B^g]e [_B^c]^f!fff! B,!mf![A_e] | [E^Ge]2!fff! E,2 z2 :: !mf! [E,Bg]!mf!(c' b)e!fff! [B,A_e^f]!mf!d |
e[Ac] [GB][^FA] [EG][FA] |!fff! [E,GB]!mf!e' Ac' ^Fa | !fff! [B,_e^f]!mf!B cB Bf |
[Eg]B [^Fa]B [Gb]B |!fff! ([A,d']!mf!c') ba g^f | e[GB] ^f[Ac]!fff! [B,B]!mf![_EA] | [EGe]2!fff! E,2 z2 :|Workflow: I keep MusicXML as the editable master, then create ABC to embed in notes for quick viewing in Obsidian. The two formats live side by side: one preserves completeness, the other is optimized for practice.
3. Scope and working rules
How this system works:
- Obsidian is the library and search hub. Other tools (MuseScore, EasyABC, OMR apps) are used only to convert files into MusicXML/ABC.
- One note = one piece (or one version).
- Frontmatter is mandatory for Dataview.
- Keep originals: always store PDF/scans and MusicXML and embed or link them.
- Separate storage vs. display: PDF/MusicXML/GuitarPro files for preservation; ABC/Chord Sheets for on-page practice.
4. Folder structure
Music Vault/
/__assets/
/__templates/
/popular_songs/
/classical_guitar/**/popular_songs/**: three flavors — lyrics-only, lyrics+chords, and lead sheets.**/classical_guitar/**: classical repertoire (scores, studies, arrangements).**/__assets/**: one home for all source files — easy to back up and reference.**/__templates/**: note templates
5. Metadata schemas
Popular songs
---
tags: # groove / style / theme
composer(s): [] # e.g. ["Jean Renard"]
lyricist(s): [] # e.g. ["Pierre Delanoë"]
key/tone: # C, Dm, Am, etc
language: # vi | en | fr
capo: # e.g. capo III
notes: # (optional)
---Classical guitar
---
tags: [Etude, Romantic] # era, form, or free-form labels
composer(s): [] # e.g. ["F. Tárrega"]
arranger(s): [] # if arranged
key: Dm # C, Dm, Am, etc.
difficulty: Intermediate # Easy | Intermediate | Advanced
notes: # fingerings, variants, etc.
---These fields are just enough for fast Dataview filtering.
6. Data-normalization workflow
6.1 From scans or PDFs
I usually start with an OMR tool (Audiveris) to export MusicXML. Accuracy varies — multi-voice textures, complex rhythms, unusual accidentals, or low-quality scans often produce errors — wrong pitches, missing durations, or misaligned lyrics.
Get Khoa-Anh Dam’s stories in your inbox
Join Medium for free to get updates from this writer.
So after that I correct the MusicXML in MuseScore or EasyABC: fix meters, accidentals, add/remove mistaken notes. Once the MusicXML is sound, I generate ABC notation for the Obsidian note.
I always keep the original PDF for reference. In this system, Audiveris is a helper, not a truth oracle.
Other OMR options to consider (same idea: export MusicXML first, then derive ABC): PhotoScore Ultimate, SmartScore 64, PlayScore 2, ScanScore, capella-scan, SharpEye, etc.
6.2 From Guitar Pro
Open GP3/GP5/GPX in MuseScore → export MusicXML → optionally convert to ABC for on-note melody display. Store the original in /__assets/ and link it from the note.
6.3 Lyrics & chords
- Lyrics-only: plain text.
- Chords-lyrics: use Chord Sheets syntax so chords align neatly above the words.

Rendered with the Chord Sheets plugin: inline chord-lyrics and guitar diagrams for quick practice
7. Displaying and linking PDFs in Obsidian
Obsidian can embed or link PDFs.
- Embed for quick, in-note viewing:
![[__assets/song-name.pdf]]
Embed a scanned PDF in Obsidian
- Link to open the full document:
[Full PDF](__assets/song-name.pdf)I typically do both: embed for practice flow, plus a link for full-page reading or printing.
8. Known constraints
- OMR accuracy still requires manual proofreading. The original PDF/scan remains the final authority.
- Classical guitar details (LH/RH fingerings, string positions, technique markings) don’t always survive conversion to MusicXML/ABC. I keep those nuances in the original PDF, while ABC carries melody/harmony scaffolding for practice.
- Obsidian is a library, not an engraver. For publication-grade engraving, I go back to MuseScore (or your notation tool of choice).
9. Wrap-up
This Obsidian library tames scattered music assets by combining a clear folder structure with consistent metadata. The pairing of MusicXML (complete, convertible) and ABC (lightweight, instantly viewable) lets me search, practice, and prep without friction — and without losing the fidelity of my sources.
Part II will dive into writing Chord Sheets and ABC Music Notation in Obsidian, plus practical Dataview queries to mine the library.