Audio uploader: split clips longer than the upload limit into ~29.9 s parts automatically #807

Closed
opened 2026-10-17 15:09:08 +00:00 by sky_line · 2 comments
Owner

Second Life rejects sound uploads longer than 30 seconds, so longer audio currently has to be cut up by hand in an external editor before uploading. The audio uploader should offer to split a long clip automatically.

Behaviour

  • When the selected file is longer than the upload limit, offer to split it into consecutive clips of ~29.9 s each, with a final clip holding the remainder.
  • Example: a 2:14 (134 s) clip becomes 5 uploads: 4 × 29.9 s, then 14.4 s.
  • Name the parts in order from the source name, e.g. name_01 … name_05, so they sort correctly in inventory.
  • Show the clip count and the total L$ upload cost (one fee per clip) before anything is uploaded. Let the user confirm or cancel the whole batch.

Details to get right

  • Cut on exact sample boundaries so the parts play back to back with no gap or overlap. Keep the source sample rate and channel layout within what the uploader already accepts (it converts as it does today).
  • Make the target length a setting with a safe margin under the limit (default 29.9 s), so encoder padding can't push a part over 30 s.
  • Optional, off by default: a few milliseconds of fade at each cut to avoid clicks. Plain cuts stay the default so consecutive parts join seamlessly.
  • Upload the parts one at a time through the normal upload path, with progress per part. A failed part must not leave the rest silently half-done: report which parts succeeded and allow a retry of the remainder.
  • Never upload anything until the user confirms the total cost.

Nice to have: after uploading, offer to copy a ready-made list of the new sound UUIDs in order (for scripts that play them back to back).

Second Life rejects sound uploads longer than 30 seconds, so longer audio currently has to be cut up by hand in an external editor before uploading. The audio uploader should offer to split a long clip automatically. **Behaviour** - When the selected file is longer than the upload limit, offer to split it into consecutive clips of ~29.9 s each, with a final clip holding the remainder. - Example: a 2:14 (134 s) clip becomes 5 uploads: 4 × 29.9 s, then 14.4 s. - Name the parts in order from the source name, e.g. `name_01` … `name_05`, so they sort correctly in inventory. - Show the clip count and the total L$ upload cost (one fee per clip) before anything is uploaded. Let the user confirm or cancel the whole batch. **Details to get right** - Cut on exact sample boundaries so the parts play back to back with no gap or overlap. Keep the source sample rate and channel layout within what the uploader already accepts (it converts as it does today). - Make the target length a setting with a safe margin under the limit (default 29.9 s), so encoder padding can't push a part over 30 s. - Optional, off by default: a few milliseconds of fade at each cut to avoid clicks. Plain cuts stay the default so consecutive parts join seamlessly. - Upload the parts one at a time through the normal upload path, with progress per part. A failed part must not leave the rest silently half-done: report which parts succeeded and allow a retry of the remainder. - Never upload anything until the user confirms the total cost. **Nice to have:** after uploading, offer to copy a ready-made list of the new sound UUIDs in order (for scripts that play them back to back).
sky_line added this to the Slipstream project 2026-10-17 15:09:08 +00:00

Suggestion: have an option for the audio upload to split long sound clips into clips of equal length, rather than many 29.9 s clips and a last, shorter one. Example: a 2:14 (134 s) clip becomes 5 clips of length 26.8 s.

Suggestion: have an option for the audio upload to split long sound clips into clips of equal length, rather than many 29.9 s clips and a last, shorter one. Example: a 2:14 (134 s) clip becomes 5 clips of length 26.8 s.
Author
Owner

Shipped in 1.4.0 Beta 2. Closing; reopen if it misbehaves.

Shipped in 1.4.0 Beta 2. Closing; reopen if it misbehaves.
sky_line 2026-10-20 15:03:19 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#807
No description provided.