Agent Pitch Map
A public AI-navigable pitch map for humans and agents to move notes across piano, standard guitar, theory layers, sound, and simple guitar tab.
Who Should Use It
- Human players learning how piano notes map to guitar frets.
- Teachers explaining exact pitch, octave, and note-name families.
- Songwriters moving MIDI or piano ideas into playable guitar parts.
- AI agents that need structured music data instead of visual guessing.
Agent Operating Rules
- Use read-only APIs first, especially
/api/map. - Use the visual UI when the user needs to see or click the result.
- Separate exact pitch from same note name across octaves.
- Report theory membership and interval function separately.
- Use
/api/voicingsbefore guessing playable guitar shapes. - Use
/api/composerfor circle, common-tone, guide-tone, and guitar-anchor moves. - Use
/api/chord-scaleand/api/scales/containingfor scale reasoning. - Use
/api/recipes/tabwhen an explanation needs a playable share URL.
Primary API
GET /api/map?note=D4&root=C&scale=major&piano=49-key
Returns:
- selected MIDI pitch and frequency
- exact piano key
- same-note-name piano keys
- exact standard guitar fret positions
- same-note-name guitar fret positions
- active scale/chord membership
- interval function against the selected rootComposer Bridge API
GET /api/composer?note=G2&root=C&scale=major
Returns:
- current circle-of-fifths neighbors
- scale pitch classes sorted by fifths
- dominant, subdominant, relative-minor, chromatic-mediant, and guide-tone moves
- common tones for each move
- low-position standard-guitar anchors for shared notesScale Atlas APIs
GET /api/scales?family=jazz
GET /api/scale-map?root=C&scale=lydian¬e=G2
GET /api/chord-scale?root=G&chord=dominant7&contextRoot=C
GET /api/scales/containing?notes=C,E,G,Bb
Returns:
- scale definitions by family
- pitch-class degree maps
- selected-note scale membership
- chord-scale candidates and tensions
- guitar anchors for playable scale/chord tonesProject And Tab APIs
GET /api/project?note=D4&root=C&scale=major&piano=49-key
GET /api/recipes/tab?key=D&scale=naturalMinor&style=beginner-riff
GET /api/voicings?root=C&chord=major
GET /api/composer?note=G2&root=C&scale=major
GET /api/chord-scale?root=G&chord=dominant7&contextRoot=C
GET /api/tab/export?project=<encoded-project-state>
Project JSON stores:
- selected MIDI-backed pitch
- theory layer and interval functions
- piano mapping preferences
- transport state
- structured TabProject measures and TabNote events
- optional semantic overlays for agent/recipe teaching marksBrowser Agent Contracts
The map exposes stable attributes for browser agents:
data-testid="piano-key-D4"
data-testid="fret-S2-F3"
data-note="D4"
data-midi="62"
data-interval="2"
data-interval-name="second"
data-overlay-role="target"
data-overlay-label="Target: D opening target"
data-agent-role="exact-selected-pitch"
data-agent-role="same-note-name"Boundaries
This version exposes read-only public endpoints. It does not expose write-capable MCP or A2A task execution. Agents can generate shareable read-only project states and semantic teaching overlays, then hand users the returned workbench URL.