Return a canonical definition for a primitive Eurorack / synthesis concept and its relations to other concepts in the corpus.
Use this for VOCABULARY questions, not module questions — when the user is asking what a term means or how two terms relate, not which modules implement it. Typical shapes:
- "Is four-quadrant mult the same as through-zero AM?" → lookup_concept("four-quadrant mult")
- "What's the difference between a gate and a trigger?" → lookup_concept("gate")
- "Modular signal level vs line level — when does it matter?" → lookup_concept("modular signal level")
- "Are clock dividers just pulse counters?" → lookup_concept("clock divider")
- "Are polyphonic patch cables TRRRRRS?" → lookup_concept("polyphonic cable")
Lookup is case-insensitive across three axes, tried in order: the canonical id ("through-zero-fm"), the canonical label ("Through-Zero FM (TZFM)"), and any registered alias ("tzfm", "through zero fm"). Spaces and hyphens are matched literally; the lookup does NOT normalize whitespace beyond lowercasing. If the term doesn't match anything, the response includes up to 5 substring-matched suggestions.
Args:
- name (string, required, min length 2): the term to look up. Examples: "AM", "ring mod", "four-quadrant mult", "TZFM", "clock divider", "gate", "trigger".
Returns:
{
"concept": {
"id": "amplitude-modulation",
"label": "Amplitude Modulation (AM)",
"description": "A multiplication of two signals: the carrier...",
"aliases": ["am", "amplitude modulation", "amplitude mod"],
"related_concepts": [
{
"related_concept_id": "ring-modulation",
"related_concept_label": "Ring Modulation (RM)",
"relation_kind": "commonly_confused_with",
"note": "AM with a unipolar modulator preserves the carrier..."
},
...
],
"source_id": null,
"citation_url": "https://learningmodular.com/glossary/...",
"citation_quote": "Amplitude modulation is when..."
} | null,
"_meta": {
"query": "<the name argument verbatim>",
"matched_via": "id" | "label" | "alias" | "none",
"concept_suggestions": [
{ "id": "...", "label": "...", "matched_via": "alias", "matched_text": "..." }
],
"feedback_hint": "...?"
}
}
Relation kinds:
- "related_to" — see-also link (default; symmetric in spirit).
- "subtype_of" — X is a specific case of Y (RM ⊂ AM, TZFM ⊂ linear FM).
- "inverse_of" — X is the opposite of Y (clock-divider ↔ clock-multiplier).
- "commonly_confused_with" — they're distinct, but people conflate them
(gate vs trigger, AM vs RM, modular level vs line level).
When to cite: every concept carries either source_id or citation_url + citation_quote. Surface the citation when the answer affects a decision (e.g. "the corpus cites learningmodular.com — TRS cables are physically the same connector whether carrying balanced mono or unbalanced stereo; only the destination determines the role").
When the result is null and concept_suggestions are provided, present 2–3 closest matches to the user. If none look right, the corpus genuinely doesn't carry that concept — call report_gap with kind="missing_field" and tool_name="lookup_concept" naming the term and its expected definition.