C4 to guitar decision proof
Map C4 to piano identity, guitar positions, interval role, and proof fields.
/api/map?note=C4&root=C&scale=major&piano=61-keyMIDI identity, frequency, exact guitar positions, same-note family, and theory proof.
Copy-paste tasks and stable calls for agents that need to discover, call, verify, and compose with Agent Pitch Map.
Map C4 to piano identity, guitar positions, interval role, and proof fields.
/api/map?note=C4&root=C&scale=major&piano=61-keyMIDI identity, frequency, exact guitar positions, same-note family, and theory proof.
Convert C4 D4 E4 G4 into a ranked first-position guitar route under fret 7.
/api/route?notes=C4,D4,E4,G4&root=C&scale=major&position=first&maxFret=7Ranked string/fret route, movement proof, tab events, ASCII tab, and share URLs.
Route F G A while staying near the standard F barre hand shape and explain the barre proof.
/api/route?notes=F4,G4,A4&root=F&scale=major&position=first&maxFret=12&frets=1,3,3,2,1,1shapeContext with barres[], hand-window source, start-anchor proof, ranked route notes, tab events, ASCII tab, and share URLs.
Render the best route as tab and verify that every string/fret coordinate still matches MIDI.
GET /api/route then POST tabRenderRequest.pathtabRenderRequest.body, eventProof[].stringFretMatchesMidi, project.tabProject.measures[0].notes, ASCII tab, and share URLs.
Where does D4 appear on standard guitar, and which other D notes are nearby?
/api/map?note=D4&root=C&scale=major&piano=49-keyExact pitch positions, same-note-name positions, piano key, frequency, and theory membership.
Find three C major voicings playable between frets 0-5.
/api/chord?root=C&chord=major&limit=3Playable voicings with interval labels, optimization cost, chord-tone proof, and fingering proof.
Given frets 1,3,3,2,1,1, identify the chord, omitted tones, barre span, and likely function.
/api/identify?frets=1,3,3,2,1,1&contextRoot=F&limit=5Ranked chord hypotheses with coverage proof, missing/omitted tones, bass role, barres[], barreDisplayProof, key-context function, and playable next moves.
Explain why G is the fifth of C lydian and show playable guitar anchors.
/api/scale?root=C&scale=lydian¬e=G2Rooted scale degrees, selected-note membership, characteristic tones, and guitar anchors.
Generate ASCII tab for a C major arpeggio from structured note events.
/api/tabASCII tab, canonical ProjectState, MIDI/string-fret proof, and compact workbench URL.
Find the top three G7 to Cmaj7 guitar resolutions and explain why the first is best.
/api/voice-leading?fromRoot=G&fromChord=dominant7&toRoot=C&toChord=major7&limit=3Three ranked transitions with ids, scores, source/target frets, proof fields, tab events, and per-rank workbench URLs.
Write a D Dorian two-bar guitar idea under first-position constraints and return tab plus URL.
/api/compose?key=D&scale=dorian&chord=minor7&motif=dorian-compass&position=first&bars=2Playable ProjectState, ASCII tab, semantic overlays, app URL, compact URL, and agent usage notes.
Build a beginner C guide-tone drill with count-in timing, playable tab, and route proof.
/api/practice/drill?target=guide-tones&key=C&level=beginner&position=firstMIDI target events, pulse schedule, ranked guitar route, tab events, ASCII tab, ProjectState, and share URLs.
Use this when a ranked route should become canonical tab without parsing ASCII. The route planner supplies the ready tab render request from structured MIDI-backed events.
1. GET /api/route?notes=C4,D4,E4,G4&root=C&scale=major&position=first&maxFret=7
2. Read from the response:
tabRenderProof
tabRenderRequest.path
tabRenderRequest.body
routes[0].tabNotes
3. Confirm before posting:
tabRenderProof.expectedEventCount === routes[0].tabNotes.length
tabRenderProof.expectedEventProof === "eventProof[].stringFretMatchesMidi"
tabRenderProof.expectedProjectPath === "project.tabProject.measures[0].notes"
4. POST tabRenderRequest.path with tabRenderRequest.body
5. Verify:
eventProof[].stringFretMatchesMidi === true
project.tabProject.measures[0].notes.length === routes[0].tabNotes.length{
"routes": [
{
"id": "route-1",
"efficiencyScore": 97,
"proof": {
"allNotesMapped": true,
"handWindow": "first-position",
"routeSpan": 3,
"totalFretMovement": 4,
"totalStringMovement": 3
},
"tabNotes": [
{ "midi": 60, "note": "C4", "string": 2, "fret": 1, "startBeat": 0 },
{ "midi": 62, "note": "D4", "string": 2, "fret": 3, "startBeat": 0.5 }
]
}
],
"tabRenderProof": {
"expectedEventCount": 4,
"expectedEventsSource": "routes[0].tabNotes",
"expectedEventProof": "eventProof[].stringFretMatchesMidi",
"expectedProjectPath": "project.tabProject.measures[0].notes",
"proofStatusBeforePost": "pending-post",
"renderEndpoint": "/api/tab"
},
"tabRenderRequest": {
"method": "POST",
"path": "/api/tab",
"body": {
"title": "Agent Pitch Map route",
"tuning": "standard-6-string",
"events": "same structured events as routes[0].tabNotes"
}
}
}{
"title": "C major arpeggio",
"tuning": "standard",
"tempo": 96,
"timeSignature": "4/4",
"events": [
{ "note": "C3", "string": 5, "fret": 3, "beat": 1 },
{ "note": "E3", "string": 4, "fret": 2, "beat": 2 },
{ "note": "G3", "string": 3, "fret": 0, "beat": 3 },
{ "note": "C4", "string": 2, "fret": 1, "beat": 4 }
]
}