Sound Marker - Add sounds to animations with ease [FIXED]

soundmarker2

Hey everyone, I have recently updated soundmarker and fixed its desync issues! Sorry it took so long to get around to. I have also updated the color scheme to be more neutral, so hopefully that is better! Let me know if there are any other issues. Thanks!

Original post

SOUND MARKER

Say hello to Sound Marker, a plugin designed to make adding sounds to animations much faster and easier.

It offers intuitive and easy to understand keyframe marker editing, with real time sound playback, so you dont have to playtest everytime to get it right.

Sound clips can be added to the animation timeline at specific keyframes. Each sound clip has properties that can be edited to better suite your animation. (StartTime, Volume, PlaybackSpeed)

image

All of the sound effects you’d like to use will be placed in a sound folder, which loads them all into the media pool for convenient access. Clicking these will allow you to place sound clips in the timeline.

RobloxStudioBeta_bvhKrYRbZc

Loading your animation with sounds is easy. All you need to do is export the animation, keep the sound folder, and use some code from the provided template. (Some of the template code is only required if you intent to load and use the extra audio settings.)

WHERE DO I SIGN UP?

If you think you’d like to try this plugin out, you can get it for FREE here: https://www.roblox.com/library/14139030488/Sound-Marker

To learn how to use it, continue reading!

TUTORIAL

When the plugin is first opened, you will be greeted with this prompt.

image

Select your animation or keyframe sequence, and your rig. It can be in any order, doesnt matter.
(I recommend duplicating your rig in case of unpredictible behavior!)

Once this is done, the plugin should fully open to reveal the full editor.

Clicking the play button (large button at bottom center with a right pointing arrow) will toggle the animation playback. Hitting space bar with the viewport in focus does the same thing.

RobloxStudioBeta_vp2SxoOJA5

If you selected an animation, and not a keyframe sequence, the plugin should have created a keyframe sequence, and parented it to the animation you selected. Like so.

image The keyframe sequence is the purple one!

As you can see, there is also a sound folder within the keyframe sequence. This is where you will drag your sound effects into. After doing so, all sounds should appear in the media pool.

RobloxStudioBeta_jOkbA3nJsY

Alternatively, you can drag directly from the toolbox into the media pool.

RobloxStudioBeta_OwmhyLtrX2

Now that there are sounds in our media pool, we can click on them to generate a sound clip to add to our timeline.

RobloxStudioBeta_vvz6cfViLN

Now, if you playback the animation from the beginning, we can hear the sound. You can do this by hitting the button below, or by clicking on the first keyframe in the timeline, and then pressing the play button.

image

MAKE SURE YOUR IN-GAME VOLUME IS NOT OFF! IF IT IS, YOU WILL NOT HEAR THE SOUNDS.

Great! Now you can playback the audio clip with your animation, and find that sweet spot.

If we click on the little edit button on a sound clip, we can adjust 3 settings.

RobloxStudioBeta_2AfqS60OPi

These are optional settings that will be used in the animation later, if the specific code is used. These settings reflect in the live playback as well.

To move an existing sound clip, click on it and place it again.

RobloxStudioBeta_6dzL21C913

To delete a clip, either right click it, or move it into the garbage can.

RobloxStudioBeta_gGjuhdp4nL

Once your animation sounds are how you like them, click on the publish icon, which looks like this.

image

This will open the export menu, so you can publish the animation to Roblox. Alternatively, you can right click on the KeyframeSequence, and click Save To Roblox.

Congratulations! You now have an animation with sound markers! Now, how do we use them? Well, we need some code, and the sound folder we used.

The code below is an example of what we’ll need to play the sounds.

-- this is used to get the extra information about the sound you are playing
-- at that particular keyframe. (starting point, volume, speed)
local function readSoundString(soundString)
	local dataArray = string.split(soundString, "%")
	return dataArray[1], tonumber(dataArray[2]), tonumber(dataArray[3]), tonumber(dataArray[4])
end

local animationTrack = --your loaded animation track.

-- connect marker events for each sound name.
for _, sound in soundFolder:GetChildren() do
	animationTrack:GetMarkerReachedSignal(sound.Name):Connect(function(soundString)
		local soundId, start, volume, speed = readSoundString(soundString)

		local sound = Instance.new("Sound")
		sound.SoundId = soundId
		sound.TimePosition = start
		sound.Volume = volume
		sound.PlaybackSpeed = speed
		sound.Parent = character.PrimaryPart
		sound:Play()
		sound.Ended:Wait()
		sound:Destroy()
	end)
end

We are setting up keyframe marker events for keyframe markers with the names of our sounds in the sounds folder. Each one of these keyframe markers stores data about the sound, which we need a function to decipher. That is what readSoundString does.

TUTORIAL CONT.

If you’d like to try an example of using an animation with sounds, get this script and open it: https://www.roblox.com/library/14148499621/Footsteps

You can follow along with this video to help: https://www.youtube.com/watch?v=_An5CqImAeo

CLOSING

This is my first plugin, so I hope you find it useful!

If you find any issues, let me know in the replies. I made it free so I am not obligated to maintain it, but I will do my best to fix any big annoyances and problems if they arise.

Plugin: https://create.roblox.com/store/asset/14139030488/Sound-Marker

Thanks, and enjoy Sound Marker.

107 Likes

That’s really useful, as it’ll save Developers from a lot of scripting! Thank you for sharing this, will test this out when I get access to Studio.

10 Likes

I have a few things to say,

  • How did you make the dragging thing that’s super cool!
  • Really good idea, I might consider getting this
  • The UI has a good concept, but im not a fan of all the red.
  • UI Animations are perfect
11 Likes

This will be PERFECT for Gun Animations, and Cutscenes, and even Horror maps!

Will definitely download this!!

:+1:

10 Likes

This, is, OUTSTANDING! I love the idea of this plugin and I for sure will use it! Though, I heavily suggest that you do update the UI, in my opinion its not the prettiest…

If you do consider updating the UI, here’s a few tips from my book:

  • Decrease the size of the topbar
  • Decrease the size of the buttons and remove any UIGradient
  • Add a timestamp (if applicable) like 0:00/1:00 at the bottom bar
  • Experiment a little with colour combinations. I’d go for complementary colours rather than monochromatic. You can also use Adobe’s website https://color.adobe.com/ to help you decide what colours you wish to have. It would also be a nice touch if you gave us theme options!

Though, as for functionality, spot on. Love it! If you want some UI design ideas, I’d be very happy to come up with concepts for you! :slight_smile:

9 Likes

Ran into a couple of issues:

  • Audios disappear after loading another animation
  • Can’t reimport audios that were loaded before switching to a different animation
  • Widget is blank after restarting studio/reloading a place, requiring me to reopen it via the toolbar button

Plugin also starts throwing this error sometimes while trying to play an animation:

  cloud_14139030488.SoundMarker.Plugin:621: attempt to index nil with 'AbsolutePosition'  -  Edit
  Stack Begin  -  Studio
  Script 'cloud_14139030488.SoundMarker.Plugin', Line 621 - function followPlayhead  -  Studio
  Script 'cloud_14139030488.SoundMarker.Plugin', Line 697  -  Studio
  Stack End  -  Studio
10 Likes

This plugin is great - I can see it being insanely useful for some of my projects but for the life of me, I can’t figure out how to get the animation with sound to play ingame. :sob:

Thanks for sharing this plugin though, it’s looking to be an absolute godsend.

7 Likes

You’re a godsend. That’s all I can say.

10 Likes

This will save people soo much time, thank you so much for this!

1 Like

I never knew i needed this thank u!

Here is a better export way (in my opinion):
Make it so all the sounds are exported into one sound file and then bam it’s way easier than doing all that for i stuff in the scripting

That may be beneficial and time efficient though that ,ay ruin it’s versatality, especially if there’s some kind of smooth transition between a song and another.

ruin what versatility? i feel like this would make your plugin 100x way easier to use and it will become less time consuming and so on… or you can keep both features so you can do the normal way of exporting and what not and then you can make a feature where you export in the way i recommended but either way its your plugin (and your plugin is really cool, i just wish it would be a lot more simpler for simpler things)!

Oh! I reread your comment. I’m so sorry I missunderstood, I thought you meant initially export them as one sound w/out the plugin. I should’ve read it properly beforehand, sorry heh

1 Like

oh breh its okay! so is it possible that you would add such feature?

I’m not the creator of the plugin LOL I’m just part of the audience :]

The creator is @joebersons !

BRUH :rofl: , i thought u was the creator… sorry man my bad didnt mean to waste your time then. Have a good day :+1:

1 Like

this is not possible. the support for what this plugin is even capable of is poor as it is.

damn your right, roblox really need to upgrade fr, thanks for the reply tho! have a great day!

Hey sorry, is it just me or is this plugin down now?