Audio Effect Support

Goal: I want to make a system where if a song is playing then there is a blur effect or a bloom effect in which makes all neon thing start to glow brighter. More specifically, if there is a bass point in which everything will start to amp up the bloom and where it can detect the bpm and raise the blur effect per beat. If it is possible I want to make it to where if the song reaches a certain bass level that it would shift the Color() values of certain blocks to ae random choosing of a made up list of color values, in which those tables would look like this:

local rgbColorList = {
	(0,0,0),(0,0,0),(0,0,0)
}

If you need to, you can adjust this any way you want.

Issues: I have never really worked with sounds or audio detection. I was hoping that someone with experience could present a small walkthrough or introduction on how to detect bass or bpm alongside how to work effects when presented with said bass or bpm.

Already tried: I have scoured the internet trying to find some things related to this topic and none have come up that are very useful. I have found a few articles I’m debating on with testing and they do present problems such as if a song is too quiet then it messes up the bpm, but this I can work with.

Please note that if there are any other details that I can work with such as treble or clap effects that are possible to perform that would be very helpful.

This is the model I will be using.

The glowing points that are on the top rings are all called glowBall, yes, even the stick looking ones.
The glowing points on the speaker (the thing hanging down) are all called outLine.

3 Likes

OK, so there is no way to detect things like BPM entirely inside of Roblox unfortunately, and I haven’t found an open-source solution for real-time audio analysing that can easily be used on Roblox. BUT! There is a way to do this semi-manually without having to script entire songs out. While this does NOT detect BPM changes, it contains data on Treble, Bass, Sub bass ect.

I stumbled across this video today on Youtube, showcasing an audio visualiser in Roblox. In the description is a github page for the files to create a web server that enables you to get the sound data from a sound file and then import it to Roblox through a module script, which you can then use to create your own visualiser (these are both linked below). How I ended up doing this was using Python 3 to create a local web server and upload the files to it, as the intended method of using rawgit no longer works (this means you will need to download Python).

Please note that this project hasn’t been touched for over 5 years. Whilst I only ran into a single problem your experience may be different. I did not make this, therefore I can only help a limited amount.

(I am on windows, so this will only apply to people on windows because I have never touched another PC without windows and have no idea how to translate this).

I recommend using Python 3 in this case because it is what I used, specifically Python 3.8 but anything later than that is guaranteed to work also. To create a local web server on your device and host the files to be used, you will need to download the zip file from the github page and extract. Open Command Prompt and type in the following command

cd (path to unzipped folder on your device)

If you put it on your desktop, the path will most likely be

C:/Users/YOURUSERHERE/Desktop/Monstercat-Audio-Spectrum-Visualizer-master/Monstercat-Audio-Spectrum-Visualizer-master

Then, still in Command Prompt, type in the command:

python3 -m http.server

This will create the web server hosting the files you previously opened in Command Prompt. You can then go to http://localhost:8000 on your browser (Chromium based browser/Microsoft Edge recommended) to view a Monstercat-styled visualiser. You will need to keep the Command Prompt window open until you are finished.

There are extra instructions such as how to add new songs on the github page. To record data, press E while on the localhost site you just created. You will need to listen to the entire song from start to finish whilst recording it, otherwise only sections of the data will be exported.

Once the song being played is over, it should automatically begin to download the .rbxmx file which is the module script containing all of the sound data you will need to create what you want. Once you are done recording all of the songs and all data is exported and downloaded, you can close the Command Prompt window.

This model is an example of what I made with this, you can take it and use anything you want in it if you desire.

Edit: I forgot about this step (my bad). But you will need to head into the config files located in js/helpers. Once you have found this, you will need to find and set EncodingEnabled to true. It should be right at the top.

https://www.roblox.com/library/7163144257/AudioAnalyzee

3 Likes

Would it be too much to ask if you can post a video of you running this yourself? I’m still not sure on how to run any of this. To make this simplified, could you use this on the bloom effect with a neon brick?

Hopefully this video helps! I’ve also attached the script I used in the video.
AudioAnalyze.rbxm (30.5 KB)

I managed to run everything correctly after installing and uninstalling various different programs of Python until I landed on one that functions properly, although I am not able to export any song data upon viewing the songs as shown. Is there something I did wrong?

I added a small edit to my original post which corrects this. It was a step I missed out, my bad!

1 Like