midi-synthlisted
Install: claude install-skill maystudios/claude-skills
# MIDI Synth
Synthesize MIDI/MusicXML to audio and generate Strudel live-coding patterns.
Uses analysis data for ghost-note cleaning, correct tempo, and key-aware filtering.
## Scripts
- **`scripts/to_strudel.py`** -- MIDI/MusicXML to Strudel patterns with duration-aware notation
- **`scripts/render.py`** -- MIDI/MusicXML to WAV/MP3 with cleaning and modifications
Both scripts auto-detect `*_analysis.json` files from audio-to-midi for tempo, key, and dynamics.
## Workflow
1. Identify input: MIDI (.mid) or MusicXML (.musicxml)
2. Auto-detect or specify the analysis JSON from audio-to-midi
3. Choose workflow:
- **Creative:** `to_strudel.py` generates Strudel code for strudel.cc
- **Rendering:** `render.py` produces WAV/MP3
- **Both:** run both on the same input
4. Ghost notes are automatically cleaned using velocity, duration, and key filters
## Strudel Code Generation
```bash
# Basic (auto-detects analysis JSON next to input)
py -3.12 scripts/to_strudel.py "song.mid"
# From MusicXML
py -3.12 scripts/to_strudel.py "song.musicxml"
# Explicit analysis file
py -3.12 scripts/to_strudel.py "song.mid" --analysis "song_analysis.json"
# Stricter ghost-note filtering
py -3.12 scripts/to_strudel.py "song.mid" --min-velocity 60 --min-duration 0.1
# Open in browser
py -3.12 scripts/to_strudel.py "song.mid" --open
```
| Flag | Default | Effect |
|------|---------|--------|
| `--analysis` | auto-detect | Path to analysis JSON for tempo/key |
| `--bars` | 4 | Pattern len