← ClaudeAtlas

midi-synthlisted

Synthesize and render MIDI/MusicXML files to audio (WAV/MP3) and generate Strudel live-coding patterns for creative music manipulation. Uses analysis data (tempo, key, chords, dynamics) from audio-to-midi for intelligent ghost-note removal and accurate reproduction. Two workflows: (1) Convert MIDI/MusicXML to Strudel/TidalCycles code with note durations for interactive tweaking in the browser at strudel.cc, (2) Render MIDI/MusicXML to WAV/MP3 with FluidSynth or built-in synthesis, with controls for tempo, transposition, instrument override, and ghost-note cleaning. Trigger when the user wants to: play a MIDI file, render MIDI to audio, synthesize MIDI, convert MIDI to Strudel code, create live-coding patterns from MIDI, change instruments, transpose or tempo-shift, clean ghost notes, or any MIDI playback/synthesis task.
maystudios/claude-skills · ★ 21 · Data & Documents · score 79
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