Organ Reflex Notation Service

Renders organ notation (right hand, left hand, pedal) as compact SVG using Abjad + LilyPond. Designed to be embedded in the iOS/macOS Organ Reflex app.

Authentication required on /organ/* and /notation/*

Most endpoints require a static API key. Provide it via either:

The /health and / (this page) endpoints are public.

GET /health

Public · Health check

Returns service status and version as JSON.

curl https://notation-service.dakoller.net/health
Try it →

GET /

Public · This documentation page

Self-contained API reference (you're looking at it).

GET /organ//

API key required · Single staff SVG

staff: right (treble), left or pedal (bass).
notes: comma-separated, e.g. C4,E4,G4.

curl -H "X-API-Key: " \
  "https://notation-service.dakoller.net/organ/right/C4,E4,G4" -o rh.svg

GET /organ/system/;;

API key required · Three connected staves (RH+LH+Pedal)

Three sections separated by ;. Each section is a comma-separated note list. Empty sections use defaults.

curl -H "X-API-Key: " \
  "https://notation-service.dakoller.net/organ/system/E4,G4,C5;C3,E3,G3;C2" -o full.svg

POST /organ/full

API key required · Three-staff score via JSON body

Body: {"right":[...], "left":[...], "pedal":[...]} (all optional).

curl -X POST -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{"right":["E4","G4","C5"],"left":["C3","E3","G3"],"pedal":["C2"]}' \
  https://notation-service.dakoller.net/organ/full -o full.svg

GET /notation///

API key required · Single note SVG (legacy)

note: C–G, A, B · octave: 1–5 · clef: bass or treble (default bass).

curl -H "X-API-Key: " \
  "https://notation-service.dakoller.net/notation/C/3/bass" -o c3.svg

GET /notation/cache/info

API key required · Cache info

Returns the count and filenames of cached SVGs.

curl -H "X-API-Key: " \
  https://notation-service.dakoller.net/notation/cache/info

POST /notation/cache/clear

API key required · Clear cache

Deletes all cached SVG files.

curl -X POST -H "X-API-Key: " \
  https://notation-service.dakoller.net/notation/cache/clear