Coffee roaster brand video music: a 40-second lofi bed

Brief a warm 40-second lofi bed with vinyl texture for a coffee roaster brand video: one generation and a one-minute render, $0.225 on Sume.

5 min readSume
All posts

For a coffee roaster's brand video, ask for a warm 40-second lofi-jazz bed with a soft vinyl texture and a small lift at 0:20 when the pour shot appears. On Sume that is one generation at $0.125 and a one-minute render at $0.10, so $0.225.

Brand videos reward consistency. A small business that posts weekly can use a single recognisable bed across many clips, and it should feel crafted rather than generic. Lofi-jazz fits the slow-craft look of pour-over and roasting, as long as the brief stays specific.

The brief to send

The brief names instruments and a texture, and puts one lift at the pour.

curl -X POST https://api.sume.com/v1/music-router/generate \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: coffee-roaster-brand-video-music-a-40-se-001" \
  -d '{
      "model": "sume/music-auto",
      "prompt": "Warm coffee-shop lofi, 82 BPM, A-flat major. Mellow Rhodes chords, dusty drum loop, soft upright bass, light vinyl crackle, a muted guitar phrase at 0:20. Cozy and unhurried. Slight lift at 0:20, soft ending at 0:40. Warm tape-saturated production. Instrumental, no vocals. A 40-second track."
    }'

Why each axis is set that way

Seven-axis music brief for this video, read 2026-10-05
AxisChoice
EmotionCozy, unhurried, craft
GenreLofi jazz
Tempo82 BPM, relaxed
Key and modeA-flat major, warm
InstrumentsRhodes, drum loop, upright bass, muted guitar
ArcGuitar phrase at 0:20, soft end at 0:40
Era and productionTape-saturated, vinyl texture

Getting the length right

Put the 40 seconds in the prompt, since the router rejects duration fields, and use audio.duration_seconds 40 in the render. If your video is on a loop, keep the track short and let soundtrack.loop handle repeats.

Use the same prompt for several clips and each clip will sound close but not identical, because each generation is independent. If you want the exact same bed, generate once and reuse the file.

Before paying for a render, call POST /v1/timeline-1.0/plan with the same body. It is unbilled and reports the billable minutes, which for this 40-second video is 1. Then send the real POST /v1/timeline-1.0/render with an Idempotency-Key, wait up to 30 seconds in sync mode, and poll GET /v1/jobs/:id/status if it is still queued or processing. Statuses are queued, processing, completed, failed and canceled, and a 429 queue_full means try again shortly.

What it costs

A 40-second video is one started minute. Reusing a single bed across ten clips costs one generation and ten renders, $1.125, while ten distinct beds cost $2.25, because a generation is $0.125 and a render is $0.10. Scaling is simple arithmetic. One finished video here is $0.225 of audio and assembly, so ten of them are $2.25 and fifty are $11.25, before any retries. Failed jobs are not billed as accepted generations, but a regeneration you ask for is a new job, so budget one or two extra takes for a hero clip.

Audio cost at Sume list prices, read 2026-10-05
LineRateAmount
Music generation x 1$0.125 each$0.125
Timeline render, 40 s = 1 started minute$0.10 per started minute$0.10
Total for the audio and assembly$0.225

Check before you publish

Choose one bed as your sound identity, and generate seasonal variants only when the menu changes.

Record the prompt next to the brand guide.

Small brands do not need a music budget line; at $0.225 per clip the soundtrack is closer to a rounding error than a project. The effort goes into the brief, and a good one is reusable for months.

The hand-off between the two calls is the step people miss. When the music job completes, GET /v1/jobs/:id/result returns result.artifacts[] with an audio/mpeg file on media.sume.com. Timeline only accepts workspace media URLs, so import any outside file through POST /v1/media-imports first, and send the resulting URL as soundtrack.url. The Music docs also note that job.request.routed_model names the engine that actually ran, which is worth saving with the file.

  • Be specific about the genre; vague moods produce generic beds.
  • Keep the bed low if the barista talks.
  • Review the vinyl texture on phone speakers; it can read as noise.
  • Confirm usage terms for generated music with Sume before use in ads.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume