ferraus score perform

One shot: read, play, render

Quality tier: best-effort. Results are reported with a quality or confidence estimate.

Synopsis

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

What it does

Reads sheet music (a PDF or image through score read, or any notation file), performs it as MIDI, and renders the MIDI to audio through render with the chosen instrument. The MusicXML and MIDI are written beside the audio (same name, .musicxml and .mid).

Examples

Read a printed score and render it (writes sonata.musicxml and sonata.mid too)

ferraus score perform sonata.pdf --instrument piano -o sonata.wav

Render an ABC tune at 100 bpm

ferraus score perform tune.abc --tempo 100 -o tune.wav

Render a MusicXML quartet on strings with a little human timing

ferraus score perform quartet.musicxml --instrument strings --humanize 30% --dynamics on -o quartet.wav

Swung piano performance of a lead sheet, playing each section once

ferraus score perform lead.musicxml --instrument salamander-grand-piano --swing 60% --repeats off -o lead.wav

Options

FlagTypeDefaultMeaning
--tempotextautoTempo override in quarter notes per minute; auto follows the score's tempo marks (120 when none)
--repeatson|offonUnroll repeats and first/second endings
--dynamicson|offonMap dynamics (pp..ff) to velocities
--articulationon|offonMap articulations to note lengths: staccato 50%, staccatissimo 25%, tenuto and slurred (legato) 100%, other notes 95% (gap at most a 64th note); accents add velocity
--humanizepercent0%Random timing (up to ±20 ms) and velocity (up to ±12) variation, seeded by --seed
--swingpercent0%Delay off-beat eighths: 100% moves them to the triplet position (2:1)
--instrument-maptext—Programs per part, e.g. "P1=piano,P2=strings" (GM names, short names, or numbers 0-127)
--clickon|offoffAdd a metronome click track (channel 10)
--instrumenttextpianoInstrument for render: an installed sound name, a .sf2/.sfz path, or plugin:<name>
--pagestext—Pages to read from a PDF (1-4); default all
--dpiinteger300Rasterization resolution for PDF pages in dots per inch
--enginebuiltin | audiverisbuiltinOMR engine for PDF and image inputs
--fixpath—Apply an edit list before performing

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
7Plugin crashed, timed out, or was not found
8Cancelled
10Network error
70Internal error (bug)

Common mistakes

  • Forgetting that outputs are never overwritten: pass --overwrite or a new -o path when re-running.
  • Percentages accept 80% or the fraction 0.8; a bare 80 means 80x, not 80%.
  • Treating best-effort output as final: check the reported quality/confidence in --json.

For models

  • MCP tool: ferraus_score_perform
  • Schema: ferraus schema score perform
  • Pipeline: { op: score perform, args: { ... } } (flag names with _ instead of -)
  • fx stage: no
{"command": "score perform", "defaults": {"tempo": "auto", "repeats": "on", "dynamics": "on", "articulation": "on", "humanize": "0%", "swing": "0%", "click": "off", "instrument": "piano", "dpi": "300", "engine": "builtin"}}