Skip to main content
Glama

Strudel Reference Guide

get-strudel-guide
Read-onlyIdempotent

Reference and recipes for Strudel live coding. Music: genres (complete templates: techno, house, dnb, ambient, jazz, lofi, synthwave), mini-notation, sounds (synths, 71 drum banks, 128 GM instruments, vcsl samples), effects, patterns, tips (tempo, common mistakes), advanced (samples, wavetables, signals, chord voicings). Visuals: visuals (draw methods, presets, themes), hydra (shader backgrounds, H(pattern), the audio-reactive a.fft). Optional modules — the code is real browser JavaScript: stage (your own canvases, onFrame/onEvent/onTap, say), film (scenes on bars, text, narration), interactive (taps into notes, faders/pads/xy, tilt/mic, remember() for controls you draw, live sessions), craft (what makes a piece land), debugging (what the player reports back), gallery (complete pieces; fetch one with piece).

Input Schema

NameRequiredDescriptionDefault
pieceNoWith topic 'gallery': the complete code of one piece (the index lists them).
topicYesReference topic. Start with 'genres' for working templates, 'sounds' for instruments, 'visuals' for draw methods and presets, 'hydra' for shader backgrounds, 'advanced' for sample loading. For a music video or film: 'craft', 'stage', 'film', then gallery piece 'first-light'. For taps, controls, a drawn grid or a jam: 'interactive' alone (take only the sections you need), then gallery piece 'weather-machine' or 'trade-a-beat'.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. Changed1 schema field changed
    • changedInput schema / properties / piece / enum
      Previous value: -[
      -  "first-light",
      -  "duet",
      -  "petri-dish",
      -  "lossy-terminal",
      -  "signal-corruption",
      -  "weather-machine",
      -  "two-decks",
      -  "trade-a-beat"
      -]New value: +[
      +  "first-light",
      +  "duet",
      +  "petri-dish",
      +  "lossy-terminal",
      +  "signal-corruption",
      +  "weather-machine",
      +  "two-decks",
      +  "trade-a-beat",
      +  "still-water",
      +  "lullaby"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / topic / description
      Previous value: -"Reference topic. Start with 'genres' for working templates, 'sounds' for instruments, 'visuals' for draw methods and presets, 'hydra' for shader backgrounds, 'advanced' for sample loading. For a music video, film or interactive piece: 'craft', then 'stage', 'film' or 'interactive', and a worked example from 'gallery'."New value: +"Reference topic. Start with 'genres' for working templates, 'sounds' for instruments, 'visuals' for draw methods and presets, 'hydra' for shader backgrounds, 'advanced' for sample loading. For a music video or film: 'craft', 'stage', 'film', then gallery piece 'first-light'. For taps, controls, a drawn grid or a jam: 'interactive' alone (take only the sections you need), then gallery piece 'weather-machine' or 'trade-a-beat'."
  4. Changed1 schema field changed
    • changedInput schema / properties / piece / enum
      Previous value: -[
      -  "first-light",
      -  "duet",
      -  "petri-dish",
      -  "lossy-terminal",
      -  "signal-corruption",
      -  "weather-machine",
      -  "two-decks"
      -]New value: +[
      +  "first-light",
      +  "duet",
      +  "petri-dish",
      +  "lossy-terminal",
      +  "signal-corruption",
      +  "weather-machine",
      +  "two-decks",
      +  "trade-a-beat"
      +]
  5. Changed1 schema field changed
    • changedInput schema / properties / piece / enum
      Previous value: -[
      -  "first-light",
      -  "duet",
      -  "petri-dish",
      -  "lossy-terminal",
      -  "signal-corruption",
      -  "weather-machine"
      -]New value: +[
      +  "first-light",
      +  "duet",
      +  "petri-dish",
      +  "lossy-terminal",
      +  "signal-corruption",
      +  "weather-machine",
      +  "two-decks"
      +]
  6. Changed1 schema field changed
    • changedInput schema / properties / piece / enum
      Previous value: -[
      -  "first-light",
      -  "duet",
      -  "petri-dish",
      -  "lossy-terminal",
      -  "signal-corruption"
      -]New value: +[
      +  "first-light",
      +  "duet",
      +  "petri-dish",
      +  "lossy-terminal",
      +  "signal-corruption",
      +  "weather-machine"
      +]
  7. Changed3 schema fields changed
    • addedInput schema / properties / piece
      Added value: +{
      +  "description": "With topic 'gallery': the complete code of one piece (the index lists them).",
      +  "enum": [
      +    "first-light",
      +    "duet",
      +    "petri-dish",
      +    "lossy-terminal",
      +    "signal-corruption"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / topic / description
      Previous value: -"Reference topic. Start with 'genres' for working templates, 'sounds' for instruments, 'visuals' for draw methods and presets, 'hydra' for shader backgrounds, 'advanced' for sample loading."New value: +"Reference topic. Start with 'genres' for working templates, 'sounds' for instruments, 'visuals' for draw methods and presets, 'hydra' for shader backgrounds, 'advanced' for sample loading. For a music video, film or interactive piece: 'craft', then 'stage', 'film' or 'interactive', and a worked example from 'gallery'."
    • changedInput schema / properties / topic / enum
      Previous value: -[
      -  "mini-notation",
      -  "sounds",
      -  "effects",
      -  "patterns",
      -  "genres",
      -  "tips",
      -  "visuals",
      -  "hydra",
      -  "advanced"
      -]New value: +[
      +  "mini-notation",
      +  "sounds",
      +  "effects",
      +  "patterns",
      +  "genres",
      +  "tips",
      +  "visuals",
      +  "hydra",
      +  "advanced",
      +  "stage",
      +  "film",
      +  "interactive",
      +  "craft",
      +  "debugging",
      +  "gallery"
      +]
  8. Changed2 schema fields changed
    • changedInput schema / properties / topic / description
      Previous value: -"Reference topic. Start with 'genres' for working templates, 'sounds' for instruments, 'visuals' for animations and Hydra backgrounds, 'advanced' for sample loading."New value: +"Reference topic. Start with 'genres' for working templates, 'sounds' for instruments, 'visuals' for draw methods and presets, 'hydra' for shader backgrounds, 'advanced' for sample loading."
    • changedInput schema / properties / topic / enum
      Previous value: -[
      -  "mini-notation",
      -  "sounds",
      -  "effects",
      -  "patterns",
      -  "genres",
      -  "tips",
      -  "visuals",
      -  "advanced"
      -]New value: +[
      +  "mini-notation",
      +  "sounds",
      +  "effects",
      +  "patterns",
      +  "genres",
      +  "tips",
      +  "visuals",
      +  "hydra",
      +  "advanced"
      +]
  9. Changed2 schema fields changed
    • changedInput schema / properties / topic / description
      Previous value: -"Reference topic. Start with 'genres' for working templates, 'sounds' for instruments, 'advanced' for visualization and sample loading."New value: +"Reference topic. Start with 'genres' for working templates, 'sounds' for instruments, 'visuals' for animations and Hydra backgrounds, 'advanced' for sample loading."
    • changedInput schema / properties / topic / enum
      Previous value: -[
      -  "mini-notation",
      -  "sounds",
      -  "effects",
      -  "patterns",
      -  "genres",
      -  "tips",
      -  "advanced"
      -]New value: +[
      +  "mini-notation",
      +  "sounds",
      +  "effects",
      +  "patterns",
      +  "genres",
      +  "tips",
      +  "visuals",
      +  "advanced"
      +]
  10. First observed

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish that this is a read-only, idempotent, non-destructive, closed-world reference lookup. The description adds useful content-scope context, including that optional modules are real browser JavaScript and that gallery pieces are fetchable, but it does not describe response size, formatting, or freshness/versioning behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence is front-loaded and the content is dense with specific, relevant examples rather than filler. However, the second sentence is a long, semicolon-heavy catalogue packed with nested parentheses, which reduces scanability and could be structured more cleanly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter reference lookup with fully described enums and no output schema, the description gives a broad and useful inventory of available content. The main remaining gap is that it does not explicitly describe the returned format, such as reference text versus code snippets, but the purpose is otherwise adequately specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters have enum values plus explanatory schema text. The description reinforces the topic taxonomy and mentions `piece` for gallery retrieval, but it adds little parameter meaning beyond the already strong schema documentation, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies this as a reference/recipe lookup for Strudel live coding and enumerates the covered domains, so an agent can tell it apart from action-oriented siblings like play-live-pattern or analyze-harmony. It does not explicitly differentiate itself from closely related reference/search siblings such as get-music-guide or search-music-docs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by cataloguing available topics and noting that gallery pieces can be fetched with the `piece` parameter, but it gives no explicit when-to-use/when-not-to-use guidance relative to sibling tools. It also relies on the schema's topic guidance rather than the description itself to route topic selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.