Gitarren-Akkord-Assistent
Akkorde per Sprachbeschreibung finden und verstehen
Autor: Wolfgang Lessat
Originalquelle:
lessat.net
https://lessat.net/technik/ki-und-automation/projekte/gitarren-akkord-assistent/
Die Idee
Beim Gitarrespielen kommt oft der Moment: Ich suche einen Akkord, der sich nach bestimmten Gefühl anfühlt – aber ich kenne seinen Namen nicht.
Gitarrenbücher und Akkord-Apps funktionieren umgekehrt: Man kennt den Namen und sucht das Griffbild. Was fehlt, ist der entgegengesetzte Weg: eine Beschreibung eingeben – „etwas Melancholisches in Moll, nicht zu dunkel" – und sinnvolle Akkordvorschläge mit Erklärung zurückbekommen.
Genau das kann ein KI-Agent. Er versteht die natürlichsprachliche Beschreibung, schlägt passende Akkorde vor, erklärt warum sie passen und kann auf Rückfragen eingehen – ohne dass jeder Schritt vorher programmiert sein muss.
Beispiel-Dialog:
Eingabe:
„Ich suche etwas Melancholisches in Moll,
passend für einen ruhigen Fingerpicking-Song."
Antwort:
„Für einen melancholischen Fingerpicking-Song empfehle ich
Am – F – C – G als Grundgerüst. Am gibt den dunklen Einstieg,
F und C schaffen eine weiche Spannung,
G löst auf ohne zu hell zu klingen.
Alternativ wirkt Dm – Am – Bb – F noch introvertierter.
Magst du es noch düsterer, wäre Am – G – F – E
eine klassische andalusische Kadenz."
Rückfrage:
„Kannst du das etwas jazziger machen?"
Antwort:
„Gerne – für einen jazzig-melancholischen Fingerpicking-Ansatz
wären Am7 – Dm7 – G7 – Cmaj7 interessant …"
Was das Projekt können soll
Klare Anforderungen – und bewusste Nicht-Ziele.
✓ Natürlichsprachliche Beschreibungen verstehen
(Stimmung, Tonart, Spielstil, Genre).
✓ Passende Akkorde mit Namen und Begründung vorschlagen.
✓ Auf Rückfragen eingehen und Vorschläge anpassen.
✓ Über einen Webhook aufrufbar sein –
von einer einfachen Webseite oder Testoberfläche.
✓ Antwort in lesbarem deutschen Text zurückgeben.
✗ Keine Griffbilder oder Tabulatur-Ausgabe.
✗ Keine Audio-Ausgabe oder MIDI-Generierung.
✗ Keine Benutzerverwaltung oder gespeicherte Favoriten.
✗ Keine öffentliche API ohne Absicherung.
Die Lösung im Überblick
Ein Webhook empfängt die Anfrage, ein KI-Agent verarbeitet sie, die Antwort geht sofort zurück.
Workflow-Ablauf:
[Webhook Trigger] ← empfängt POST-Anfrage
↓ { "frage": "Ich suche..." }
[IF Node] Eingabe vorhanden?
↓ true
[AI Agent] Claude analysiert, antwortet
↓ Akkordvorschläge + Erklärung
[Respond to Webhook] Antwort zurücksenden
Der Assistent soll Rückfragen verstehen und auf den bisherigen Gesprächsverlauf eingehen – „kannst du das jazziger machen?" setzt voraus, dass der Agent weiß, was er zuvor vorgeschlagen hat. Dafür braucht es Gedächtnis über den Konversationsverlauf, was der AI Agent Node mit Window Buffer Memory löst. Ein einfacher Basic LLM Chain Node hat kein Gedächtnis – jede Anfrage wäre ohne Kontext.
Claude (Anthropic) zeigt beim Erklären von Zusammenhängen – Akkordbeziehungen, Stimmungscharakter, Musiktheorie – besonders nuancierte und gut strukturierte Antworten. Für ein Projekt, das auf Verständnis und Erklärung setzt statt auf schnelle Einzelantworten, ist das der passende Grundcharakter.
Voraussetzungen
Was vor dem ersten Node bereit sein muss.
Der Webhook muss von außen erreichbar sein –
entweder über n8n Cloud, eine Docker-Instanz
mit eigener Domain, oder lokal mit einem
Tunnel-Dienst wie
ngrok
(kostenlose Stufe ausreichend für Tests).
→
n8n installieren
Kostenpflichtig – aber günstig für gelegentliche Nutzung.
Claude Haiku (das schnellste Modell) kostet
deutlich weniger als 1 Cent pro typischer Anfrage.
Registrierung und Key-Erstellung unter:
console.anthropic.com
Ein Startguthaben von 5 $ reicht für hunderte
Testanfragen.
→
API-Keys verwalten
Nicht zwingend nötig – der Agent erklärt alles. Aber wer Begriffe wie Dur, Moll, Septakkord und Kadenzen kennt, kann präzisere Anfragen formulieren und die Antworten besser einordnen.
Schritt 1: Webhook-Trigger – auf Anfragen warten
Der Webhook-Trigger wartet auf eingehende POST-Anfragen und startet den Workflow bei jeder neuen Frage sofort.
Node: Webhook
Name: „Akkord-Anfrage empfangen"
HTTP Method: POST
Path: akkord-assistent
Die vollständige Webhook-URL lautet dann:
https://[deine-n8n-domain]/webhook/akkord-assistent
Response Mode:
„Using 'Respond to Webhook' node"
(damit n8n wartet bis der Agent fertig ist,
bevor er antwortet – nicht sofort nach Empfang).
Die Anfrage wird als POST-Body gesendet:
{
"frage": "Ich suche einen melancholischen Akkord in Moll",
"sessionId": "user-123"
}
frage – die eigentliche Anfrage (Pflicht).
sessionId – optionaler Bezeichner für
den Konversationsspeicher, damit der Agent
bei Rückfragen den Verlauf kennt.
Schritt 2: Eingabe validieren
Bevor der Agent arbeitet, prüft ein IF Node ob überhaupt eine Frage vorhanden ist.
Node: IF
Name: „Frage vorhanden?"
Condition:
Value 1 (Expression):
{{ $json.body.frage }}
Operation: Is not empty
Am false-Ausgang einen
Respond to Webhook-Node anhängen:
Response Code: 400
Response Body:
{ "fehler": "Bitte eine Frage im Feld 'frage' mitschicken." }
So bekommt der Aufrufer eine klare Fehlermeldung
statt einer leeren Antwort.
Schritt 3: KI-Agent – Akkorde analysieren
Der AI Agent Node ist das Herzstück. Er empfängt die Frage, denkt nach und formuliert eine musiktheoretisch fundierte Antwort.
Node: AI Agent
Name: „Akkord-Assistent"
Chat Model:
Anthropic Chat Model →
Credential auswählen →
Model: claude-haiku-4-5
(schnell und günstig, für Akkordvorschläge ausreichend;
für detailliertere Musiktheorie-Erklärungen
alternativ claude-sonnet-4-5)
Prompt (Expression):
{{ $json.body.frage }}
System Prompt:
Siehe Kapitel
„Der System-Prompt".
Max Iterations: 3
(Der Assistent braucht keine Werkzeuge –
er antwortet aus seinem Musikwissen.
Wenige Iterationen reichen, halten die Kosten gering.)
Am Memory-Eingang des AI Agent Nodes
einen Window Buffer Memory-Node anhängen:
Session ID (Expression):
{{ $json.body.sessionId ?? 'default' }}
Context Window Length: 10
(Die letzten 10 Nachrichten werden gespeichert –
ausreichend für einen typischen Akkord-Dialog.)
So erinnert sich der Agent an den bisherigen Verlauf
und kann „kannst du das jazziger machen?"
korrekt auf den vorherigen Vorschlag beziehen.
Schritt 4: Antwort zurücksenden
Der Respond-to-Webhook-Node sendet die Antwort des Agenten sofort zurück an den Aufrufer.
Node: Respond to Webhook
Name: „Antwort senden"
Response Code: 200
Response Data:
„First Entry JSON"
Response Body (Expression):
{{ JSON.stringify({ antwort: $json.output }) }}
Die Antwort des Agenten steht in $json.output
und wird als JSON-Objekt zurückgegeben:
{ "antwort": "Für einen melancholischen Fingerpicking-Song ..." }
Der System-Prompt – Herzstück des Agenten
Der System-Prompt definiert die Persönlichkeit, das Wissen und das Verhalten des Agenten. Er ist das wichtigste Konfigurationselement – wichtiger als jeder Node-Parameter.
Du bist ein erfahrener Gitarrenlehrer und Musiktheoretiker
mit Schwerpunkt auf westlicher Harmonielehre, Folk, Fingerpicking
und Singer-Songwriter-Musik.
Deine Aufgabe ist es, auf Beschreibungen von Stimmungen,
Spielstilen oder musikalischen Ideen mit konkreten
Akkordvorschlägen zu antworten.
Halte dich an folgende Regeln:
- Antworte immer auf Deutsch.
- Nenne konkrete Akkordnamen (z.B. Am, F, G7, Cmaj7).
- Erkläre kurz, warum der jeweilige Akkord zur Beschreibung passt.
- Schlage 2–3 Alternativen oder Variationen vor.
- Wenn der Nutzer nach einer Variation fragt ("jazziger",
"düsterer", "einfacher"), beziehe dich auf deinen
vorherigen Vorschlag und passe ihn an.
- Halte Antworten kompakt – maximal 10 Sätze.
- Wenn die Anfrage keinen Bezug zu Musik oder Gitarre hat,
weise höflich darauf hin, dass du nur bei
Akkord- und Musikfragen helfen kannst.
Warum der letzte Punkt wichtig ist:
Ein Webhook ohne Authentifizierung ist öffentlich erreichbar.
Ohne Einschränkung im System-Prompt könnte jemand
den Agenten für beliebige Anfragen nutzen –
auf Kosten des eigenen API-Budgets.
Die Einschränkung auf Musik-Themen ist
die einfachste Form der Missbrauchs-Begrenzung.
Besser wäre zusätzlich ein
geheimer Token im Webhook-Header.
Workflow exportieren und importieren
Der vollständige Workflow steht als JSON-Datei zum Download bereit.
1. Anthropic-Credential hinterlegen und im
AI Agent Node auswählen.
2. System-Prompt nach eigenen Vorlieben anpassen –
z.B. für Blues, Jazz oder klassische Gitarre.
3. Webhook-URL notieren und in die eigene
Testoberfläche oder ein einfaches HTML-Formular eintragen.
4. Mit einem POST-Request testen
(z.B. über den Browser oder
Hoppscotch –
eine kostenlose API-Testoberfläche).
Alternativ zum Download: Inhalt kopieren und in n8n über Workflows → Import from clipboard einfügen.
Sicherheit & Credentials
Ein öffentlicher Webhook braucht eine Minimalabsicherung.
Credential-Typ: Anthropic API (n8n built-in)
Im Anthropic Console unter „Limits"
ein monatliches Ausgabenlimit setzen –
z.B. 5 $ – damit ein unerwarteter Anstieg
keine hohen Kosten verursacht.
Im Webhook-Node unter
„Authentication" →
„Header Auth" aktivieren.
Name: X-Webhook-Token
Value: ein selbst gewählter, langer Zufallsstring.
Jede Anfrage muss diesen Header mitschicken.
Anfragen ohne den korrekten Token
werden von n8n automatisch abgewiesen –
ohne den Workflow zu starten.
Für private Nutzung ausreichend: Das Ausgabenlimit im Anthropic Console verhindert unkontrollierte Kosten. Wer den Webhook öffentlich teilt, sollte zusätzlich einen IF-Node voranstellen, der die Länge der Anfrage begrenzt – z.B. maximal 500 Zeichen.
Was ich gelernt habe
Ein ehrliches Fazit – was überrascht hat, was anders lief als erwartet.
Die Qualität der Akkordvorschläge von Claude ist überraschend gut – auch für spezifische Anfragen wie „andalusische Kadenz auf der E-Gitarre" oder „offene Stimmungen für Slide-Gitarre". Der System-Prompt ist der wichtigste Hebel: Eine klare Rollenbeschreibung macht die Antworten deutlich fokussierter als ohne. Window Buffer Memory funktioniert zuverlässig – Rückfragen werden korrekt auf den Kontext bezogen.
Der Unterschied zwischen Response Mode: Immediately und Using 'Respond to Webhook' node im Webhook-Trigger ist nicht offensichtlich – aber entscheidend. Mit Immediately bekommt man eine leere Antwort zurück, weil der Workflow noch läuft. Erst Using 'Respond to Webhook' node wartet auf das Ergebnis des Agenten.
Versucht, Griffbilder als ASCII-Diagramme in die Antwort zu integrieren – der Agent produziert sie unzuverlässig und oft falsch. Besser: Akkordnamen nennen und auf externe Ressourcen wie chordbook.com oder ultimate-guitar.com verweisen lassen.
Troubleshooting
Die häufigsten Probleme beim Aufbau dieses Projekts.
Ursache:
Response Mode im Webhook-Node
steht auf „Immediately".
Lösung:
Im Webhook-Node auf
„Using 'Respond to Webhook' node" umstellen.
Ursache:
System-Prompt fehlt oder ist zu allgemein.
Lösung:
Den System-Prompt aus Kapitel 9 einfügen.
Konkrete Anweisungen zur Struktur der Antwort
(Akkordnamen, Begründung, Alternativen)
machen den größten Unterschied.
Ursache A:
Window Buffer Memory Node nicht verbunden.
Ursache B:
Session-ID ändert sich bei jeder Anfrage
(z.B. weil sessionId im Body fehlt
und der Fallback 'default'
von mehreren Nutzern geteilt wird).
Lösung:
Feste Session-ID beim Testen mitschicken:
{ "frage": "...", "sessionId": "test-1" }
Ursache:
API-Key abgelaufen, gesperrt oder
im Credential-Feld nicht korrekt gespeichert.
Lösung:
In der Anthropic Console prüfen ob der Key
aktiv ist. Credential in n8n löschen
und neu anlegen.
Ideen für Weiterentwicklung
Was das Projekt in einer späteren Version können könnte.
Eine kleine HTML-Seite mit Eingabefeld
und Ausgabebereich, die den Webhook aufruft.
Kein Framework nötig – reines JavaScript
mit fetch() reicht für den Anfang.
Den Agenten mit einem Werkzeug ausstatten, das aus einer Tonart alle diatonischen Akkorde zurückgibt – als strukturierte Grundlage für die Vorschläge.
Gefällt ein Vorschlag, kann er in eine Google-Sheets-Tabelle oder Airtable-Datenbank geschrieben werden – als persönliches Akkord-Notizbuch. Ein zweiter Workflow könnte die gespeicherten Akkorde auf Anfrage ausgeben.
Statt einzelner Akkorde einen vollständigen Songaufbau vorschlagen lassen: Intro, Strophe, Refrain, Bridge – mit passenden Akkordprogressionen für jede Sektion.
Zurück zur Übersicht KI & Automation
Titel: Gitarren-Akkord-Assistent
Druckdatum: 18.07.2026
Domain: www.lessat.net