How do I make a 9-minute Halloween haunt sound loop from one track?

Generate one 3-minute ambience track ($0.125) and join it three times with Timeline audio concat ($0.01): a 9-minute file for $0.135 on Sume.

4 min readSume
All posts

To make a 9-minute Halloween yard haunt sound loop, generate one ambience track of about 3 minutes with POST /v1/music-router/generate and join it with itself three times using POST /v1/timeline-1.0/audio with operation: concat. On Sume that is $0.125 for the track and $0.01 for the join: $0.135. Rates were read on 2026-10-07.

Halloween 2026 is Saturday, October 31, so a haunt that runs in the evening of the 31st needs a file that plays for hours on a speaker. A 9-minute file is easy to loop in any player, and a long join means fewer restarts than a 3-minute file.

The track prompt

Ambience wants no melody that the ear can count. Ask for 'a 3-minute dark ambient track: low drone, distant wind, slow creaks, an occasional far-off bell, no beat, no vocals, no sudden loud hits'. The prompt controls length, and Sume rejects a duration field, so say 'a 3-minute track' in the text and check duration_seconds on what you get.

Write the opposite of a jump scare: no sudden loud hits, a steady level and no clear start or end. A track with a long fade in and out sounds like a gap when joined. If your first take has one, ask again with 'starts and ends at the same quiet level'.

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: haunt-bed-1" \
  -d '{
    "model": "sume/music-auto",
    "prompt": "A 3-minute dark ambient track for a Halloween yard haunt: low drone, distant wind, slow creaks, an occasional far-off bell. No beat, no vocals, no sudden loud hits, steady level, starts and ends at the same quiet level."
  }'

Join it with itself

Concat takes parts[] of 1 to 20 items, and each part is { url, source_in?, duration? }. The same URL can appear in each part. The join is in the sample domain, so there is no silence at the seams and no re-generation. The output is wav by default, which is the right format to keep joining. Use mp3 only for the last step, because mp3 adds priming padding at every edge.

To make the loop less obvious, give each part a different source_in and duration. A part that starts 20 seconds in, and then one that starts at 0 and runs to 160 seconds, means the same drone and bell fall at different points each pass. The produced audio is capped at 1,800 seconds (30 minutes), so the largest join of 3-minute parts is 10.

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: haunt-loop-9min" \
  -d '{
    "operation": "concat",
    "parts": [
      { "url": "https://media.sume.com/artifacts/artf_demo/haunt.wav" },
      { "url": "https://media.sume.com/artifacts/artf_demo/haunt.wav", "source_in": 20 },
      { "url": "https://media.sume.com/artifacts/artf_demo/haunt.wav", "source_in": 40 }
    ]
  }'

Check before the night

Play the joined file loud and quiet, and walk to where the speaker will be. An ambience that works in headphones can disappear outdoors, or buzz in a cheap speaker. Check the seams at 3:00 and 6:00 (less the offsets you set), and for a tone that repeats in the same place.

Weatherproof the speaker, not only the file. If the bed is for a place where children walk, keep it low and avoid sudden loud sounds, because this is a sound for ambience and not for startle.

Layering a second sound

One track is a bed. For more life, make a second, short generation of 'a 30-second set of spooky sound effects: a creaking door, a distant laugh, a single raven call, spaced far apart, quiet'. Generate it once for another $0.125. Join the effects track with itself in a second concat to make a 9-minute effects file, then play the two files on two speakers or two devices at different levels.

Because the effects file is spaced out and the bed is steady, the two do not line up the same way twice, and the haunt sounds different on each pass. This costs about $0.135 for the second layer (one track and one join), and it needs no mixing step.

If you want one file instead, use a Timeline 1.0 render with a soundtrack and duck_db, which is $0.10 per started minute and so $1.00 for ten minutes. For a yard, two speakers cost less.

How long a loop costs

  • The join is a flat $0.01 per job, whatever the number of parts, up to 20 parts.
  • Generating three separate tracks instead costs $0.375 and gives you three different sounds in one night.
  • Keep the wav. If you later cut a 30-second version for a video, you can split it from the same file.
Joining one 3-minute ambience track into a longer Halloween bed on Sume, rates read 2026-10-07 (Music Router and Timeline audio public rates)
Target lengthParts of 3 minutesMusicJoinTotal
9 minutes3$0.125$0.01$0.135
15 minutes5$0.125$0.01$0.135
30 minutes10$0.125$0.01$0.135

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume