yue2-music
Use when generating songs with YuE2, covering a recording via SheetSage2 audio-to-ABC, editing a score or lyrics with melody preservation, or building a…
Skill by sammcj
Chalk Labs
Need help deploying yue2-music?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/sammcj-yue2-music
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/yue2-music
What's inside
- Skill name
yue2-music- Description
- Use when generating songs with YuE2, covering a recording via SheetSage2 audio-to-ABC, editing a score or lyrics with melody preservation, or building a reproducible listening comparison of YuE2 output
- License
- Apache-2.0
- Instructions
- 104 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (20)
- .gitignore
- CHANGELOG.md
- CLAUDE.md
- LICENSE
- SKILL.md
- edit-brief.md · assets/
- mps-performance.patch · assets/
- negative-style.patch · assets/
- prompt.json · assets/
- abc-editing.md · references/
- editing-workflows.md · references/
- generation-and-covers.md · references/
- listening-and-evaluation.md · references/
- models-and-setup.md · references/
- abc_tools.py · scripts/
- common.py · scripts/
- listen.py · scripts/
- run_yue2.py · scripts/
- score-view.js · scripts/
- transcribe.py · scripts/
SKILL.md (first lines)
# YuE2 Music
Turn a musical request into a reproducible song and an audible comparison. Retain the original song and its plan before changing anything.
## Choose the workflow
- Generate with editable melody and harmony: YuE2 `cot="full"` -> ABC -> song
- Generate with a melody plan and free accompaniment: YuE2 `cot="melody"` -> chord-free ABC -> song
- Generate without symbolic planning: YuE2 `cot="off"` -> song (no editable ABC)
- Cover a recording: SheetSage2 -> inspect and correct ABC -> strip chords -> YuE2 `melody`
- Cover an ABC melody: inspect or convert native ABC -> strip chords -> YuE2 `melody`
- Change harmony, instruments, tempo, structure or lyrics: copy the full plan -> edit ABC or text -> regenerate
- Agentic editing: export plan and baseline -> bounded editing agent -> check invariants -> render -> compare
- Analyse continuous musical features: MERT2, see [models-and-setup.md](references/models-and-setup.md#optional-mert-representations)
## Set up
Read [models-and-setup.md](references/models-and-setup.md) for model IDs, install pins and licences.
1. Work from a project directory, never inside this skill folder. `<skill>` in commands below is this skill's directory.
2. Create `.venv-yue2` in the project and install the YuE2 runtime from the official GitHub repository source.
3. Create `.venv-sheetsage2` separately (dependency pins differ) and download the SheetSage2 snapshot to `models/SheetSage2`.
4. Record every model revision you download.
5. Run on the supported baseline: one request at a time, BF16-capable NVIDIA GPU with 24 GB VRAM, default YuE2 settings. On Apple Silicon follow the MPS section of models-and-setup.md; scripts auto-detect the device.
6. Scripts default to Hub model IDs; see each script's `--help` for local snapshot and revision flags. Use a fresh output directory per run.
## Generate and retain the plan
Copy [assets/prompt.json](assets/prompt.json) to `requests/<id>.json` and edit it. Put genre, instruments, vocal character, language and tempo in `style`; put section tags and the actual words in `lyrics`. Keep implementation notes out of lyrics.
```bash
.venv-yue2/bin/python <skill>/scripts/run_yue2.py generate --request requests/song.json --output outputs/pop
.venv-yue2/bin/python <skill>/scripts/run_yue2.py all-modes --request requests/song.json --output outputs/modes
.venv-yue2/bin/python <skill>/scripts/run_yue2.py plan --request requests/song.json --output outputs/plan
```
Inspect `result.json`, truncation, `score.abc`, `request.json` and audio. The helper saves native artefacts including exact tokens and `latent.npy`; keep them. Preserve every requested mode and every failure. A playable file does not establish musical quality.
Read [generation-and-covers.md](references/generation-and-covers.md) for the Python interface, exact plan continuation, CFG, sampling and cached decoding. For a niche or extreme genre, or when a result sounds like the mainstream version of what was asked, apply its "Steer away from generic renditions" section before changing the prompt again.
## Cover a recording
1. Transcribe in the SheetSage2 environment. Select the vocal melody or the full lead melody including instrumental passages.
2. Inspect warnings. Correct missed notes, meter or key before attributing errors to YuE2. Preserve source audio and raw transcription.
3. Export chord-free ABC. When dropping a part, select the retained voice explicitly; stripping chords alone should preserve both melodic voices and their rests.
4. Render with `cot="melody"`, target style and suitable lyrics. To retain the original harmony as well, transcribe in full and use `cot="full"`.
```bash
.venv-sheetsage2/bin/python <skill>/scripts/transcribe.py reference.wav --task melody-full --output outputs/transcription
python3 <skill>/scripts/abc_tools.py strip-chords outputs/transcription/score.abc outputs/cover.abc
# The request supplies target style and lyrics.
.venv-yue2/bin/python <skill>/scripts/run_yue2.py generate --request requests/cover.json --cot melody \
--abc-file outputs/cover.abc --output outputs/cover-song
```
## Edit or delegate an edit
Read [editing-workflows.md](references/editing-workflows.md) and [abc-editing.md](references/abc-editing.md) before changing a score. Create a task per step below, each with its completion criterion, then work them to completion.
1. Render a baseline from the full plan. Freeze its directory.
2. Define invariants: exact pitches; pitch plus rhythm; contour only; or bounded melodic adaptation. Name the voices, passages, lyrics, instruments, tempo, meter and structure covered.
3. Delegate when possible: fill in the [edit brief](assets/edit-brief.md) and give a score-editing agent the raw ABC, prompt, lyrics and requested change. Request a new ABC, revised style or lyrics as needed, and an edit manifest. Give a separate reviewer the before/after artefacts and constraints. Without delegation, perform each stage yourself. Keep model generation sequential per GPU.
4. Check musical events, not character strings: ties, accidentals and compressed rests matter.
```bash
python3 <skill>/scripts/abc_tools.py inspect edits/jazz.abc
python3 <skill>/scripts/abc_tools.py compare outputs/plan/score.abc edits/jazz.abc --voices Vocal
.venv-yue2/bin/python <skill>/scripts/run_yue2.py generate --request edits/jazz.json --cot full \
--abc-file edits/jazz.abc --output outputs/jazz
```
Add `--allow-tempo-change` for intentional tempo changes. Exact comparison fails on intentional rhythm changes; audit the permitted differences from its report and label the result accordingly.
5. Regenerate after changing style, lyrics or ABC. Old acoustic latents can be decoded again but do not contain a musical or lyric edit.
6. Compare full songs and short passages around the edit. Revise when the requested effect fails. Retain each attempt with its actual prompt.
For lyric translation, follow the syllable mapping steps in abc-editing.md and keep the sidecar. Use ASR/PER and listening as separate evidence.
## Deliver an audible result
Read [listening-and-evaluation.md](references/listening-and-evaluation.md).
```bash
python3 <skill>/scripts/listen.py outputs/pop outputs/jazz --output outputs/comparison
```
This builds a local HTML player with each score engraved (abcjs, as on the YuE2 demo page); notes turn red as the recording plays. Nothing is uploaded; the only fetch is the pinned abcjs build, avoided with `--abcjs <file>` or `--no-notation`. Return playable audio, full prompt and lyrics, before/after ABC, invariant checks and requested evaluations. Keep model and decoder identity and failures visible. Deliver edit manifests and comparison reports alongside the page.
## Gotchas
- Public MERT feature tensors are not YuE2 codec tokens. YuE2 has no audio-reference, phoneme-alignment or local-inpainting argument; condition through style, lyrics and ABC only.
- `YuE2-Vae` is for listening. `YuE2-Vae-legacy` is for reproducing the supplied benchmark protocol. Keep decoded files separate; the name "legacy" says nothing about which is newer or better.
- On OOM, free allocations or move to suitable hardware and report the change. Shortening the song or lowering inference settings without saying so hides the failure.
- Song length follows the planned score, not the prompt. "Short song" in `style` or few lyric lines still yields a 4-6 minute plan padded with interlude until the token cap. To control length, run `plan`, trim `score.abc` to the wanted bars (`abc_tools.py inspect` reports nominal seconds), end on a held note so the song does not stop mid-riff, and regenerate with `--abc-file`.
- `cfg_scale` defaults to 1.0 in `full` and `melody` (1.01 in `off`), which is guidance off: the style string conditions the semantic tokens once and nothing amplifies it. A genre label alone yields its most common form. Raise `cfg_scale`, add `negative_style`, and write the score yourself; see generation-and-covers.md.
- `run_yue2.py` has no resume; after an interrupted run, rerun into a fresh directory. The upstream `yue2 --resume` flag reuses a completed matching result only.
- Keep an edited score connected through `--abc-file` or request `abc_path`. A request with `abc: null` and no file generates a fresh plan and discards the edit.
- Load unchanged plans with `SymbolicPlan.load`; submit modified ABC as a new input.
- `cot="melody"` does not strip chord symbols; run `abc_tools.py strip-chords` first.
- Melody conditioning supplies a symbolic melody. It does not preserve the source singer's identity or waveform.
- There is no `phonemes` request field. The syllable sidecar is bookkeeping, not acoustic alignment.
- An ABC check or SongBench score does not show exact note realisation, instrument removal or sample-accurate preservation. Listen.From sammcj/agentic-coding, Apache-2.0.
More from sammcj/agentic-coding
- 0.740score
release-debrief
Sam McLeod (adapted from Arjen Schwarz)
Summarises the delta between a tool's latest release and the last summary the user saw.
SkillBFreshness: B★ 167Claude Code - 0.732score
ambitious-model-use
sammcj
Use when the user asks to be more ambitious with an AI task: aim at the outcome behind it, work it like a field-leading expert from raw data, or bring in…
SkillAFreshness: A★ 167Claude Code +9 - 0.732score
rewrite-slop
sammcj
Use when explicitly asked to review or rewrite AI-generated text or UI so it reads as human, or with phrasings like "de-slop", "humanise this", "make it sound…
SkillAFreshness: A★ 167Claude Code +9 - 0.732score
ai-changelog
sammcj
Set up an AI-driven changelog system in any project, code or not.
SkillAFreshness: A★ 167Claude Code +9 - 0.732score
extract-wisdom
sammcj
Extract wisdom, insights, and actionable takeaways from YouTube videos, blog posts, articles, or text files.
SkillAFreshness: A★ 167Claude Code - 0.729score
retro
sammcj
Retrospective on a coding session that proposes changes to the agent's environment (checks, pointers, steering, tooling) so the next run goes better.
SkillAFreshness: A★ 167Claude Code +9 - 0.728score
skill-creator-primer
sammcj
You **MUST** load this skill before the skill-creator skill AND before making ANY change to, or conducting a review of ANY Agent Skill.
SkillAFreshness: A★ 167Claude Code +9 - 0.728score
deferred-task-execution
sammcj
Delays execution of a task until a specified time or after a duration.
SkillAFreshness: A★ 167Claude Code +9 - 0.727score
prompt-enhancer
sammcj
Transform poor or overly simple prompts with expert-level framing.
SkillAFreshness: A★ 167Claude Code +9 - 0.727score
find-docs
sammcj
Retrieves up-to-date documentation, API references and code examples for any developer technology.
SkillAFreshness: A★ 167Claude Code +9 - 0.727score
backlog
sammcj
Capture single backlog items, or list and triage an existing project backlog.
SkillAFreshness: A★ 167Claude Code +9 - 0.727score
creating-development-plans
sammcj
Creates structured development plans with phased task breakdowns, requirements, and QA checklists.
SkillAFreshness: A★ 167Claude Code +9
Signals
- Stars
- 167
- Forks
- 25
- Open issues
- 0
- Last commit (this folder)
- Sep 14, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/sammcj/agentic-coding
- Website
- smcleod.net
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from sammcj
- 0.732score
extract-wisdom
sammcj
Extract wisdom, insights, and actionable takeaways from YouTube videos, blog posts, articles, or text files.
SkillAFreshness: A★ 167Claude Code - 0.732score
rewrite-slop
sammcj
Use when explicitly asked to review or rewrite AI-generated text or UI so it reads as human, or with phrasings like "de-slop", "humanise this", "make it sound…
SkillAFreshness: A★ 167Claude Code +9 - 0.732score
ai-changelog
sammcj
Set up an AI-driven changelog system in any project, code or not.
SkillAFreshness: A★ 167Claude Code +9 - 0.732score
ambitious-model-use
sammcj
Use when the user asks to be more ambitious with an AI task: aim at the outcome behind it, work it like a field-leading expert from raw data, or bring in…
SkillAFreshness: A★ 167Claude Code +9 - 0.729score
retro
sammcj
Retrospective on a coding session that proposes changes to the agent's environment (checks, pointers, steering, tooling) so the next run goes better.
SkillAFreshness: A★ 167Claude Code +9 - 0.728score
deferred-task-execution
sammcj
Delays execution of a task until a specified time or after a duration.
SkillAFreshness: A★ 167Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get yue2-music running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
yue2-music skill. Agent Mart. https://agentmart.dev/skills/sammcj-yue2-music (last updated 2026-10-24)