Make 3-minute hold music for a voice agent

ElevenLabs agents can play hold audio up to 180 s and 40 MB. Generate a short loop with Sume music generation and join it into 180 s with timeline audio.

3 min readSume
All posts

ElevenLabs agents can hold callers in a queue and play hold audio, an MP3 or WAV of up to 40 MB and 180 seconds. To make that on Sume, generate a short instrumental with the Music Router (lyria-3.5), then use timeline audio to join copies of it into one gapless file of 180 seconds.

The queueing facts

These come from a secondary summary of the update; confirm them in ElevenLabs' own documentation before you ship.

ElevenLabs call queueing (read 2026-10-03, secondary source dated Sept 14, 2026)
ItemDetail
BehaviorAgents queue callers at capacity
Wait1 s to 30 min, 3 min default
BillingQueue time not billed
Hold audioMP3 or WAV, up to 40 MB and 180 s

Generate a short instrumental

Music Router takes a prompt of 1 to 5000 characters. Duration fields are rejected, so you steer length in the prompt, for example a 30-second track. There is no negative prompt, so put exclusions in the positive text: instrumental, no vocals. Every Music Router model charges one fixed price per audio generation; read the catalog for it.

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: hold-music-001" \
  -d '{
    "model": "sume/music-auto",
    "prompt": "Calm corporate lounge, 80 BPM, soft Rhodes and brushed drums, steady and unobtrusive, no build or climax. A 30-second track. Instrumental, no vocals."
  }'

Join it to 180 seconds

Timeline audio concat takes 1 to 20 ordered parts, each with a url and optional source_in and duration, and joins them in the sample domain with no silence at the seams. Repeat the same track six times, each trimmed to 30 s, for 180 s. The track must be on media.sume.com, so use the artifact URL from the music job. The rate is $0.01 flat per job; confirm it in the catalog.

Output is wav by default and can be mp3 for a smaller file. Check the finished size against 40 MB before you upload; a loop that is audibly the same each pass is fine for hold music, but a hard cut in the middle of a phrase is not, so check the join.

curl -X POST https://api.sume.com/v1/timeline-1.0/audio \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: hold-concat-001" \
  -d '{
    "operation": "concat",
    "output": { "format": "mp3" },
    "parts": [
      { "url": "https://media.sume.com/artifacts/artf_demo/hold.mp3", "duration": 30 },
      { "url": "https://media.sume.com/artifacts/artf_demo/hold.mp3", "duration": 30 },
      { "url": "https://media.sume.com/artifacts/artf_demo/hold.mp3", "duration": 30 },
      { "url": "https://media.sume.com/artifacts/artf_demo/hold.mp3", "duration": 30 },
      { "url": "https://media.sume.com/artifacts/artf_demo/hold.mp3", "duration": 30 },
      { "url": "https://media.sume.com/artifacts/artf_demo/hold.mp3", "duration": 30 }
    ]
  }'

Check before you upload

  • Confirm the generated track is at least 30 s; length in the prompt is steering, not a guarantee.
  • Listen to the seams between repeats.
  • Check the total length and file size against 180 s and 40 MB.
  • Choose music with no voice or sudden change, since callers hear it for minutes.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume