Preview what a jam layer would sound like without actually adding it to the mix.
Your Task
The user wants to preview a layer. Parse $ARGUMENTS for a role and prompt.
If no arguments were provided, ask the user what role and sound they want to preview.
Workflow
IMPORTANT: Use the MCP tools directly — do NOT use Bash or search for files.
- Parse the role (first word) and prompt (rest) from
$ARGUMENTS. - Check what's currently playing with
mcp__dj-claude__jam_statusso you can write complementary code. - Generate Strudel code for the layer following the role guidance below.
- Call
mcp__dj-claude__jam_previewwithroleandcodeparameters (thecodeparameter requires no API key). - Show the user the generated code and commentary. Remind them this is a preview — use
/dj-claude:jamto actually add it.
Role Guidance
Generate a SINGLE pattern chain (no stack(), no .cpm()):
- drums: Kick + snare + hats. Use
s()with bd, sd, hh, oh, cp, etc. - bass: Octaves 1-2. Sawtooth or sine with
.lpf(200-500). - chords: Octaves 3-4. Use
<>for harmonic movement. - melody/lead: Octaves 4-5. Memorable, with delay and panning.
- pads: Triangle/sine, heavy reverb, slow modulation.
- fx: Heavily processed, sparse, low gain.
Learn More
For deeper syntax help, read these MCP resources:
strudel://reference— complete syntax referencestrudel://roles— detailed role guidance for each layer type
Strudel Quick Reference
note("c3 e3").s("sawtooth")— synth notes (always include.s())s("bd sd hh")— samples"<a b>"— alternate per cycle."a(3,8)"— euclidean."~"— rest- Synths: sawtooth, square, sine, triangle. NOT: piano, bass, strings
.lpf()/.gain()/.room()/.delay()/.pan()— effectssine.range(min, max).slow(n)— modulation- NEVER use
|in patterns. NEVER forget.s()afternote().
Examples
/dj-claude:preview drums four-on-the-floor house kick/dj-claude:preview bass deep sub in C minor/dj-claude:preview melody ethereal sine lead with delay