How it works

ScoreSifter reads every PDF filename in your sheet music folder, strips noise (IMSLP catalogue numbers, library codes, CamelCase concatenation), and extracts the title, composer and key. It then checks each piece against a built-in catalogue of 43,000+ works to find the canonical title and full composer name.

You review every proposed rename before anything happens. When you're happy, ScoreSifter renames the files and writes forScore-compatible metadata directly into each PDF — so your library is organised on the filesystem and searchable inside forScore at the same time.

Nothing is automatic. ScoreSifter proposes renames — you approve them. Every rename is undoable while the app is open.

The three-step workflow

1

Scan your folder

Point ScoreSifter at a folder containing PDF sheet music. It reads every filename and extracts what it can — title, composer, key. Files appear in the To Review tab with colour-coded confidence levels showing how much was extracted.

2

Review and look up

Check the proposed renames. Run Auto-lookup to query the catalogue for every file at once, or click the magnifying glass on any row to search manually. Edit any field directly — title, composer, key or work. Move files to the Done tab when you're happy with them.

3

Rename

In the Done tab, click Rename Selected. Files are renamed and forScore metadata is written into every PDF. Import into forScore and use Fetch to populate your library instantly.

Confidence levels

Every file in the To Review tab has a coloured left border indicating how much information was extracted from the filename:

  • Green (High) — title and composer found, good catalogue match likely
  • Amber (Medium) — title found, some fields missing
  • Grey (Low) — little extracted, manual review recommended
  • Teal — file is in the Done tab, ready to rename

The filename template

ScoreSifter uses a configurable template to build output filenames. The default template is:

Default template {title} – {composer}[? ({work})?] – [{key}]

This produces filenames like:

With work field La donna è mobile – Giuseppe Verdi (Rigoletto) – [D].pdf
Without work field (optional block hides) Caro mio ben – Tommaso Giordani – [Eb].pdf
Without key Somewhere – Leonard Bernstein (West Side Story).pdf

Template tokens

Tokens are placeholders that get replaced with the value for each file. If a token has no value, it outputs nothing — but any surrounding punctuation or spaces will still appear unless you use an optional block (see below).

Token Description Example output
{title} Song or piece title La donna è mobile
{composer} Composer full name Giuseppe Verdi
{work} Opera, musical, opus or collection Rigoletto
{key} Musical key extracted from filename Eb
{tag} Annotations from [brackets] in filename — e.g. Vocal Score, IPA, tenor Vocal Score
{lyricist} Lyricist name (when present) Francesco Maria Piave

Optional blocks

The most important concept in the template system is the optional block. Wrap any part of your template in [? ... ?] to make it conditional — the entire block only appears when the token inside it has a value. Without optional blocks, empty fields leave behind orphaned dashes and brackets.

Rule of thumb: Any token that might sometimes be empty — {work}, {key}, {tag} — should be inside an optional block.

How optional blocks work

Here's the same template with and without optional blocks, applied to a file with no work field:

Template WITHOUT optional block — broken when work is empty {title} – {composer} ({work}) – [{key}]
Output — orphaned brackets appear Caro mio ben – Tommaso Giordani () – [Eb].pdf
Template WITH optional block — correct {title} – {composer}[? ({work})?] – [{key}]
Output — clean, no empty brackets Caro mio ben – Tommaso Giordani – [Eb].pdf

The {tag} token and optional blocks

The {tag} token works the same way — it must be inside an optional block, and the surrounding brackets that you want in the filename must also be inside the optional block.

Common mistake: Writing [? {tag} ?] puts the tag value in the filename but without surrounding brackets. To get [Vocal Score] in the output, the square brackets must be inside the optional block: [? [{tag}]?]

Wrong — tag appears without brackets {title} – {composer}[? ({work})?] – [? {tag} ?]– [{key}]
Output — no brackets around tag The Student Prince – Sigmund Romberg – Vocal Score -.pdf
Correct — brackets inside the optional block {title} – {composer}[? ({work})?][? [{tag}]?] – [{key}]
Output with tag The Student Prince – Sigmund Romberg [Vocal Score].pdf
Output without tag (regular song) Caro mio ben – Tommaso Giordani – [Eb].pdf

Template examples

Here are some complete templates for common use cases:

Default — title, composer, work (optional), key (optional) {title} – {composer}[? ({work})?] – [{key}]
With score type tag — useful if you have vocal scores and full scores {title} – {composer}[? ({work})?][? [{tag}]?] – [{key}]
Minimal — title and composer only {title} – {composer}
With key first — useful for sorting by key in Finder [{key}] {title} – {composer}[? ({work})?]

The template is completely freeform

Any text you type in the template — separators, labels, punctuation, words — appears literally in every filename. The tokens are just placeholders that get substituted with the actual values. Everything else is yours to write however you like.

This means you can add any static text anywhere in the template:

Adding a voice type label {title} – {composer}[? ({work})?] – [{key}] – soprano
Output Caro mio ben – Tommaso Giordani – [Eb] – soprano.pdf
Adding a folder-style prefix VOCAL – {title} – {composer}
Adding extra context after the title {title} (arr. piano) – {composer}[? ({work})?]

Tip: You can also edit any field — title, composer, key, work — directly in the file row before renaming. ScoreSifter proposes a rename but you have full control over every field. The template just controls the format; you control the content.

Complete scores and vocal scores

ScoreSifter handles complete opera, oratorio and musical theatre scores alongside individual songs and arias. When a filename contains a score-type annotation — Vocal Score, Full Score, Piano Reduction and similar — it is automatically extracted as a tag rather than appearing in the title or work field.

Input filename IMSLP784898-PMLP1070527-Romberg_-_The_Student_Prince_(Vocal_Score).pdf
Output (default template) The Student Prince – Sigmund Romberg.pdf
Output (with {tag} in template) The Student Prince – Sigmund Romberg [Vocal Score].pdf

The score type is also written into the PDF Keywords metadata, so it appears as a Tag in forScore — making complete scores searchable and filterable in your forScore library even if it doesn't appear in the filename.

Tip: If you have both a vocal score and a full score of the same work, add [? [{tag}]?] to your template so the score type appears in the filename and the two files stay distinguishable.

Recognised score-type annotations

ScoreSifter recognises these terms in filenames (case-insensitive, in parentheses or brackets):

  • Vocal Score
  • Full Score
  • Piano Reduction
  • Piano Vocal / Piano-Vocal
  • Complete Score
  • Study Score
  • Miniature Score
  • Choral Score
  • Orchestral Score
  • Short Score

forScore integration

After renaming, ScoreSifter writes metadata directly into every PDF using the standard fields forScore reads. This means your scores open in forScore with title, composer, key and tags already populated — no manual entry required.

The work or opera name, voice type, and any other tags extracted from the filename are written into Keywords alongside the key data. In forScore, these appear in the Tags field — making your library searchable and filterable by opera, voice type, or any other annotation.

Getting metadata into forScore

forScore does not automatically read PDF metadata when you import a file — it waits for you to trigger this action. There are two ways to do it:

A

Automatic (recommended)

In forScore, go to Settings → Library → Automatic fetching for new files and enable it. Every new file you import will have its metadata populated automatically from the PDF.

B

Manual Fetch

Open any score in forScore, open the Metadata panel, tap the menu icon in the top right, and choose Fetch. forScore reads the PDF metadata and offers to apply it to the score's fields.

Note: If you imported files into forScore before running ScoreSifter, you can still use manual Fetch on any existing file to populate its metadata from the renamed PDF.

Key encoding

Keys are stored in the PDF using the MIDI standard — two values that together identify the key signature. This is the same standard forScore uses internally.

keysfkeymiKey
-70C♭ major
-60G♭ major
-50D♭ major
-40A♭ major
-30E♭ major
-20B♭ major
-10F major
00C major
10G major
20D major
30A major
40E major
50B major
60F♯ major
70C♯ major
keysfkeymiKey
-71A♭ minor
-61E♭ minor
-51B♭ minor
-41F minor
-31C minor
-21G minor
-11D minor
01A minor
11E minor
21B minor
31F♯ minor
41C♯ minor
51G♯ minor
61D♯ minor
71A♯ minor

The catalogue

ScoreSifter includes a built-in catalogue of 43,000+ works covering classical opera, art song, musical theatre, operetta, oratorio, folk song, sacred music and more. The catalogue is the primary lookup source — it runs entirely offline and is checked before any online service is queried.

What the catalogue provides

  • Canonical titles — correct diacritics, capitalisation and spelling
  • Full composer names — "Romberg" expands to "Sigmund Romberg"
  • Work / opera / show — which opera or musical a song belongs to
  • Complete score entries — major operas, oratorios and musicals as whole works

Catalogue coverage

The catalogue covers the core classical vocal and musical theatre repertoire in depth — Verdi, Puccini, Donizetti, Schubert, Schumann, Brahms, Fauré, Wolf, Mahler, Handel, Bach, and all major musical theatre composers. It also includes operetta (Lehár, Kálmán, Offenbach, Gilbert & Sullivan), oratorio, sacred choral music, folk song collections, and zarzuela.

When the catalogue misses

If a piece isn't in the catalogue, ScoreSifter falls back to MusicBrainz — an open, community-maintained music database. MusicBrainz requires an internet connection. The catalogue covers the vast majority of classical and theatre repertoire, so most lookups never reach MusicBrainz.

Missing a piece? Use the magnifying glass on any file row to search for it manually, or edit the fields directly. Your corrections are applied immediately to the proposed rename.

Settings reference

Settings are accessed via the gear icon in the toolbar. Changes take effect immediately.

Filename template

The template that controls output filenames. See the Filename template section above for full details on tokens and optional blocks.

Include subfolders

When enabled, ScoreSifter scans all subfolders within your chosen folder. When disabled, only the top-level folder is scanned. Default: on.

Skip already formatted

When enabled, files whose filenames already match the template pattern are skipped and not shown in the To Review tab. Useful when re-scanning a folder you've already processed. Default: off.

Write PDF metadata

When enabled, ScoreSifter writes forScore-compatible metadata (Title, Author, Keywords) into each PDF after renaming. Disable this if you want rename-only behaviour without modifying PDF content. Default: on.

Note: PDF metadata is written using an incremental append — bytes are only added to the end of the file. The original PDF content is never modified. This works safely with all PDF types including MuseScore-exported files.