Code your beats. Visualize your sound. Share your vibe.
strudel-box is a VS Code extension that brings the power of Strudel live coding directly into your editor. Create algorithmic music patterns, experiment with sounds, and perform live β all without leaving VS Code.
strudel-box is fully compatible with VS Code and works out of the box. However, it was developed for and with Kiro, AWS's agentic IDE. When used with Kiro, you unlock powerful AI-assisted features:
| Feature | Description |
|---|---|
| Spec-Driven Development | Use Kiro's structured specs to design and iterate on complex musical patterns with AI guidance |
| Vibe Coding | Let AI help you explore new sounds, suggest pattern variations, and remix your beats in real-time |
| Kiro Template | Get started instantly with our strudel-box-template β pre-configured steering rules, hooks, example patterns, and AI prompts for music creation |
- Integrated Strudel REPL β Write and evaluate Strudel patterns directly in VS Code
- Real-time Audio β Hear your patterns instantly with low-latency playback
- CodeMirror 6 Editor β Modern code editor with JavaScript syntax highlighting
- Pattern Evaluation β Execute patterns with
Ctrl+Enter(Windows/Linux) orCmd+Enter(macOS) - Instant Stop β Silence audio immediately with
Ctrl+.orCmd+.
- File Browser β Browse all
.strudelfiles in your workspace - Hierarchical View β Navigate folders with expandable tree structure
- One-Click Playback β Play any pattern directly from the file list
- Playlist Controls β Previous, Next, and Shuffle functionality
- Now Playing Display β See which track is currently playing
- Quick Actions β Open files in editor or share to Strudel.cc
Three stunning visual themes with animated particle backgrounds:
| Theme | Description | Icon |
|---|---|---|
| Cyberpunk | Neon cyan and magenta with tech aesthetics | π |
| Halloween | Spooky orange and purple vibes | π |
| 8-Bit | Retro green with CRT-style effects | πΎ |
Each theme includes:
- Custom color schemes
- Animated particle backgrounds
- Matching VS Code editor themes
- Native File Support β Double-click any
.strudelfile to open in Strudel Box - Auto-Save β Changes are saved directly to the file
- Syntax Highlighting β Dedicated language support for
.strudelfiles - File Icons β Custom icons in the file explorer
Strudel Box comes with extensive sample libraries ready to use:
| Library | Description |
|---|---|
| Tidal Drum Machines | Roland TR-808, TR-909, TR-707, and more |
| Piano | Acoustic piano samples |
| Dirt Samples | Classic TidalCycles sample collection |
| Emu SP12 | Legendary sampler sounds |
| VCSL | Versilian Community Sample Library |
- Real-time Feedback β See sample loading status and errors
- Collapsible Panel β Expand/collapse to save space
- Clear Function β Reset logs when needed
- Color-coded Messages β Info, warnings, errors, and success states
- Install the extension from the VS Code Marketplace
- Open a workspace with
.strudelfiles (or create new ones) - Click the Strudel Player icon in the Activity Bar
- Open Strudel Box (
Ctrl+Shift+Pβ "Strudel Box: Open Player") - Type a simple pattern:
s("bd sd hh*4")
- Press
Ctrl+Enter(orCmd+Enteron Mac) to play - Press
Ctrl+.(orCmd+.) to stop
Create files with the .strudel extension:
// my-pattern.strudel
note("c3 e3 g3 c4")
.sound("sawtooth")
.lpf(800)
.room(0.3)| Shortcut | Action |
|---|---|
Ctrl+Enter / Cmd+Enter |
Evaluate and play pattern |
Ctrl+. / Cmd+. |
Stop all audio (Hush) |
Ctrl+S / Cmd+S |
Save pattern to file |
Access via Command Palette (Ctrl+Shift+P / Cmd+Shift+P):
| Command | Description |
|---|---|
Strudel Box: Open Player |
Open the main Strudel Box panel |
Strudel Box: Hush (Stop Audio) |
Stop all audio playback |
Strudel Box: Load File |
Open file picker to load a pattern |
Strudel Box: Set Theme |
Choose between Cyberpunk, Halloween, or 8-Bit |
Strudel Box: Save Pattern |
Save current pattern to file |
Strudel Box: Open File Explorer |
Focus the Strudel Explorer sidebar |
Open in Strudel Box |
Open selected file in the REPL (context menu) |
// Built-in synthesizers
sound("sawtooth") // Sawtooth wave
sound("square") // Square wave
sound("triangle") // Triangle wave
sound("sine") // Sine wave
// Sample-based sounds
sound("bd sd hh") // Drums
sound("piano") // Piano
sound("casio") // Casio keyboard// Note patterns
note("c3 e3 g3 c4")
n("0 2 4 7")
// Mini-notation
"c3 e3 g3".note()// Filters
.lpf(800) // Low-pass filter frequency
.hpf(200) // High-pass filter frequency
.lpq(5) // Filter resonance
// Space
.room(0.5) // Reverb amount
.delay(0.25) // Delay time
// Dynamics
.gain(0.8) // Volume (0-1)
.velocity(0.7) // Note velocity// Timing
.fast(2) // Double speed
.slow(2) // Half speed
.rev() // Reverse pattern
// Structure
.stack() // Layer patterns
.cat() // Sequence patterns
.seq() // Sequential playback
// Rhythm
.euclid(3, 8) // Euclidean rhythm.scale("C:minor")
.chord("Am7")
.voicing()// Use specific drum machines
sound("bd sd hh cp")
.bank("RolandTR909")
// Available banks include:
// RolandTR808, RolandTR909, RolandTR707, and many mores("bd sd [~ bd] sd, hh*8")
.room(0.2)note("c3 e3 g3 c4")
.sound("sawtooth")
.lpf(sine.range(200, 2000).slow(4))
.lpq(5)
.room(0.3)chord("<C^7 Am7 Dm7 G7>")
.voicing()
.sound("piano")
.room(0.5)note("c2 e2 g2 b2")
.euclid(5, 8)
.sound("sawtooth")
.lpf(600)stack(
note("c3 e3 g3").sound("piano"),
s("bd*4, hh*8"),
note("c2").sound("sawtooth").lpf(200)
)Strudel Box includes three matching VS Code color themes:
- Strudel Box - Cyberpunk β Dark theme with cyan/magenta accents
- Strudel Box - Halloween β Dark theme with orange/purple accents
- Strudel Box - 8-Bit β Dark theme with retro green accents
To activate: Ctrl+K Ctrl+T β Select a Strudel Box theme
The following Strudel features are not available in Strudel Box:
| Feature | Reason |
|---|---|
| CSound Integration | @strudel/csound not loaded |
| Hydra Visuals | @strudel/hydra not loaded |
| Tidal Syntax | @strudel/tidal not loaded |
| Advanced MIDI | May have limited functionality |
| Device Motion | Only relevant on mobile devices |
For these advanced features, use the official Strudel REPL.
- Extension Host β Node.js/CommonJS for VS Code integration
- Webview β Browser/ESM for audio engine and UI
- Audio Engine β
@strudel/webloaded from CDN - Editor β CodeMirror 6 with JavaScript syntax
- VS Code 1.74.0 or higher
- Internet connection (for loading Strudel from CDN)
- Audio output device
Files with .strudel extension are automatically:
- Recognized as Strudel language
- Opened with the Strudel Box custom editor
- Displayed with custom file icons
- Check that your system audio is not muted
- Ensure you've clicked Play or pressed
Ctrl+Enter(audio requires user gesture) - Check the Log panel for errors
- Try a simple pattern:
s("bd")
- Check your internet connection
- Look at the Log panel for loading status
- Some sample banks may not be available β try built-in synths instead
- Check the Log panel for error messages
- Verify your pattern syntax
- Try the pattern on strudel.cc to compare
- Kiro IDE β AI-powered IDE for spec-driven development
- strudel-box-template β Kiro template for music creation
- Strudel Documentation
- Strudel Pattern Reference
- TidalCycles (inspiration)
- Dirt-Samples Repository
MIT License β See LICENSE for details.
- Strudel by Felix Roos and contributors
- TidalCycles by Alex McLean
- CodeMirror by Marijn Haverbeke
Happy live coding! πΆ
