$npx -y skills add calesthio/OpenMontage --skill lyriaGenerate and validate music with Google Lyria 3 through the Gemini Interactions API. Use before calling OpenMontage google_music, designing Lyria 3 Clip or Pro prompts, using image-to-music or custom lyrics, choosing between Lyria 3 and Lyria RealTime, diagnosing Google music-g
| 1 | # Google Lyria 3 |
| 2 | |
| 3 | Use Lyria 3 as a single-turn music generator. Keep it distinct from Lyria RealTime, which is an experimental WebSocket model for continuously steered instrumental performance. |
| 4 | |
| 5 | Read [references/api-and-prompting.md](references/api-and-prompting.md) when choosing a model, designing vocals or custom lyrics, using image inputs, debugging the response, or checking current limits and pricing. |
| 6 | |
| 7 | ## Required Workflow |
| 8 | |
| 9 | 1. Confirm the intended role: underscore, loop, instrumental cue, or full song. |
| 10 | 2. Confirm vocals, language, target duration, musical structure, and delivery format. |
| 11 | 3. Announce the provider, exact model, estimated per-request cost, and whether the call is exploratory or final. |
| 12 | 4. Write one structured prompt using the contract below. |
| 13 | 5. Make one approved generation call. Treat a retry as another potentially billable stochastic generation. |
| 14 | 6. Preserve the returned provider source unchanged. |
| 15 | 7. Probe the actual file and listen before recording duration, format, or approval metadata. |
| 16 | 8. Derive a separate production master when the edit requires an exact duration. |
| 17 | |
| 18 | ## Choose The Model Deliberately |
| 19 | |
| 20 | | Need | Model | Contract | |
| 21 | |---|---|---| |
| 22 | | Prompt iteration, preview, loop, exact 30-second source | `lyria-3-clip-preview` | Always generates a 30-second MP3; currently $0.04/request | |
| 23 | | Full song, vocals, longer structure, image-conditioned score | `lyria-3-pro-preview` | Prompt-influenced duration up to roughly three minutes; currently $0.08/request | |
| 24 | | Live, continuously steered instrumental performance | `lyria-realtime-exp` | Separate WebSocket workflow; do not route through `google_music` | |
| 25 | |
| 26 | The current OpenMontage `google_music` adapter is locked to `lyria-3-pro-preview`. It does not expose Clip, WAV response selection, multiple images, or RealTime controls. Surface that limitation rather than implying those options are available through the adapter. |
| 27 | |
| 28 | Do not change models silently. For a 30-second video, either obtain approval for Pro plus exact-duration mastering or use Clip through an explicitly supported path. |
| 29 | |
| 30 | ## Build The Prompt |
| 31 | |
| 32 | Specify, in this order: |
| 33 | |
| 34 | 1. **Purpose and duration** — what the music supports and the requested length. |
| 35 | 2. **Genre and era** — use musical vocabulary, not a living artist imitation. |
| 36 | 3. **Tempo and harmony** — BPM or tempo range, meter, key or tonal center. |
| 37 | 4. **Instrumentation and texture** — name lead, rhythm, bass, and ambient layers. |
| 38 | 5. **Structure** — timestamped sections or `[Intro]`, `[Verse]`, `[Chorus]`, `[Bridge]`, `[Outro]`. |
| 39 | 6. **Dynamics and synchronization** — entrances, rests, builds, hits, and holds tied to edit times. |
| 40 | 7. **Vocal policy** — instrumental-only constraints, a vocal profile, or clearly separated custom lyrics. |
| 41 | 8. **Mix and ending** — density, foreground/background role, headroom character, and final decay. |
| 42 | 9. **Exclusions** — unwanted vocals, instruments, gestures, clichés, abrupt endings, or copyrighted material. |
| 43 | |
| 44 | For video underscore, use timestamp windows that cover the full requested duration. Ask for one primary change per window and identify the exact synchronization moment. |
| 45 | |
| 46 | For instrumental-only output, say all of the following when they matter: |
| 47 | |
| 48 | ```text |
| 49 | Instrumental only. No lead or backing vocals, speech, choir, humming, |
| 50 | vocal chops, spoken samples, lyrical fragments, or recognizable quotations. |
| 51 | ``` |
| 52 | |
| 53 | For custom lyrics, put performance direction before a separate `Lyrics:` block and use section labels. Prompt in the language the singer should use. |
| 54 | |
| 55 | ## Direct Vocals Deliberately |
| 56 | |
| 57 | When vocals are requested, define these before writing the prompt: |
| 58 | |
| 59 | 1. **Vocal role** — solo lead, duet, call-and-response, backing ensemble, or vocal texture. |
| 60 | 2. **Language and script** — name the sung language and keep the custom lyrics in one intentional script; do not silently transliterate or code-switch. |
| 61 | 3. **Singer profile** — voice type or range, timbre, intensity, diction, ornamentation, and emotional distance. Do not imitate a named artist. |
| 62 | 4. **Section behavior** — state where the lead enters, where harmonies or echoes appear, and which sections remain instrumental. |
| 63 | 5. **Lyric contract** — separate directions from a `Lyrics:` block, use `[Verse]`, `[Chorus]`, `[Bridge]`, and `[Outro]`, and reserve parentheses for intentional backing-vocal echoes. |
| 64 | |
| 65 | Treat the returned vocal as untrusted until auditioned. Check lyric adherence, language drift, pronunciation, intelligibility, unwanted backing vocals, vocal/instrument balance, and whether the performance follows the requested emotional arc. A technically valid file with poor diction or altered lyrics is not an app |