feat: document the stems option - #14
Merged
Merged
Conversation
stems=true on text_to_music and video_to_music splits each generated track into four separated instrument tracks (drums/bass/vocals/other), returned as a stems array alongside the clean audio in the task result. Live in prod on REST and the hosted MCP server; free of charge. - text-to-music/SKILL.md, video-to-music/SKILL.md: stems parameter row, a dedicated Stems section (result shape, stream_index lookup, stems_error semantics, +2-6 min timing with a 30 min cap, fixed htdemucs stem names, async-only on REST), and a workflow tip. The video-to-music section also spells out that it splits the GENERATED music, never the source audio - that is preserve_speech's job. - references/api-claims.md: new dated stems facts section; the 'not stems-in-DAW-sense' output claim from 2026-07-28 is now false and is corrected in place. - task-recovery/SKILL.md: the 404 row's 'purely streaming' parenthetical now names the async triggers (wav/variants/stems) instead of implying text_to_music never has a task. - tests/tool_surface.json: stems added to the hosted block for both tools and to must_document, so a skill covering either tool that goes silent about stems fails the build. The local block is deliberately untouched: the published sonilo-mcp (0.17.0) does not accept stems yet, and CI diffs that block against the installed package weekly - the skills scope the claim to REST + hosted MCP accordingly, with a _generated note saying --refresh will pick up the local side when the next sonilo-mcp release ships. Validated: tests/validate.py green offline, and --refresh against a fresh install of the published sonilo-mcp 0.17.0 reports no drift.
Lightsage docs evalsWaiting for the staging docs URL before running evals. Lightsage will start the selected PR evals automatically when GitHub reports a successful docs deployment for this PR. This usually happens within 15 minutes. Commit: |
sonilo-mcp 0.18.0 (PyPI + registry), npm sonilo 0.16.0 / sonilo-cli 0.15.0, and PyPI sonilo 0.15.0 / sonilo-cli 0.14.0 all released today with stems support. tool_surface.json refreshed against the published 0.18.0; the two skills drop their hosted-only caveats and now state the minimum versions per surface; api-claims records the gap as closed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Documents the API's new
stemsoption in the text-to-music and video-to-music skills.Facts taught: free; REST requires
mode=async(the MCP tools are always-async); result entries are{stream_index, drums, bass, vocals, other}looked up bystream_index, never position (the array can be shorter thanaudio);stems_errorcan accompany a partialstemsand means a missing extra, never a failed generation; +2-6 min typical with a 30-min ceiling; fixed htdemucs names, so melodic instruments land inotherandvocalsis near-silent on instrumental tracks by design. The video-to-music skill leads with: it splits the generated music, never the video's own audio.Surface scoping:⚠️ convention, and fixes task-recovery's "purely streaming" note to name the async triggers.
stemsis recorded intool_surface.json's hosted block only and added tomust_document— the published sonilo-mcp 0.17.0 does not accept it yet, and both skills say so. When the 0.18.0 release lands, runvalidate.py --refreshand drop the held-back sentences;references/api-claims.mdcarries that exact follow-up, and the weekly CI cron will flag the surface drift regardless. Also corrects the now-false 2026-07-28 claim that output is never stems, per that file'sValidation: offline run green (17 files, 12 skills);
--refreshagainst a fresh install of published sonilo-mcp 0.17.0 reports no drift.