Hotel lobby screen music: a 2-minute welcome video loop

Make a 2-minute welcome video with a soft jazz-lounge bed for a hotel lobby screen: one generation and a two-minute render, $0.325 on Sume.

5 min readSume
All posts

For a hotel lobby screen, build one 2-minute welcome video with a soft jazz-lounge bed that ends where it begins, then let the player loop the file all day. On Sume the audio and assembly are one generation at $0.125 plus a two-minute render at $0.20, so $0.325.

Lobby video plays hundreds of times a day to people who pass it for a few seconds. The bed should be pleasant on the thirtieth repeat, which means no catchy hook and no dramatic build; consistent mood and low dynamics.

The brief to send

The brief asks for a relaxed lounge trio without a lead melody, a quiet section change at 1:00 so the loop is not monotonous, and a seamless return to the opening feel.

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: hotel-lobby-screen-music-loop-a-2-minute-001" \
  -d '{
      "model": "sume/music-auto",
      "prompt": "Elegant hotel lobby lounge, 84 BPM, B-flat major. Brushed drums, soft upright bass, warm Rhodes piano chords, subtle vibraphone. Relaxed and refined, no lead melody, a gentle change to a new chord pattern at 1:00, returning to the opening mood by 2:00. Warm, intimate club recording. Instrumental, no vocals. A 2-minute track."
    }'

Why each axis is set that way

Seven-axis music brief for this video, read 2026-10-05
AxisChoice
EmotionRefined, welcoming, calm
GenreLounge jazz trio
Tempo84 BPM, easy swing
Key and modeB-flat major, warm
InstrumentsBrushes, upright bass, Rhodes, vibraphone
ArcSoft pattern change at 1:00, return by 2:00
Era and productionWarm club recording

Getting the length right

The two minutes live in the prompt, because the router rejects duration fields. The video itself is 120 seconds, so set audio.duration_seconds to 120. If the track runs a few seconds long, the render cuts it at the spine; if short, soundtrack.loop fills the gap.

The loop that matters is the player's loop, not Timeline's. Ask for a track that ends in the opening mood so the repeat is not noticeable, and set a short fade_out_seconds only if the player does not crossfade.

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 120-second video is 2. 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 two-minute render is exactly two started minutes, $0.20. At 121 seconds it would round to three minutes and $0.30, so stop at 120. Several properties with different moods, such as a spa, a bar and a lobby, are one generation and one render each, $0.325 per property. Scaling is simple arithmetic. One finished video here is $0.325 of audio and assembly, so ten of them are $3.25 and fifty are $16.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, 120 s = 2 started minutes$0.10 per started minute$0.20
Total for the audio and assembly$0.325

Check before you publish

Hotels refresh content seasonally. Keep the prompt, change the video, and regenerate the bed only when the mood needs a change.

If the screen has no speaker, the bed does not matter; save the generation and render only the video.

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.

  • Check the venue's public-performance licensing separately; the music brief does not settle that.
  • Test volume at the screen's actual speaker; lobby acoustics are harsh.
  • Avoid any vocal; instruct instrumental only.
  • Confirm usage terms for generated music with Sume before commercial deployment.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume