Never worry about the audio limit again with SoundSplice

SoundSplice is an intuitive and easy-to-use module that splices your sound effects so you can easily create thousands of sound effects without reaching your limit! Let me explain how.

You may have been told before that you can record all of your sound effects into one, or just a few, file/s and upload that. That’s easy enough to do in something like Tenacity…

But how are you supposed to separate all of those little clips of audio? There are two options:

  • Listen through the audio yourself, and make a table containing all of the TimePositions and how to reference them to make a sound effect, and only that sound effect, play.
  • Use SoundSplice and it will automatically do it for you in as little time as the length of your audio.

One of the options is easier than the other. If you can’t figure out which one, this module isn’t for you.

To set up SoundSplice, take the module here:

or the one from Github:

:warning: STUDIO ACCESS TO API MUST BE ENABLED FOR THIS TO WORK WITHOUT NEEDING ROBLOX PLAYER

Insert the module anywhere. Now, require the module and (ideally) set up a variable for your sound. The sound must be on the server if the module is on the server and it is referenced by a Script.

The first step in using SoundSplice is calibrating your sound. This will just play through your sound and find where the sound effects start.

:warning: FOR SOUNDSPLICE TO WORK EFFICIENTLY, PLEASE DO A NOISE REMOVAL ON YOUR AUDIO BEFORE UPLOADING

The three properties for module:Calibrate are the sound, the stops, and the waitLength.

  • The sound is pretty self-explanatory.
  • The stops tells the audio what the minimum loudness is. I recommend something between 5 and 10 (the PlaybackLoudness scale goes from 0 to 1000).
  • The waitLength tells the audio how long a fragment must be silent to be considered a different sound. If you recorded willy-nilly like I did, I recommend 0.35. If you purposefully put something like 1 second between each sound effect (recommended), set this to, of course, 1.

Right now your script should look something like this:

local soundSplice = require(game.ServerScriptService.SoundSplice)
local sound = workspace.SoundSplice.MySFX001

soundSplice:Calibrate(sound, 10, 0.35)

The next step is to simply use “Run” if the audio is server-sided or “Play” if it is client-sided. While you do this, you will see numbers (these are the PlaybackLoudness levels), the words “quiet” and “loud” (these mark when the audio becomes silent), and a warning that says “inserted” (these are the breakpoints for each sound effect).

:warning: DO NOT STOP PLAYING OR RUNNING UNTIL YOU SEE A TABLE LIKE ONE OF THE TWO IMAGES BELOW

image
image

Here is a video of the calibration process (the erase warning and sound errors will not be there):

As you can see, the module struggles on quiet sounds like typing. I recommend amplifying these or setting a lower stops than what I have there.

Once you are done with this step, you may stop running or playing. The data has saved in a DataStore.

Now, I recommend printing your table to see where it has recorded sound effects. When running this code:

local soundSplice = require(game.ServerScriptService.SoundSplice)
local sound = workspace.SoundSplice.MySFX001

soundSplice:GetSoundList(sound)

you should have this printed:
image

If you see more sound effects than you created, I recommend setting a higher waitLength or a lower stops. But of course, in order to do this you will have to erase your data:

local soundSplice = require(game.ServerScriptService.SoundSplice)
local sound = workspace.SoundSplice.MySFX001

soundSplice:EraseSfx(sound)

Run or Play with this and the data will erase.

Now, if you are curious about, say, sound effect 6, you can play that sound effect with this code:

local soundSplice = require(game.ServerScriptService.SoundSplice)
local sound = workspace.SoundSplice.MySFX001

soundSplice:PlaySfx(sound, 6)

Now technically you could just stop here. But it’s hard to remember which sound effects are which! To reference them more easily, you could name them:

local soundSplice = require(game.ServerScriptService.SoundSplice)
local sound = workspace.SoundSplice.MySFX001

soundSplice:NameSfx(sound, 6, "Fingers Drumming")

After running that, you can now play that specific sound effect by name:

You’re done! Using SoundSplice will allow you to rarely, if ever, hit your sound limit. If any of these instructions are wrong, please tell me. I tested them all, but your situation may be different. Thank you for considering using SoundSplice.

17 Likes

Looks interesting! I have an audio limit of 2000/month so I probably won’t use this, but great resource!

1 Like