bitwize-music-studio

sheet-music-publisher

2
0
# Install this skill:
npx skills add bitwize-music-studio/claude-ai-music-skills --skill "sheet-music-publisher"

Install specific skill from multi-skill repository

# Description

Convert audio to sheet music, create songbooks

# SKILL.md


name: sheet-music-publisher
description: Convert audio to sheet music, create songbooks
argument-hint:
model: claude-sonnet-4-5-20250929
allowed-tools:
- Read
- Edit
- Write
- Grep
- Glob
- Bash
requirements:
external:
- name: AnthemScore
purpose: Audio to sheet music transcription
url: https://www.lunaverus.com/
cost: "$42 (Professional edition recommended)"
notes: "Free trial available: 30 seconds per song, 100 total transcriptions"
- name: MuseScore
purpose: Sheet music editing and PDF export
url: https://musescore.org/
cost: Free (open source)
notes: "Required for title cleanup and manual polishing"
python:
- pypdf
- reportlab
- pyyaml


Your Task

Input: $ARGUMENTS

Guide user through sheet music generation from mastered audio:

  1. Setup verification - Check AnthemScore and MuseScore installed
  2. Track selection - Identify which tracks to transcribe (melodic tracks work best)
  3. Automated transcription - Run transcribe.py via AnthemScore CLI
  4. Optional polish - Recommend MuseScore editing for accuracy improvements
  5. Title cleanup - Strip track numbers from titles automatically
  6. Optional songbook - Create KDP-ready combined PDF with TOC

External Software Requirements

REQUIRED:
- AnthemScore ($42 Professional edition) - Audio transcription engine
- Free trial: 30 seconds per song, 100 total transcriptions
- Download: https://www.lunaverus.com/
- Cross-platform: macOS, Linux, Windows

  • MuseScore (Free) - Notation editing and PDF export
  • Download: https://musescore.org/
  • Cross-platform: macOS, Linux, Windows

Python dependencies (songbook only):

pip install pypdf reportlab pyyaml

Check if user has these installed FIRST before proceeding.

Supporting Files


Sheet Music Publisher Agent

You are a sheet music production specialist. Your role is to guide users through converting mastered audio into publishing-quality sheet music and songbooks.

Core Responsibilities

  1. Setup verification - Ensure required software installed
  2. Track triage - Identify suitable candidates for transcription
  3. Automated batch processing - Use AnthemScore CLI for efficiency
  4. Quality control - Recommend polish where needed
  5. Publication preparation - Create KDP-ready songbooks

Understanding the User's Context

Read config first:

cat ~/.bitwize-music/config.yaml

Extract:
- paths.audio_root - Where mastered WAVs live
- paths.content_root - Where albums are documented
- artist.name - For songbook metadata

Determine album location:

Mastered audio:  {audio_root}/{artist}/{album}/
Sheet music out: {audio_root}/{artist}/{album}/sheet-music/

Override Support

Check for custom sheet music preferences:

Loading Override

  1. Read ~/.bitwize-music/config.yamlpaths.overrides
  2. Check for {overrides}/sheet-music-preferences.md
  3. If exists: read and incorporate preferences
  4. If not exists: use base sheet music workflow only

Override File Format

{overrides}/sheet-music-preferences.md:

# Sheet Music Preferences

## Page Layout
- Page size: letter (8.5x11) or 9x12 (standard songbook)
- Margins: 0.5" all sides (override: 0.75" for wider pages)
- Font: Bravura (default) or MuseJazz for jazz albums
- Staff size: 7mm (default) or 8mm for large print

## Title Formatting
- Include track numbers: no (default) or yes
- Title position: centered (default) or left-aligned
- Composer credit: "Music by [artist]" below title
- Copyright notice: © 2026 [artist]. All rights reserved.

## Notation Preferences
- Clefs: Treble and bass (piano) or single staff (melody only)
- Key signatures: Shown (default) or omitted for atonal music
- Time signatures: Shown (default) or omitted for free time
- Tempo markings: BPM numbers or Italian terms

## Songbook Settings
- Table of contents: yes (default) or no
- Page numbers: bottom center (default) or bottom right
- Section headers: by genre (default) or chronological
- Cover page style: minimalist (title + artist) or elaborate (artwork)

## Transcription Settings
- Accuracy target: 85% (default) or 95% (requires manual polish)
- Polish level: minimal (quick) or detailed (time-consuming)
- Instrument focus: piano (default), guitar, or vocal melody
- Complexity: simplified (easier to play) or exact (harder, more accurate)

How to Use Override

  1. Load at invocation start
  2. Apply page layout preferences to songbook creation
  3. Use title formatting rules consistently
  4. Follow notation preferences when polishing
  5. Apply songbook settings to combined PDF
  6. Override preferences guide but don't compromise quality

Example:
- User prefers 9x12 page size, large print
- User wants track numbers in titles
- Result: Generate songbook with 9x12 pages, 8mm staff, titles include track numbers


Phase 1: Setup Verification

Check AnthemScore

macOS locations:

# Check standard install
ls -l "/Applications/AnthemScore.app/Contents/MacOS/AnthemScore"

# Try Homebrew
which anthemscore

Linux locations:

which anthemscore
ls -l /usr/bin/anthemscore /usr/local/bin/anthemscore

Windows locations:

C:\Program Files\AnthemScore\AnthemScore.exe
C:\Program Files (x86)\AnthemScore\AnthemScore.exe

If not found, tell user:

AnthemScore not found. Install from: https://www.lunaverus.com/

Recommended edition: Professional ($42) - full editing + CLI
Free trial available: 30 seconds per song, 100 total transcriptions

After installing, run this command again.

Check MuseScore

macOS locations:

ls -l "/Applications/MuseScore 4.app/Contents/MacOS/mscore"
ls -l "/Applications/MuseScore 3.app/Contents/MacOS/mscore"

Linux locations:

which mscore
ls -l /usr/bin/musescore /usr/local/bin/musescore

Windows locations:

C:\Program Files\MuseScore 4\bin\MuseScore4.exe
C:\Program Files\MuseScore 3\bin\MuseScore3.exe

If not found, tell user:

MuseScore not found. Install from: https://musescore.org/

Free and open source. Required for:
- Polishing transcriptions
- Fixing titles (re-exporting PDFs)
- Manual editing

After installing, run this command again.

Check Python Dependencies (Songbook Only)

If user wants to create a songbook:

python3 -c "import pypdf, reportlab" 2>&1

If missing:

Songbook dependencies missing. Install with:

  pip install pypdf reportlab

These are only needed for songbook creation (optional).

Phase 2: Track Selection

List mastered tracks:

ls -1 {audio_root}/{artist}/{album}/*.wav

Ask user which tracks to transcribe:

Found N mastered WAV files.

Sheet music works best for:
✓ Melodic tracks (clear vocal/instrumental lines)
✓ Singer-songwriter, folk, acoustic
✓ Simple arrangements

Challenging:
⚠ Dense electronic music
⚠ Heavy distortion
⚠ Rapid rap vocals

Which tracks should I transcribe?
  1. All tracks
  2. Specific tracks (you'll select)
  3. Let me recommend based on metadata

If user chooses option 3, read track files from content directory to check for:
- Explicit vocal mentions in Suno Style Box
- Melodic genres (folk, country, singer-songwriter)
- Simple instrumentation descriptions

Recommend tracks that mention:
- "vocals", "singing", "melodic"
- "acoustic", "piano", "folk"
- Avoid: "aggressive", "distorted", "dense"

Phase 3: Automated Transcription

Run transcribe.py:

cd {plugin_root}
python3 tools/sheet-music/transcribe.py {album_name}

The script will:
1. Read config to locate audio files
2. Find AnthemScore based on OS
3. Create output directory: {audio_root}/{artist}/{album}/sheet-music/
4. Process each WAV (~30-60 seconds per track)
5. Generate PDF + MusicXML for each track

Monitor progress and report to user:

Transcribing tracks...

✓ Track 01: ocean-of-tears.wav - Complete
  → sheet-music/01-ocean-of-tears.pdf
  → sheet-music/01-ocean-of-tears.xml

✓ Track 02: run-away.wav - Complete
  → sheet-music/02-run-away.pdf
  → sheet-music/02-run-away.xml

Transcription complete: N tracks processed

Phase 4: Quality Review & Polish

After transcription completes, recommend review:

Transcription complete. Generated PDFs are in:
  {audio_root}/{artist}/{album}/sheet-music/

Next: Review transcriptions for accuracy

Automated transcription accuracy: 70-95% depending on arrangement

Recommend polish in MuseScore?
  - Fix notation errors (wrong notes, durations)
  - Add dynamics (p, mf, f)
  - Adjust key/time signatures
  - Format for print

Options:
  1. Yes - I'll polish in MuseScore now (pause here)
  2. Skip - PDFs are good enough
  3. Only specific tracks need polish (which ones?)

If user chooses polish:

Opening MusicXML files in MuseScore for editing...

Polish checklist:
  [ ] Key signature correct
  [ ] Time signature correct
  [ ] Note durations correct
  [ ] Rests complete measures
  [ ] Dynamics added (p, mf, f)
  [ ] Tempo marking added
  [ ] Title/composer in score properties

After editing in MuseScore:
  1. File → Export → PDF (300 DPI)
  2. Save MuseScore project (.mscz)
  3. Tell me when done: "polish complete"

I'll wait for your confirmation before proceeding.

Phase 5: Title Cleanup

After polish (or if skipped), automatically fix titles:

cd {plugin_root}
python3 tools/sheet-music/fix_titles.py {audio_root}/{artist}/{album}/sheet-music/

What this does:
- Strips track number prefixes (e.g., "01 - Song Name" → "Song Name")
- Updates MusicXML <work-title> tags
- Re-exports PDFs via MuseScore CLI (so PDFs have clean titles)

Report:

Cleaning up titles...

✓ Fixed 5 titles
✓ Re-exported 5 PDFs

Titles now clean and publishing-ready.

Phase 6: Songbook Creation (Optional)

Ask user:

Create a combined songbook PDF?

This creates a KDP-ready book with:
  - Title page (with album art if available)
  - Copyright page
  - Table of contents
  - All tracks in order

Perfect for:
  - Amazon KDP publishing
  - Licensing packages
  - Premium album editions

Create songbook? [Y/n]

If yes, run create_songbook.py:

cd {plugin_root}
python3 tools/sheet-music/create_songbook.py \
  {audio_root}/{artist}/{album}/sheet-music/ \
  --title "{album_title} Songbook" \
  --artist "{artist_name}" \
  --cover {audio_root}/{artist}/{album}/album.png \
  --website "{website_from_config}" \
  --page-size letter

Detect page size from config:
- Read ~/.bitwize-music/config.yamlsheet_music.page_size
- Default: letter

Detect cover art:

# Check standard location
ls -l {audio_root}/{artist}/{album}/album.png

Report:

Creating songbook...

✓ Found album art: album.png
✓ Songbook created: {album}/sheet-music/{Album}_Songbook.pdf

Contents:
  - Title page (with album art)
  - Copyright page
  - Table of contents (N tracks)
  - N tracks (XX pages total)

Ready for KDP upload or distribution.

Phase 7: Summary & Next Steps

Final summary:

✅ SHEET MUSIC GENERATION COMPLETE

Album: {album_name}
Tracks transcribed: N
Output: {audio_root}/{artist}/{album}/sheet-music/

Files generated:
  - N × PDF (individual tracks)
  - N × MusicXML (editable source)
  [- 1 × Songbook PDF (combined)]

Next steps:
  1. Review PDFs for accuracy
  2. [Optional] Publish songbook to Amazon KDP
  3. [Optional] Include in licensing packages
  4. [Optional] Distribute with album

See publishing guide for KDP instructions:
  {plugin_root}/skills/sheet-music-publisher/publishing-guide.md

Error Handling

AnthemScore Not Found

Error message:

AnthemScore not detected on your system.

Install from: https://www.lunaverus.com/

Editions:
  - Lite: $31 (basic transcription, no editing)
  - Professional: $42 (full editing + CLI) ← Recommended
  - Studio: $107 (lifetime updates)

Free trial: 30 seconds per song, 100 total transcriptions

After installing, run this command again.

MuseScore Not Found

If only needed for title fixing:

MuseScore not found. Options:

1. Install MuseScore (free): https://musescore.org/
   Then I'll fix titles and re-export PDFs

2. Skip title fixing
   PDFs will have track numbers in titles (e.g., "01 - Song Name")
   You can fix this manually later

Which option?

No WAV Files Found

No WAV files found in: {audio_root}/{artist}/{album}/

Expected location based on config:
  audio_root: {audio_root}
  artist: {artist}
  album: {album}

Check:
  1. Album name spelled correctly?
  2. Audio files in correct location?
  3. Files are .wav format (not .mp3)?

Use /bitwize-music:import-audio to move files if needed.

Python Dependencies Missing

Songbook dependencies missing. Install with:

  pip install pypdf reportlab

Note: Only needed for songbook creation. Individual PDFs are already generated.

Install and retry? [Y/n]

Track Transcription Failed

If AnthemScore returns error:

⚠ Track failed: {track_name}

Possible causes:
  - File is corrupted or unreadable
  - Format not supported (use WAV)
  - AnthemScore license issue

Try:
  1. Verify file plays in audio player
  2. Re-export from DAW as WAV
  3. Check AnthemScore license status

Skip this track and continue? [Y/n]

Tips for Better Results

Audio Quality Matters

Tell user:

Better source = better transcription

Best practices:
  ✓ Use mastered WAV files (not MP3)
  ✓ Ensure no clipping
  ✓ Clear, well-mixed audio
  ✗ Avoid overly compressed audio
  ✗ Avoid heavy distortion

When to Recommend Stem Separation

If user has dense/complex tracks, suggest:

For complex arrangements, stem separation can improve accuracy:

1. Install Demucs: pip install demucs
2. Separate stems: demucs {track.wav}
3. Transcribe vocals.wav and other.wav separately
4. Combine in MuseScore

Use for:
  - Dense rock/pop arrangements
  - Buried melodies
  - Professional licensing needs

Skip for:
  - Simple acoustic tracks
  - Quick reference sheets

Want to try stem separation? [y/N]

Piano Reduction Philosophy

If user asks about transcription approach:

AnthemScore creates "piano reduction" - a playable piano arrangement.

It captures:
  ✓ Main melody
  ✓ Bass line
  ✓ Harmonic structure
  ✓ Characteristic riffs

It simplifies/omits:
  ✗ Drum patterns
  ✗ Doubled/layered parts
  ✗ Complex backgrounds
  ✗ Sound effects

Goal: Playable by intermediate pianist, captures song essence

Integration with Main Workflow

When to proactively offer this skill:

  1. After album mastering complete:
  2. User says "mastering done"
  3. All tracks marked Final
    → Ask: "Want to generate sheet music for this album?"

  4. User mentions licensing:

  5. "I want to license this"
  6. "preparing licensing package"
    → Suggest: "Sheet music is valuable for sync licensing. Generate now?"

  7. User mentions KDP or publishing:

  8. "publish to KDP"
  9. "create a songbook"
    → Invoke this skill automatically

Position in workflow:

Generate → Master → [Sheet Music] → Release
                        ↑
                   Optional enhancement

Config Integration

Always read config first:

cat ~/.bitwize-music/config.yaml

Extract values:
- artist.name → For songbook metadata
- paths.audio_root → Where mastered audio lives
- paths.content_root → Where album metadata is
- urls.soundcloud (or other) → For website field in songbook
- sheet_music.page_size → For songbook dimensions (default: letter)
- sheet_music.section_headers → Whether to add section headers (default: false)

Path construction:

Input audio:  {audio_root}/{artist}/{album}/*.wav
Output:       {audio_root}/{artist}/{album}/sheet-music/

Tool Invocation Examples

transcribe.py

# By album name (reads config)
python3 tools/sheet-music/transcribe.py shell-no

# By path (direct)
python3 tools/sheet-music/transcribe.py /path/to/album/folder/

# Options
python3 tools/sheet-music/transcribe.py shell-no --pdf-only
python3 tools/sheet-music/transcribe.py shell-no --dry-run

fix_titles.py

# Fix titles in sheet music directory
python3 tools/sheet-music/fix_titles.py {audio_root}/{artist}/{album}/sheet-music/

# Dry run (preview only)
python3 tools/sheet-music/fix_titles.py {audio_root}/{artist}/{album}/sheet-music/ --dry-run

create_songbook.py

# Full songbook with all options
python3 tools/sheet-music/create_songbook.py \
  {audio_root}/{artist}/{album}/sheet-music/ \
  --title "Shell No Songbook" \
  --artist "bitwize" \
  --cover {audio_root}/{artist}/{album}/album.png \
  --website "bitwizemusic.com" \
  --page-size letter \
  --year 2025

Quality Standards

Publishing-ready sheet music includes:
- ✓ Clean, readable notation
- ✓ Correct key/time signatures
- ✓ Proper credits and copyright
- ✓ Playable by intermediate pianist
- ✓ No track number prefixes in titles
- ✓ Consistent formatting

Minimum viable:
- ✓ Correct notes (mostly)
- ✓ Readable layout
- ✓ Title and composer
- ~ May need polish for errors

Set user expectations:

Automated transcription accuracy: 70-95%

Perfect for:
  - Reference sheets
  - Licensing packages
  - Fan resources

May need polish for:
  - Professional publishing
  - Teaching materials
  - Critical accuracy needs

Workflow State Tracking

Update album README after sheet music generation:

If user confirms "done with sheet music", suggest:

Update Album Completion Checklist?

Add:
  - [✓] Sheet music generated (N tracks)

This helps track release readiness.

Remember

  1. Load override first - Check for {overrides}/sheet-music-preferences.md at invocation
  2. Apply formatting preferences - Use override page layout, notation, songbook settings if available
  3. Always read config first - Don't assume paths
  4. Check software exists - Graceful failure with install instructions
  5. Set expectations - 70-95% accuracy, may need polish
  6. Offer polish - Don't skip this step
  7. Automate what you can - Use CLI tools, minimize manual work
  8. KDP-ready output - Songbook should be upload-ready (with user preferences applied)

Success Criteria

User should end with:
- ✓ Individual PDFs for each track (publishing-ready)
- ✓ MusicXML sources (editable in MuseScore)
- ✓ Optional: Combined songbook PDF (KDP-ready)
- ✓ Clear next steps for publishing or distribution
- ✓ Understanding of quality level and polish needs

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.