acestep — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited acestep (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Open-source music generation via tools/music_gen.py.
Cloud providers:
MODAL_MUSIC_GEN_ENDPOINT_URL.RUNPOD_ACESTEP_ENDPOINT_ID.# acemusic (recommended — free, best quality, no GPU)
echo "ACEMUSIC_API_KEY=your_key" >> .env
# Get key at https://acemusic.ai/api-key
# Self-hosted (optional fallback)
python tools/music_gen.py --setup # RunPod
modal deploy docker/modal-music-gen/app.py # Modal# Basic generation (uses acemusic XL Turbo by default)
python tools/music_gen.py --prompt "Upbeat tech corporate" --duration 60 --output bg.mp3
# Generate 4 variations, pick the best
python tools/music_gen.py --prompt "Calm ambient piano" --duration 30 --variations 4 --output ambient.mp3
# Fast mode (disable thinking)
python tools/music_gen.py --no-thinking --prompt "Quick draft" --duration 30 --output draft.mp3
# With musical control
python tools/music_gen.py --prompt "Calm ambient piano" --duration 30 --bpm 72 --key "D Major" --output ambient.mp3
# Scene presets (video production)
python tools/music_gen.py --preset corporate-bg --duration 60 --output bg.mp3
python tools/music_gen.py --preset tension --duration 20 --output problem.mp3
python tools/music_gen.py --preset cta --brand digital-samba --duration 15 --output cta.mp3
# Vocals with lyrics
python tools/music_gen.py --prompt "Indie pop jingle" --lyrics "[verse]\nBuild it better\nShip it faster" --duration 30 --output jingle.mp3
# Cover / style transfer
python tools/music_gen.py --cover --reference theme.mp3 --prompt "Jazz piano version" --duration 60 --output jazz_cover.mp3
# Repaint a weak section
python tools/music_gen.py --repaint --input track.mp3 --repaint-start 15 --repaint-end 25 --prompt "Guitar solo" --output fixed.mp3
# Continue from existing audio
python tools/music_gen.py --continuation --input track.mp3 --prompt "Continue with jazz piano" --output extended.mp3
# Stem extraction
python tools/music_gen.py --extract vocals --input mixed.mp3 --output vocals.mp3
# Fall back to self-hosted
python tools/music_gen.py --cloud modal --prompt "Background music" --duration 60 --output bg.mp3If generated music sounds repetitive or lacks variety, try these in order:
--variations 4 generates 4 takes, pick the best--infer-method sde adds randomness (same seed gives different results)--seed to let each generation be uniquepython tools/music_gen.py --prompt "Upbeat indie rock, driving drums, jangly guitar" --duration 60 --bpm 120 --key "G Major" --output track.mp3Write lyrics in a temp file or pass inline. Use structure tags to control song sections.
# Write lyrics to a file first (recommended for longer songs)
cat > /tmp/lyrics.txt << 'LYRICS'
[Verse 1]
Walking through the morning light
Coffee in my hand feels right
Another day to build and dream
Nothing's ever what it seems
[Chorus - anthemic]
WE KEEP MOVING FORWARD
Through the noise and doubt
We keep moving forward
That's what it's about
[Verse 2]
Screens are glowing late at night
Shipping code until it's right
The deadline's close but so are we
Almost there, just wait and see
[Chorus - bigger]
WE KEEP MOVING FORWARD
Through the noise and doubt
We keep moving forward
That's what it's about
[Outro - fade]
(Moving forward...)
LYRICS
# Generate the song
python tools/music_gen.py \
--prompt "Upbeat indie rock anthem, male vocal, driving drums, electric guitar, studio polish" \
--lyrics "$(cat /tmp/lyrics.txt)" \
--duration 60 \
--bpm 128 \
--key "G Major" \
--output my_song.mp3If the chorus sounds weak, regenerate just that section:
python tools/music_gen.py --repaint --input my_song.mp3 --repaint-start 20 --repaint-end 35 --prompt "Powerful anthemic chorus, big drums" --output fixed.mp3python tools/music_gen.py --continuation --input my_song.mp3 --prompt "Continue with gentle acoustic outro" --output extended.mp3The model doesn't reliably follow "female vocal" or "male vocal" on its own. Use both of these together:
[female vocal] tags before each section:[female vocal]
[Verse 1]
Walking through the morning light...
[female vocal]
[Chorus - anthemic]
WE KEEP MOVING FORWARD...Just saying "female vocal" in the prompt alone is often ignored. The combination of prompt + lyrics tags is what works.
For duets with male/female vocals trading verses, use both the prompt and per-section lyrics tags:
[Verse 1 - male vocal, storytelling]
First verse lyrics here...
[Chorus - male and female duet, harmonies]
Chorus lyrics here...
[Verse 2 - female vocal, wry]
Second verse lyrics here...
[Bridge - male vocal, spoken]
Spoken bridge...
[Bridge - female vocal, sung]
Sung response...This reliably produces vocal trading between sections and harmonies on shared parts.
| Preset | BPM | Key | Use Case |
|---|---|---|---|
corporate-bg | 110 | C Major | Professional background, presentations |
upbeat-tech | 128 | G Major | Product launches, tech demos |
ambient | 72 | D Major | Overview slides, reflective content |
dramatic | 90 | D Minor | Reveals, announcements |
tension | 85 | A Minor | Problem statements, challenges |
hopeful | 120 | C Major | Solution reveals, resolutions |
cta | 135 | E Major | Call to action, closing energy |
lofi | 85 | F Major | Screen recordings, coding demos |
Generate music from text prompt + optional lyrics.
Style transfer from reference audio. Control blend with --cover-strength (0.0-1.0):
Stem separation — isolate individual tracks from mixed audio. Tracks: vocals, drums, bass, guitar, piano, keyboard, strings, brass, woodwinds, other
Regenerate a specific time segment within existing audio while preserving the rest.
python tools/music_gen.py --repaint --input track.mp3 --repaint-start 15 --repaint-end 25 --prompt "Guitar solo" --output fixed.mp3Extend existing audio by continuing from where it ends.
python tools/music_gen.py --continuation --input track.mp3 --prompt "Continue with jazz piano" --output extended.mp3Write captions by layering multiple descriptive dimensions rather than single-word descriptions.
Dimensions to include:
Good: "Slow melancholic piano ballad with intimate female vocal, warm strings building to powerful chorus, studio-polished production" Bad: "Sad song"
--bpm 120Structure tags (use in lyrics, not caption):
[Intro]
[Verse]
[Chorus]
[Bridge]
[Outro]
[Instrumental]
[Guitar Solo]
[Build]
[Drop]
[Breakdown]Vocal control (prefix lines or sections):
[raspy vocal]
[whispered]
[falsetto]
[powerful belting]
[harmonies]
[ad-lib]Energy indicators:
| Scene | Preset | Duration | Notes |
|---|---|---|---|
| Title | dramatic or ambient | 3-5s | Short, mood-setting |
| Problem | tension | 10-15s | Dark, unsettling |
| Solution | hopeful | 10-15s | Relief, optimism |
| Demo | lofi or corporate-bg | 30-120s | Non-distracting, matches demo length |
| Stats | upbeat-tech | 8-12s | Building credibility |
| CTA | cta | 5-10s | Maximum energy, punchy |
| Credits | ambient | 5-10s | Gentle fade-out |
--duration <scene_seconds>Background music should be mixed at 10-20% volume in Remotion:
<Audio src={staticFile('voiceover.mp3')} volume={1} />
<Audio src={staticFile('bg-music.mp3')} volume={0.15} />For music under narration: use instrumental presets (corporate-bg, ambient, lofi). For music-forward scenes (title, CTA): can use higher volume or vocal tracks.
Use --brand <name> to load hints from brands/<name>/brand.json. Use --cover --reference brand_theme.mp3 to create variations of a brand's sonic identity. For consistent sound across a project: fix the seed (--seed 42) and vary only duration/prompt.
| Flag | Default | Description |
|---|---|---|
--thinking | on (acemusic) | 5Hz LM enriches prompts and generates audio codes |
--no-thinking | - | Faster generation, skip LM reasoning |
--variations N | 1 | Generate N variations (1-8, acemusic only) |
--guidance-scale | 7.0 | Prompt adherence (1.0-15.0) |
--infer-method | ode | ode (deterministic) or sde (stochastic, more variety) |
--seed | random | Lock randomness for reproducibility |
tools/sfx.py)--extract~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.