Building a Personal Music Database in Obsidian (Part I)

Sitemap

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

---
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.

Khoa-Anh Dam

Khoa-Anh Dam

9 following