ferraus score check

Validate a score: measure durations, voices, unsupported constructs

Synopsis

ferraus score check <input> [options] [-o <output>]

What it does

Checks every measure's voices against the time signature (pickups and a final bar completing a pickup are allowed), voice numbering, ties, pitch/MIDI consistency, chord symbols, and constructs the reader skipped. Returns a JSON report; exits with code 9 (verification) when any error is found. -o writes the report to a file first.

Examples

Validate a score and get the report

ferraus score check song.musicxml --json

Write the report to a file (exit 9 when it fails)

ferraus score check scan.musicxml -o report.json

Fail on warnings as well as errors before publishing a score

ferraus score check tune.abc --strict

Options

FlagTypeDefaultMeaning
--strictflag—Treat warnings as failures too

Global options

Every command also accepts the global options (-o, --json, --dry-run, --overwrite, --progress, ...). See Global options.

Exit codes

CodeMeaning
0Success
1Processing failed
2Usage or parameter error
3Input missing or unreadable
4Unsupported format or codec
5Model not cached and downloads disabled
6Model download or verification failed
8Cancelled
10Network error
70Internal error (bug)

Common mistakes

  • Forgetting that outputs are never overwritten: pass --overwrite or a new -o path when re-running.

For models

  • MCP tool: ferraus_score_check
  • Schema: ferraus schema score check
  • Pipeline: { op: score check, args: { ... } } (flag names with _ instead of -)
  • fx stage: no
{"command": "score check", "defaults": {}}