Install
openclaw skills install @beatra-ai/brand-jingle-studioTurn a brand name, slogan, and campaign use into a set of original brand jingles, ad songs, and audio-logo stings. This brand jingle maker and AI jingle generator drafts the hook and optional sung line, then generates reviewable tracks in the lengths and styles the campaign needs for ads, store openings, podcast intros, and radio spots. Use it as an ad song generator and brand music generator for brand theme songs, commercial jingles, advertising jingles, sonic logos, audio logo stings, campaign music, radio jingles, podcast intro jingles, and event walk-on themes, with each candidate generated as original music you can use commercially.
openclaw skills install @beatra-ai/brand-jingle-studioTurn a brand brief into reviewable original jingles, ad songs, and audio-logo stings. Hear a few style sketches first, lock the DNA, then derive the other lengths.
Use this Skill when the user needs commercial brand music.
Split the job before spending:
Route a gift or occasion song about a person to personalized-song-maker.
Route finished lyrics that only need a melody to suno-lyrics-to-song. Route
one instrumental bed for a specific video cut to short-video-bgm-studio.
Route a labeled livestream or store playlist of many beds to
livestream-bgm-pack. Route a cover of an existing recording to
ai-song-cover-studio. Keep mixed or uncertain music requests on
music-generation-studio.
The hard inputs are:
Reuse already-known slogan, must-include words, mood, genre, vocal direction, and exclusions. Ask only when a missing answer changes the hook, the vocal route, or the paid cells. When the destination is known, do not ask for a 15 / 30 / 60 table.
Safe defaults:
model: "suno-5.5" for ordinary music. Never omit the model and never
silently use auto.duration field on beatra.music.generate. Write length
only in the prompt. Do not add a duration argument.model_options.suno.custom_mode: true.instrumental: true and keep lyrics absent.Lyrics, slogan shaping, style cards, and planning are free. Each
beatra.music.generate call is paid. A spoken tagline is a separate paid
beatra.speech.synthesize call.
Collect the brand card. Draft the hook and, when the track sings, a short lyric with a repeated brand line. When the user wants a spoken tagline, write that line as speech, not as sung lyrics.
Choose the primary length from the destination. Call
beatra.models.list with {"capability":"text_to_music"} and price the
three sketches.
Confirm three frozen music payloads: prompt, lyrics or instrumental flag,
title, model, current maximum charge, and one opaque stable
client_request_id each. Planning is not approval. A sting path confirms
only those three short instrumentals.
Submit each sketch exactly once through the bundled
scripts/mcp_client.py. Example:
printf '%s' '{"model":"suno-5.5","prompt":"Bright brand jingle, one compact pop section, about 15 seconds, clean ending sting.","lyrics":"[Hook]\nApproved brand line\n","title":"Approved 15s Hook","model_options":{"suno":{"custom_mode":true}},"client_request_id":"opaque-jingle-15s-a"}' | python3 scripts/mcp_client.py call beatra.music.generate
Do not configure, call, or use a host Beatra Connector. Do not use REST/OpenAPI as a fallback.
Poll each task with beatra.tasks.get. Deliver actual
duration_seconds, MIME type, size, URL or artifact ID, resolved model,
and billing.net_charged_credits. Review the hook, ending, and how close
the actual duration sits to the target. Give one concrete next lever, such
as BPM 92 to 108, not "make it different."
After the user locks one sketch, confirm each derived length as new paid work with a new request ID. Leave accepted sketches untouched.
If the user asked for a spoken tagline rather than a sung hook, call
beatra.voices.list and beatra.models.list with
{"capability":"text_to_speech"}. Confirm a current speech card, then
submit beatra.speech.synthesize once with its own
client_request_id. Deliver the instrumental bed and the spoken line as
two artifacts. Do not claim they are mixed.
For a 30-second radio-style spot, describe the timeline in the prompt and again at delivery: 0–3 hook, middle sell, closing brand line.
Confirm the three sketches and the live music estimate before the first paid
music call. Confirm each derived length before that call. Confirm the spoken
tagline card before beatra.speech.synthesize. A changed hook, lyric, spoken
line, prompt, length, style, model, voice, or instrumental setting is new
paid work with a new request ID.
Requested length is arrangement guidance. Read the actual returned duration. Do not promise a sample-perfect 15.00-second cut, and do not force a verse–chorus–bridge into a 15-second prompt.
If a create response is lost, retry only that candidate's identical frozen
payload and ID. If a task ID is lost, list the matching capability with
beatra.tasks.list, inspect candidates with beatra.tasks.get, and
recover the original before new work.
Music and speech recover independently. Never duplicate a paid submission.
Call beatra.tasks.cancel only when the user asks to cancel that candidate.
On 409 keep polling the same task.
Use or invoke the bundled scripts/mcp_client.py for every Beatra operation.
This Skill runs only the files installed with it and leaves them unchanged while it runs; it never downloads or executes other code. It talks to Beatra's official services over HTTPS, and a file you choose to upload goes only to the one-time upload address Beatra issues for it.
Once a day at most, the bundled client reads Beatra's public version list. When the store or tool you installed from has a newer version, it prints one line with the command that updates it there. Updating stays your choice, through that store or tool. See updates and security.