← Music as CodeCONTENT HISTORY

Update to Music as Code

Snapshot Sep 30, 2026 · 23:15 UTC · version 0.2.2

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Create, edit, explain, check, open, and locally play SuperCollider music in `.scd` files. Use for synthesis, algorithmic composition, generative music, live coding, effects, SynthDefs, Patterns, Routines, or SuperCollider debugging. Hand off clickable source plus choices to open the IDE or play through the local terminal. Do not use for engraved notation or Strudel patterns unless the user also wants SuperCollider source.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 222
    },
    {
      "relative_path": "references/supercollider-code-guide.md",
      "size_in_bytes": 3641
    },
    {
      "relative_path": "scripts/supercollider-check.mjs",
      "size_in_bytes": 2759
    },
    {
      "relative_path": "scripts/supercollider-open.mjs",
      "size_in_bytes": 1677
    },
    {
      "relative_path": "scripts/supercollider-play.mjs",
      "size_in_bytes": 2266
    }
  ],
  "name": "supercollider",
  "skill_md_contents": "---\nname: supercollider\ndescription: Create, edit, explain, check, open, and locally play SuperCollider music in `.scd` files. Use for synthesis, algorithmic composition, generative music, live coding, effects, SynthDefs, Patterns, Routines, or SuperCollider debugging. Hand off clickable source plus choices to open the IDE or play through the local terminal. Do not use for engraved notation or Strudel patterns unless the user also wants SuperCollider source.\n---\n\n# Text to SuperCollider\n\nCreate readable `.scd` source. Treat the local file as the primary artifact.\n\n## Working defaults\n\n- Preserve requested tempo, form, synthesis method, and output path.\n- Write a descriptive filename under `music/` when the user gives no path.\n- Make each new file self-contained and safe to evaluate as a whole.\n- Set `s.options.numInputBusChannels = 0` before boot for synthesis-only files.\n  Preserve input channels when the composition actually uses audio input.\n- Use only core classes and UGens unless the user requests a Quark or plugin.\n- Keep amplitude conservative. Add `Limiter` or `tanh` when feedback, resonance,\n  or summed voices can spike.\n- Free temporary synths, buffers, buses, MIDI handlers, OSC handlers, and\n  routines when the piece stops.\n- Prefer named `SynthDef` and `Pdef` objects for music the user may edit live.\n- Do not claim that code sounds good because it compiles or runs.\n\nRead [references/supercollider-code-guide.md](references/supercollider-code-guide.md)\nbefore writing or repairing source. Search it for the relevant construct instead\nof loading unrelated sections.\n\n## Workflow\n\n1. Inspect an existing target before editing it. Preserve its musical identity\n   unless the user asks for a rewrite.\n2. Translate the request into tempo, duration or form, sound sources, processing,\n   and performance controls. State only assumptions that affect the result.\n3. Write or edit a complete `.scd` file. Put server-dependent setup inside\n   `s.waitForBoot { ... }`.\n4. Check syntax without running the composition:\n   `node skills/supercollider/scripts/supercollider-check.mjs <file>`.\n   The script locates `sclang` on `PATH` or in the standard macOS app location.\n5. Hand off three choices. Do not launch or play automatically:\n   - **View source:** render the exact local path as a clickable Markdown link.\n   - **Open in SuperCollider:** after the user chooses it, run\n     `node skills/supercollider/scripts/supercollider-open.mjs <file>`.\n   - **Play locally:** after the user chooses it, run\n     `node skills/supercollider/scripts/supercollider-play.mjs <file>` in an\n     interactive terminal. Tell them that Ctrl-C stops playback.\n6. GUI and audio actions may require user approval. If either helper exits 2,\n   say that SuperCollider is not installed and link to\n   `https://supercollider.github.io/downloads`.\n7. Use terminal output to repair interpreter or server errors. Do not claim\n   that opening the file evaluated it or that syntax checking proved playback.\n\n## Editing and repair\n\n- Change only the requested musical dimension when asked to preserve rhythm,\n  harmony, synthesis, or form.\n- Repair the smallest responsible expression from interpreter output.\n- Use `Pdef` names consistently so reevaluation replaces the intended pattern.\n- Avoid `s.freeAll` inside reusable source unless the file owns the whole server\n  session. The terminal player stops with Ctrl-C.\n- Treat missing third-party UGens and Quarks as dependencies. Do not replace\n  them silently with invented names.\n- For finite pieces, provide a clear stop or cleanup path. For live pieces,\n  expose named patterns or routines the user can stop and reevaluate.\n\n## Handoff\n\nAlways include the clickable `.scd` path, syntax-check result, the open and play\nchoices, and the tempo assumption. Report interpreter status if local playback\nran. Never claim playback or listening occurred unless audio actually ran.\n"
}

SHA-256 of public snapshot: 04b47d34796c3a54db914137bbb33edbdb4ab4571c33ecd133c42647f69fde52