Everything you need to know about renaming your sheet music library and getting the most out of forScore integration.
Overview
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.
Workflow
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.
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.
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.
Every file in the To Review tab has a coloured left border indicating how much information was extracted from the filename:
Filename template
ScoreSifter uses a configurable template to build output filenames. The default template is:
This produces filenames like:
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 |
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.
Here's the same template with and without optional blocks, applied to a file with no work field:
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}]?]
Here are some complete templates for common use cases:
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:
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
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.
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.
ScoreSifter recognises these terms in filenames (case-insensitive, in parentheses or brackets):
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.
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:
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.
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.
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.
| keysf | keymi | Key |
|---|---|---|
| -7 | 0 | C♭ major |
| -6 | 0 | G♭ major |
| -5 | 0 | D♭ major |
| -4 | 0 | A♭ major |
| -3 | 0 | E♭ major |
| -2 | 0 | B♭ major |
| -1 | 0 | F major |
| 0 | 0 | C major |
| 1 | 0 | G major |
| 2 | 0 | D major |
| 3 | 0 | A major |
| 4 | 0 | E major |
| 5 | 0 | B major |
| 6 | 0 | F♯ major |
| 7 | 0 | C♯ major |
| keysf | keymi | Key |
|---|---|---|
| -7 | 1 | A♭ minor |
| -6 | 1 | E♭ minor |
| -5 | 1 | B♭ minor |
| -4 | 1 | F minor |
| -3 | 1 | C minor |
| -2 | 1 | G minor |
| -1 | 1 | D minor |
| 0 | 1 | A minor |
| 1 | 1 | E minor |
| 2 | 1 | B minor |
| 3 | 1 | F♯ minor |
| 4 | 1 | C♯ minor |
| 5 | 1 | G♯ minor |
| 6 | 1 | D♯ minor |
| 7 | 1 | A♯ minor |
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.
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.
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.
The template that controls output filenames. See the Filename template section above for full details on tokens and optional blocks.
When enabled, ScoreSifter scans all subfolders within your chosen folder. When disabled, only the top-level folder is scanned. Default: on.
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.
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.