{"schema_version":"1","site":"https://decosa.ai","id":"music-gen-cleared","num":"37","name":"Rights-cleared music generation","tool_name":"Make a cleared song","short":"Cleared music","blurb":"Music for ads, games and creators with a paper trail. A prompt guard refuses or strips named artists, songs, labels and voice imitation (code rules, then one receipted typed judgment), the track renders on MiniMax-Music3 or ACE-Step, and a CPU check scores it against a catalogue of openly licensed recordings. Each track ships with a C2PA credential and a signed certificate that states the model, seed, checks, similarity score and the exact licence.","status":"live","labels":{"industry":["music","creative-media"],"job":["generate","attest"],"input":["text","files"],"deploy":["hosted","selfhost"],"status":"live","output":["media","record"],"data":["none"],"hardware":"gpu-96","licence":"community"},"industries":["music","creative-media"],"runs_in":["hosted","selfhost"],"part_of":["studio-music"],"built_from":["studio-render","typed-judgment","content-credentials","signed-record"],"models":"MiniMax-Music3 · ACE-Step 1.5 · Qwen3.8-27B · LAION CLAP","where":"Hosted or self-host","hardware":"About 50 GB free on one 96 GB card for MiniMax-Music3 (ACE-Step needs about 15 GB); the similarity check runs on CPU","final_artifact":"An MP3 with a C2PA credential, a similarity report, and a signed licence certificate (JSON, verifiable at /record/verify, and a readable Markdown copy).","self_host_first":false,"verification":{"receipt_coverage":"partial","summary":"Receipted prompt check; C2PA credential and signed licence certificate","manual_qa":{"hosted":{"date":"2026-09-25","result":"pass","p50_ms":42700,"p95_ms":null,"runs":null,"receipts_per_run":1,"cost_per_run_usd":0.00019},"selfhost":{"date":"2026-09-25","result":"pass","method":"Fresh clone of the branch into a clean directory, docker build of the api image plus the documented FFmpeg and c2pa-python layer and of services/music_embed, compose with named volumes, pointed at the already-running local vLLM (direct route) and ComfyUI; then torn down.","notes":"The guard refused and stripped as documented, a 30 s MiniMax-Music3 render finished in 21.4 s with a similarity verdict and a certificate that verified (and failed when edited), a planted near-copy scored 11.6 against the catalogue, and no prompt text reached the logs. Found on the way: the api image has no c2pa-python, so the first render had no C2PA credential; with the layer and the dev certificate, stamping inside the container produced a credential that validates."},"known_limits":["The similarity check knows only 240 Creative Commons tracks and the files you compare; it flagged 81% of planted near-copies at 2% false alarms, and a clear result says nothing about commercial catalogues.","The guard reads text only: 98% recall on held-out prompts, and it cannot hear a melody someone describes or hums.","Renders share one GPU with the live demos: 3 per demo session, 3 per API key per day.","C2PA credentials are signed by a development CA: valid signature, untrusted issuer in public validators.","No copyright is claimed in the output; the certificate records checks and licence terms, not ownership."],"nightly_covers":null},"nightly":"https://api.decosa.ai/verify/status"},"eval_summary":{"metrics":[{"name":"Prompt guard precision (refuse)","value":"100% (48/48)","unit":null,"n":79,"split":"test","note":"Dev: 96.3% (26/27)"},{"name":"Prompt guard recall (refuse)","value":"98.0% (48/49)","unit":null,"n":79,"split":"test","note":"Overt 26/26, sneaky 22/23; code rules alone refuse 55% (27 of 49)."},{"name":"Safe prompts refused","value":"0 of 30","unit":null,"n":30,"split":"test","note":"Dev: 1 of 15 (a public-domain composer refused)."},{"name":"Planted near-copies flagged at the flag threshold","value":"80.8%","unit":null,"n":240,"split":"test","note":"90.4% at the review threshold. About one planted copy in five slips under the flag."},{"name":"False flags on unrelated tracks by new artists","value":"2.3% (2)","unit":null,"n":88,"split":"test","note":"Held-out pool tracks: 1.9% (1 of 53); fresh renders 0 of 9."}],"dataset":"Prompt guard: 120 hand-written synthetic prompts (45 safe, 40 overt, 35 sneaky), 41 dev / 79 test, written before the guard ran. Similarity: 240 commercially licensed Free Music Archive tracks as the catalogue; 64 planted near-copies x 6 edits (24 dev / 40 test sources), plus unrelated and held-out negatives; thresholds set on dev only, applied once to test.","held_out":true,"caveats":["The guard prompts were written by hand for this eval by the builder; synthetic.","The similarity check is a triage signal for near-copies of the references it holds, not a clearance: 240 Creative Commons tracks are not the recordings anyone is likely to copy.","Lyrics are not compared.","Music quality is not measured.","Guard latency (median 30.3 s) was measured on a saturated shared gateway."],"date":"2026-09-25","doc_url":"https://decosa.ai/metrics/evals/music-gen-cleared"},"stack":{"summary":"A brief goes through a prompt guard that refuses or strips named artists, songs, labels and voice imitation, then renders on MiniMax-Music3 or ACE-Step 1.5. A CPU check scores the track against 240 openly licensed recordings, or against the reference a client sent. Each track ships with a C2PA credential and a signed certificate that states the model, seed, checks, similarity result and the exact licence. It is for agencies, game studios and anyone who hosts MiniMax-Music3 and needs the safeguards its licence asks for.","tagline":"Music for ads, games and creators, with a prompt guard, a similarity check and a signed licence certificate for every track.","deployment":"hosted-or-self-host","regulatory_note":"Not legal advice and not a rights clearance. Licences, read from the licence files on 25 Sep 2026: MiniMax-Music3 Community License (commercial use allowed; show \"MiniMax-Music3\" prominently in a commercial UI, §3.1; prior written authorization from MiniMax above USD 20M yearly revenue, §3.2; a hosted service must implement, test and review safeguards against infringing uses and outputs and is responsible for its downstream users, §4; the Acceptable Use Policy in Exhibit A applies, including disclosure of machine-generated content published in public places, item 11, and no impersonation without consent, item 12). ACE-Step 1.5: MIT. Qwen3.8-27B and LAION CLAP: Apache-2.0. Copyright: the US Copyright Office's Part 2 report on copyrightability (29 Jan 2025) says AI outputs are protected only where a human author determined sufficient expressive elements and that prompts alone are not enough; the certificate claims no copyright. Other countries differ. Reference catalogue: 240 Free Music Archive tracks under CC BY, CC BY-SA, CC0 or public domain (per-track licence in the catalogue), stored as vectors only. Style is not protected by copyright in the US, but a soundalike can still infringe a composition or a recording, and imitating a singer's voice can raise right-of-publicity claims: the guard refuses both kinds of request rather than judging them.","components":[{"id":"guard","role":"Prompt guard, code layer: gazetteer of well-known names, look-alike folding, cover/cloning/type-beat patterns, a genre and era allow-list; the certificate and refusal log (CPU)","name":"decosa-api music module (decosa_api/verticals/music)","hf_repo":null,"license":"AGPL-3.0-or-later","params":null,"quant":null,"vram_gb":0,"memory_gb_estimate":null,"engine":"Python 3.12; the typed-judgment core (vertical 24) for the model question; the provenance kit for C2PA","receipt_coverage":"partial","in_hosted_demo":null,"tiers":["lite","standard"],"alternative_to":null},{"id":"judge","role":"Prompt guard, typed judgment: names the category (artist, work, voice, label or none) with a calibrated probability; one call per brief","name":"Qwen3.8-27B (NVFP4)","hf_repo":"nvidia/Qwen3.8-27B-NVFP4","license":"Apache-2.0","params":"27.8B","quant":"NVFP4 (MLP NVFP4, GDN/attention FP8) + FP8 KV cache; MTP head, 3 draft tokens","vram_gb":20,"memory_gb_estimate":null,"engine":"vLLM 0.29.0, temperature 0, thinking off","receipt_coverage":"strong","in_hosted_demo":true,"tiers":["lite","standard"],"alternative_to":null},{"id":"music3","role":"Music generation: songs with vocals and lyrics (default engine)","name":"MiniMax-Music3","hf_repo":"MiniMaxAI/MiniMax-Music3","license":"MiniMax-Music3 Community License","params":"8.58B LM + 2.43B flow transformer","quant":"FP16 DiT + BF16 pruned text encoder (Comfy-Org repackage)","vram_gb":null,"memory_gb_estimate":null,"engine":"ComfyUI core MiniMax Music 3 nodes (KSampler euler/simple, 30 steps, cfg 1.7), through the studio queue","receipt_coverage":"partial","in_hosted_demo":true,"tiers":["standard"],"alternative_to":null},{"id":"acestep","role":"Music generation: fast drafts and instrumentals (MIT engine)","name":"ACE-Step 1.5 turbo + 5Hz LM 1.7B","hf_repo":"ACE-Step/Ace-Step1.5","license":"MIT","params":"2.39B DiT + 1.85B LM","quant":"BF16","vram_gb":14.6,"memory_gb_estimate":null,"engine":"ACE-Step 1.5 Python inference (8 steps, ODE), through the studio queue","receipt_coverage":"partial","in_hosted_demo":true,"tiers":["lite","standard"],"alternative_to":null},{"id":"similarity","role":"Similarity check (CPU): melody by chroma alignment across keys and tempos, sound by CLAP window embeddings, both normalised per reference","name":"LAION CLAP larger_clap_music + librosa chroma (services/music_embed)","hf_repo":"laion/larger_clap_music","license":"Apache-2.0","params":null,"quant":"FP32 on CPU","vram_gb":0,"memory_gb_estimate":null,"engine":"transformers 5.17.0 and torch 2.14.0 (CPU), librosa 1.0.0 (ISC); 8 threads","receipt_coverage":"none","in_hosted_demo":null,"tiers":["lite","standard"],"alternative_to":null}],"tiers":[{"id":"lite","label":"Lite · MIT engine, about 15 GB of GPU","summary":"ACE-Step 1.5 renders with the full guard, similarity check and certificate. No community-licence terms, but instrumentals and drafts below Music3's quality.","components":["guard","judge","acestep","similarity"],"hardware":"1× 24-32 GB card for ACE-Step, plus the guard's model (or a remote one); CPU for the similarity check","quality_evidence":[{"metric":"Prompt guard on held-out prompts (79: 30 safe, 26 overt, 23 sneaky)","value":"precision 100%, recall 98% (48 of 49), 0 of 30 safe prompts refused","source":"decosa-api docs/evals/music-gen-cleared.md, 2026-09-25; prompts hand-written for the eval"},{"metric":"Planted near-copies flagged (held-out test, 240 clips)","value":"80.8% at 2.3% false alarms on unrelated tracks (2 of 88)","source":"decosa-api docs/evals/music-gen-cleared.md, 2026-09-25; threshold set on the dev split"},{"metric":"Music quality","value":"not measured yet","source":null}],"latency_note":"measured: ACE-Step renders in seconds once loaded (studio, 2026-09-23); the guard's call and the similarity check as for standard","in_hosted_demo":true,"receipt_coverage":"partial","receipt_note":null,"hosting":null},{"id":"standard","label":"Standard · the hosted demo, MiniMax-Music3 on a 96 GB card","summary":"MiniMax-Music3 songs with vocals (community licence, stated on every certificate) and ACE-Step, with the same guard, check and certificate.","components":["guard","judge","music3","acestep","similarity"],"hardware":"1× RTX PRO 6000 Blackwell 96 GB (about 50 GB free for Music3), CPU for the similarity check","quality_evidence":[{"metric":"Prompt guard on held-out prompts (79)","value":"precision 100%, recall 98%; code rules alone: recall 55%","source":"decosa-api docs/evals/music-gen-cleared.md, 2026-09-25"},{"metric":"Planted near-copies flagged, by change (held-out)","value":"pitch +2: 75%, pitch -1: 85%, tempo 0.92: 83%, tempo 1.08: 85%, pitch +1 and tempo 1.05: 85%, 12 s excerpt pitched -2: 73%","source":"decosa-api docs/evals/music-gen-cleared.md, 2026-09-25"},{"metric":"Music quality","value":"not measured yet","source":null}],"latency_note":"measured on our server: the prompt check in seconds to half a minute on a saturated shared gateway, a track in about a minute to render, the similarity check in seconds","in_hosted_demo":true,"receipt_coverage":"partial","receipt_note":null,"hosting":null}],"alternates":[],"services":[{"name":"decosa-api","port":8445,"image":"${DECOSA_REGISTRY}/decosa-api:<tag>","purpose":"GET /music/info, /music/samples; POST /music/guard, /music/generate, /music/check, /music/runs/{id}/compare; GET /music/runs/{id}, /music/certificates/{id}, /music/guard/log. Needs FFmpeg in the image for the studio worker."},{"name":"decosa-music-embed","port":8486,"image":null,"purpose":"CPU similarity service (services/music_embed/Dockerfile, built locally): /v1/match, /v1/features, /v1/pair, /v1/embed. Holds the catalogue as vectors; never stores audio."},{"name":"comfyui","port":8188,"image":null,"purpose":"MiniMax-Music3 renders for the studio worker (see the studio tool)."},{"name":"vLLM","port":8114,"image":"vllm/vllm-openai@sha256:c2914767605584b6d8f45686b82de173ecc99e781897aa3d0a66dacd72c51ae1","purpose":"Qwen3.8-27B NVFP4 for the typed judgment, behind our gateway (hosted) or called directly (self-host)."}],"tools":[{"name":"Free Music Archive dataset (fma_small subset)","url":"https://github.com/mdeff/fma","license":"Code MIT, metadata CC BY 4.0; each track under its artist's licence: only CC BY, CC BY-SA, CC0 and public-domain tracks are used","purpose":"The 240-track reference catalogue (vectors only) and the eval: 64 catalogue tracks with 6 planted near-copies each, 80 held-out tracks and 132 tracks by artists not in the catalogue."},{"name":"c2pa-python","url":"https://github.com/contentauth/c2pa-python","license":"MIT OR Apache-2.0","purpose":"The C2PA content credential on every MP3 (via the provenance kit, vertical 07/provenance)."},{"name":"ComfyUI","url":"https://github.com/comfyanonymous/ComfyUI","license":"GPL-3.0","purpose":"Runs the MiniMax-Music3 graph for the studio worker."},{"name":"FFmpeg (rubberband filter)","url":"https://ffmpeg.org","license":"LGPL-2.1+ (rubberband GPL-2.0+ in the build used for the eval only)","purpose":"MP3 encoding, audio decoding for the similarity check, and the planted pitch and tempo changes in the eval."}],"hardware":[{"tier":"1× RTX PRO 6000 Blackwell 96 GB, shared","fits":true,"notes":"Measured on our server 2026-09-25: Music3 renders on GPU0 beside the live-demo services (about 25 GB free before the job, ComfyUI unloading between jobs); the guard's model runs on GPU1; the similarity check on CPU."},{"tier":"1× 24-32 GB card","fits":null,"notes":"Not tested. ACE-Step (14.6 GB peak, measured) fits; MiniMax-Music3 does not; the guard's model needs its own ~20 GB or a remote server."},{"tier":"CPU only","fits":true,"notes":"The prompt guard's code layer and the similarity check run on CPU (about 2 s per 30 s track, measured); rendering needs a GPU."}],"latency":[{"lane":"Prompt check (typed judgment), hosted gateway route","typical_ms":30300,"source":"measured on our server 2026-09-25: median 30 s over 120 eval prompts while other evaluation jobs saturated the shared gateway (p90 46 s); 0.4-1.6 s in the recorded runs once it was quiet; a refusal by the code layer takes milliseconds and makes no call"},{"lane":"Brief to finished track with certificate, 30 s track","typical_ms":42700,"source":"measured on our server 2026-09-25: median of 7 recorded runs (33.8-65.6 s), gateway route, queue empty"},{"lane":"30 s MiniMax-Music3 track, render only","typical_ms":43300,"source":"measured on our server 2026-09-25: 29.5-43.3 s over 7 recorded runs (Music3 33.5-43.3 s, ACE-Step 29.5-36.2 s) on shared GPU0, model load included; one earlier Music3 render took 74.2 s; 21.4 s in the self-host check"},{"lane":"Similarity check, 30 s track","typical_ms":2000,"source":"measured on our server 2026-09-25: 1.7-2.4 s on CPU (8 threads), 240 references"}],"benchmark":null,"notes":["The similarity check knows only its 240 references and the files you compare with it: a clear result says nothing about the millions of commercial recordings it has never seen.","Music3 output is labelled \"Powered by MiniMax-Music3\" in the console and in the certificate."]},"buyer_facts":[{"label":"Data retention","value":"The prompt and lyrics are kept only while the job is queued; runs, certificates and the refusal log hold hashes, rules and settings. Rendered audio stays in the studio's media folder. Compared reference files are not kept."},{"label":"What leaves the box","value":"Hosted: the brief goes to the text model through our gateway and its render service. Self-host: nothing."},{"label":"Licence per track","value":"Each certificate names the model's licence: the MiniMax-Music3 Community License (credit \"Powered by MiniMax-Music3\", USD 20M revenue threshold, use policy) or MIT for ACE-Step 1.5."},{"label":"Cost per track","value":"A fraction of a cent of model time for the prompt check (measured); GPU time on your own card when self-hosted."},{"label":"Typical time","value":"Under a minute from brief to a certified track on a quiet queue (measured); the similarity check takes seconds on CPU."},{"label":"Outputs","value":"MP3 with a C2PA credential, a similarity report naming the closest references and their licences, and a signed certificate (JSON and Markdown) that verifies at /record/verify."}],"data_handling":{"page":"/data#music-gen-cleared","self_host":{"level":"confidential","leaves":"nothing","summary":"Runs on your machine; nothing is sent to Decosa or a third party by default."},"hosted":{"level":"operator-processed","demo_only":false,"summary":"TLS to Decosa's server, then decrypted and processed by Decosa's API server, with the open models run by NEAR AI through OpenRouter, with Reka AI as the only fallback under Decosa's account.","gpus":"operator-contracted","third_parties":[],"retention":"The prompt and lyrics are kept only while the job is queued; runs, certificates and the refusal log hold hashes, rules and settings. Rendered audio stays in the studio's media folder. Compared reference files are not kept.","used_for_training":false,"encrypted_while_processed":false},"sealed_tier":{"applies":false,"note":"The sealed tier (raw chat only, never use-case pipelines) is paused at launch (/docs/sealed-tier)."},"external_calls":[]},"console":{"href":"/apps/music-gen-cleared","input":"music","lanes":[{"id":"guard","title":"Prompt check","kind":"list"},{"id":"track","title":"Track","kind":"list"},{"id":"similarity","title":"Similarity","kind":"list"},{"id":"certificate","title":"Licence certificate","kind":"json"}],"samples":[{"n":1,"id":"strip-demo","title":"Strip demo","deep_link":"/apps/music-gen-cleared?sample=1&autorun=0"},{"n":2,"id":"refuse-demo","title":"Refuse demo","deep_link":"/apps/music-gen-cleared?sample=2&autorun=0"},{"n":3,"id":"sneaky","title":"Sneaky","deep_link":"/apps/music-gen-cleared?sample=3&autorun=0"},{"n":4,"id":"ad-bed","title":"Ad bed","deep_link":"/apps/music-gen-cleared?sample=4&autorun=0"},{"n":5,"id":"game-loop","title":"Game loop","deep_link":"/apps/music-gen-cleared?sample=5&autorun=0"},{"n":6,"id":"public-domain","title":"Public domain","deep_link":"/apps/music-gen-cleared?sample=6&autorun=0"},{"n":7,"id":"lyrics","title":"Lyrics","deep_link":"/apps/music-gen-cleared?sample=7&autorun=0"}],"deep_link_params":{"sample":"1-based index into samples, or a sample id","autorun":"1 = start the run once the sample is loaded; 0 (default) = only preselect","reduce-motion":"1 = turn off animations"}},"api":{"base":"https://api.decosa.ai","contract":"/api/contract.json","contract_markdown":"/api/contract.md","reference":"/docs/api","keys":"/account/keys"},"prompts":{"hosted":"/prompts/music-gen-cleared-hosted.md","selfhost":"/prompts/music-gen-cleared-selfhost.md","assemble":"/prompts/music-gen-cleared-assemble.md","mac":"/prompts/music-gen-cleared-mac.md"},"rehearsal":{"bundle":"/samples/music-gen-cleared.zip","bundle_url":"https://decosa.ai/samples/music-gen-cleared.zip","folder":"/samples/music-gen-cleared/","expected":"/samples/music-gen-cleared/expected.json","files":["/samples/music-gen-cleared/expected.json","/samples/music-gen-cleared/inputs/near-copy-breeze-funk-pitch-up-2.mp3","/samples/music-gen-cleared/inputs/original-tone.wav","/samples/music-gen-cleared/inputs/prompt-described-artist.txt","/samples/music-gen-cleared/inputs/prompt-named-artist.txt","/samples/music-gen-cleared/inputs/prompt-original.txt"],"bytes":517844,"checks":["the named-artist brief is refused","the refusal comes from the code rules, with no model call","no model call is spent on the named-artist refusal","in strip mode the named-artist brief comes back as stripped, not refused","in strip mode the artist's name is removed from the prompt that would be rendered","the described-but-unnamed artist is refused","the original brief is allowed","the original brief's check has a model receipt","the pitch-shifted copy is flagged as a near-copy","its closest catalogue match is the track it was copied from (Breeze Funk)","the synthetic tone is clear of the catalogue","every model call has a signed receipt"],"licence":"Prompts: written for Decosa (CC0). near-copy-breeze-funk-pitch-up-2.mp3: \"Breeze Funk\" by Malaventura, Free Music Archive (fma_small, track 113025), Public Domain Mark 1.0, pitch-shifted +2 semitones for the Decosa eval. original-tone.wav: synthetic tones generated by code (CC0).","about":"Three music briefs and two audio files. A brief naming an artist must be refused by code with no model call, the same brief in strip mode must come back with the name removed, a brief that describes an artist without naming it must be refused by the typed judgment, and an original brief must be allowed with a signed receipt. A pitch-shifted copy of a catalogue track must be flagged as a near-copy of that track and a synthetic tone must come back clear. No render: renders take about a minute of shared GPU and the runner cannot yet poll a queued job, so the certificate (and its tamper check) is exercised in the hosted demo, not here.","run":{"containers":"docker compose exec api python scripts/rehearse.py music-gen-cleared","checkout":"python scripts/rehearse.py music-gen-cleared --bundle music-gen-cleared.zip --base-url http://127.0.0.1:8445","mac":".venv/bin/python scripts/rehearse.py music-gen-cleared"},"guidance":"Set up with a coding agent (we recommend Claude Code with Claude Opus 5.5; any capable coding agent works) on mock data only, run the rehearsal until every check passes, then run your own data locally yourself. Never give the agent real data during setup."},"hardware_fit":{"check":"/self-host/hardware?use=music-gen-cleared","data":"/api/hardware.json","tiers":[{"id":"lite","gpu_gb":72.2,"basis":"stack","unknown":[]},{"id":"standard","gpu_gb":107.6,"basis":"stack","unknown":[]}],"mac":{"fit":"partial","memory_gb":64}},"links":{"page":"/apps/music-gen-cleared","json":"/use-cases/music-gen-cleared.json","metrics":"/metrics/music-gen-cleared","console":"/apps/music-gen-cleared","console_sample":"/apps/music-gen-cleared?sample=1&autorun=0","stack":"/apps/music-gen-cleared#stack","try_live":"/apps/music-gen-cleared#live","watch":"/apps/music-gen-cleared#watch","build":"/apps/music-gen-cleared#build","self_host":"/apps/music-gen-cleared#self-host","prompts":{"hosted":"/prompts/music-gen-cleared-hosted.md","selfhost":"/prompts/music-gen-cleared-selfhost.md","assemble":"/prompts/music-gen-cleared-assemble.md","mac":"/prompts/music-gen-cleared-mac.md"}}}