Difference between revisions of "Sound Clips"
Line 83: | Line 83: | ||
=== Test scripts === | === Test scripts === | ||
[[Audio Test]] | [[Audio Test]] | ||
=== Relationship to other features === | === Relationship to other features === |
Revision as of 10:03, 20 February 2023
Feature Design Document
(none)
Functional Spec
- 30(.000) seconds maximum. (STC)
- PCM WAV format, 16-bit, 44.1kHz, mono / stereo (Downmixed to mono by the viewer at upload time)
Second Life supports in-world sound clips, which can be played to all residents within range. The maximum time any clip can be is 30 seconds, requiring longer sounds to be stitched together. There are various LSL functions that can be used to play sound clips, as well as a built-in system for gestures. Uploading a sound clip has a variable cost (see below), and the clip must be compatible with SL. As the Knowledge Base says, "Valid sounds are any .WAV file in standard PCM format, 16-bit/44.1kHz/mono or stereo (which will be converted to mono anyway), less than or exactly 30 seconds in length. (30.000 seconds is fine, but 30.001 will fail to upload; to the degree of one sample makes a difference.) Sounds cannot be saved as 8-bit, 22.05 kHz, or any other frequency. Sounds in other formats can be converted in most sound programs. There is currently no support for compression formats such as MP3."
Pricing Model
Basic | Premium | Premium Plus |
---|---|---|
10 L$ | 10 L$ | 0 L$ |
Audio software
Windows | Mac | Linux |
---|---|---|
|
|
|
ffmpeg
The following section assumes some familiarity with the Linux operations system and bash scripting. One of the best tools for audio conversion under Linux is the tool ffmpeg. It is a command line tool that can convert both video and audio from one supported format to other supported formats. Source code for ffmpeg can be downloaded from the link but most modern Linux distributions come with a modern version already installed or ready for download in their package management system. Consult your distribution's documents on how to install packages and what package management system is supported.
The following command will use ffmpeg to convert a sound file to a Second Life compatible WAV file while cutting it just under 30 second segments for instant upload.
ffmpeg -i <filename> -f segment -segment_time 29.9 -ac 1 -ar 44100 <output filename>.%03d.wav
Command line explanation as follows.
- -i <filename> The input file to convert.
- -f segment -segment_time 29.9 Save the output file in 29.9 second segments. You can specify any time in segment_time option, including 30 for 30 seconds. But experimenting using 30 as a segment size sometimes produces file sizes to large for uploading. The 29.9 entry seems to be the perfect size for uploading without issues.
- -ac 1 Converts a multi channel, stereo, stream into a single, mono, output stream.
- -ar 44100 Makes sure the output frequency is 44100 hz.
- <output filename>.%03d.wav Specifies the output name and format for the numbering of each segment. The %03d format will save the output stream in sequential 3 digit segments. example: mozart.000.wav, mozart.001.wav, mozart.002.wav.
Once complete the resulting WAV files should be ready to upload in to Second Life.
Batch conversion
The following batch command can be used to convert a entire directory of mp3 files in to segmented wav files for direct upload.
$ for i in *.mp3; do ffmpeg -i ${i} -f segment -segment_time 29.9 -ac 1 -ar 44100 ${i/mp3/}%03d.wav ; done
Windows
The following command, similar to the prior Linux section, will convert a file to the correct WAV format using ffmpeg on Windows.
ffmpeg -i <input> -c:a pcm_s16le -ac 1 -ar 44100 <output>.wav
Online tools
An online converter which provides complete control over the conversion process can be viewed at Online-Convert.
Test scripts
Relationship to other features
List of features that need to be tested when this feature changes, and why.
Upload Assets - Upload a sound clip and make sure it still works.
User Guides
(none)