Skip to main content
Glama
README.md3.91 kB
# Strudel Pattern Examples Curated collection of music patterns showcasing the MCP server's generation capabilities across different genres. ## Directory Structure ``` examples/ ├── techno/ - Hard driving beats, acid basslines, 120-140 BPM ├── house/ - 4/4 groove, soulful chords, 120-130 BPM ├── dnb/ - Fast breakbeats, sub bass, 160-180 BPM ├── ambient/ - Atmospheric pads, slow tempo, 60-90 BPM ├── trap/ - 808 bass, hi-hat rolls, 130-150 BPM ├── jungle/ - Chopped breaks, reggae influence, 160-180 BPM └── jazz/ - Swing feel, complex chords, 100-180 BPM ``` ## Pattern Format Each pattern is stored as JSON with metadata: ```json { "name": "Hard Techno", "genre": "techno", "pattern": "s(\"bd*4, cp*2\").fast(2)", "bpm": 135, "key": "Am", "description": "Driving 4/4 techno with acid bassline", "tags": ["techno", "hard", "acid"], "timestamp": "2025-12-13T04:15:00.000Z" } ``` ## Usage ### Via MCP Tools Load patterns using the MCP server: ```typescript // List available examples await client.call("list", { path: "patterns/examples" }); // Load specific pattern await client.call("load", { name: "hard-techno" }); // Play the pattern await client.call("play"); ``` ### Manual Testing ```bash # Generate a pattern echo '{"name":"generate_pattern","arguments":{"style":"techno","bpm":135,"key":"Am"}}' | \ node dist/index.js # Save to examples echo '{"name":"save","arguments":{"name":"my-pattern","tags":["techno"]}}' | \ node dist/index.js ``` ## Genre Characteristics ### Techno - **BPM**: 120-140 - **Key signatures**: Minor scales (Am, Em, Dm) - **Elements**: Hard kicks, acid basslines, minimal melodic content - **Patterns**: Repetitive, hypnotic, 4/4 time ### House - **BPM**: 120-130 - **Key signatures**: Minor and major (Dm, Am, C, F) - **Elements**: Soulful chords, groovy basslines, shuffle hi-hats - **Patterns**: 4/4 groove, emphasis on beats 2 and 4 ### Drum & Bass (DnB) - **BPM**: 160-180 - **Key signatures**: Minor scales (Em, F#m, Cm) - **Elements**: Fast breakbeats, sub bass, atmospheric pads - **Patterns**: Syncopated drums, half-time feel ### Ambient - **BPM**: 60-90 - **Key signatures**: Open tunings, modal scales (C, G, Dm) - **Elements**: Atmospheric pads, long releases, sparse rhythms - **Patterns**: Evolving textures, minimal percussion ### Trap - **BPM**: 130-150 - **Key signatures**: Minor scales (F#m, Bm, Gm) - **Elements**: 808 bass, rapid hi-hats, snare rolls - **Patterns**: Half-time drums, triplet hi-hats ### Jungle - **BPM**: 160-180 - **Key signatures**: Minor scales (Gm, Dm, Am) - **Elements**: Chopped amen breaks, reggae basslines, dub effects - **Patterns**: Complex breakbeat manipulation, call-and-response ### Jazz - **BPM**: 100-180 (varies by subgenre) - **Key signatures**: Complex (Bb, Eb, modal scales) - **Elements**: Swing feel, extended chords (7ths, 9ths, 11ths) - **Patterns**: Syncopation, improvisation-friendly ## Quality Standards All example patterns meet these criteria: - ✅ **Syntactically valid** - No errors when loaded - ✅ **Genre-appropriate** - BPM and characteristics match genre - ✅ **Musically coherent** - Sounds intentional, not random - ✅ **Well-documented** - Clear metadata and description - ✅ **Tested** - Validated via automated test suite ## Contributing Examples Add new examples via the validation test suite: 1. Generate pattern using MCP tools 2. Validate it plays correctly 3. Add to appropriate genre directory 4. Update genre-specific README if needed 5. Run validation tests: `npm test -- GenreValidation` ## Validation Examples are validated by `src/__tests__/validation/GenreValidation.test.ts`: - Pattern syntax correctness - Genre-appropriate tempo ranges - Audio analysis validation - Metadata completeness Run validation: `npm test -- GenreValidation`

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/williamzujkowski/strudel-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server