• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Custom Song Volume

VideoGameScrapBook

Smash Rookie
Joined
Apr 15, 2008
Messages
7
Is there a way to represent the byte size with more than 2 digits? I believe that the 2 digit representation of byte size limits the number of possible custom song volumes to 62 songs. If my math is right, 63 is where it starts requiring 3 hexadecimal digits:
(63 + 1) * 4 = 256 = 100 hexadecimal

The latest version of Brawl Song Manager allows you to add custom volumes using a GUI and the code you created. It was working fine until I inserted too many custom song volumes. When I investigated, I noticed that I was trying to use 66 song volumes, which is over the limit.
 

standardtoaster

Tubacabra
Joined
Nov 26, 2009
Messages
9,253
Location
Eau Claire, Wisconsin
byte count is not limited to 2 digits. it may have crashed because there are too many songs or the added songs are no longer in the same area for where my code grabs some data
 

Wusigi Dr

Smash Rookie
Joined
May 5, 2014
Messages
16
Location
Orondo, Washington
NNID
wusigidr
3DS FC
1134-7536-9351
If you want every song in the game to be the same volume, you can just use this code instead.

Global Song Volume Mod [standardtoaster, Magus]
041CA05C 388000XX

XX is a number out of 127
So let me get this straight. If i download a program to edit and add that code into the GCT. ALL 3 of em just to be sure. ALL MY MUSIC will be equalized to whatever i choose? EX. 80?
 

Shadic12

Smash Rookie
Joined
Jun 8, 2014
Messages
1
I am currently playing project m on dolphin and I exported my gct to txt file put in the code for all bgm to have the same volume. When I converted back to the gct file I put began playing project m and noticed I can't tell the difference if all the music is on the same volume if anyone of you is willing to help me fix this please reply because it looks like all of the custom music I put in it remains the same vol as the originals.
 

"Shion"

Smash Ace
Joined
Jan 7, 2013
Messages
570
Location
Le Cooch
NNID
Shion_Sensei
I am so confused. So what am i supposed to do with these codes?

Where do they go, how do I used them?
 

Kati

Smash Lord
Joined
Mar 22, 2010
Messages
1,471
I am so confused. So what am i supposed to do with these codes?

Where do they go, how do I used them?
These aren't the simplest codes. I suggest learning how to implement others first.

RSBE01.gct is the code file found in the codes folder. Iirc, thousands of lines of code are already in place for PM.

I use Ocarina to compile codes, but I wouldn't be surprised if a newer program exists.
 

Patt Anderson

PMPE Architect
Joined
Apr 20, 2013
Messages
604
Location
Surrey, Canada
If you want every song in the game to be the same volume, you can just use this code instead.

Global Song Volume Mod [standardtoaster, Magus]
041CA05C 388000XX

XX is a number out of 127
Sorry to dig up such an old post, but I added this code to my build and everything is quite loud. I know how to turn it down but I do not know how to remove the old code with the loud value and replace it with the newer, quieter code.

Any thoughts?
 

HolyGrunt

Smash Rookie
Joined
Nov 18, 2014
Messages
2
Sorry to dig up such an old post, but I added this code to my build and everything is quite loud. I know how to turn it down but I do not know how to remove the old code with the loud value and replace it with the newer, quieter code.

Any thoughts?
I have no idea if this would work. CORRECTION I tested this out as I was typing this, it works!

1. Open the .gct file you wanna fix using GCTEdit by ChiboSempai (links must be out there somewhere)
This program shows you dual windows at once, the GCT file and the .txt file versions of what you opened.
You should be able to locate the code 041CA05C 388000XX (the universal song code where the XX is the hexadecimal value that you placed) somewhere within both windows.

2. Anyways, after you've opened up the GCT file, (the window freezes for like two minutes let it load) press the "Save TXT"* button displayed in the upper right corner of the window. This will let you export the GCT as a .txt file.

* MAKE SURE TO RENAME THE FILE EXTENSION OF THE FILE FROM .GCT to .TXT OR IT'LL REMAIN AS A .GCT AND OVERWRITE YOUR OLD .GCT! For Example, the GCT editor will display "RSBE01.gct" as your save name. Rename that to RSBE01.txt.

3. Open the newly made .txt file using anything that does such things. Notepad works fine.

4. Run a search for the Code (Ctrl+f) and put "041CA05C 388000XX" where XX is the decimal value you named it. If you cant remember the decimal value, you can chop the XX out for just "041CA05C 388000" to help locate the line, just make sure you delete those last two figures as well.

5. Delete the entire line if you don't want the universal song volume modifier at all. If you wanna keep it but change the volume, just change the value of the last two letters/numbers at the end of the 041CA05C 388000XX, where the XX is what you wanna change to the new volume.

6. Save the .txt file so you keep the changes you made.

7. Launch the GCT Editor, choose to open the .txt file you just modified and saved. (even for opening .txt files it takes awhile)

8. Once that loads up, you should see the .txt file stuff in the bottom left window, and the auto translated GCT version of that above it. Choose to "Save GCT" from the buttons on the top right again. Make sure the file extension says .gct when saving it! (this step is basically the opposite of step 2's renaming)

9. Your done! You fixed your .gct file without having to start recompiling it from scratch! Just make sure you put it in the correct folder and that its named RSBE01 so that the game recognizes this and picks it up.

Obviously you can do this for any .gct file as long as you know the lines of code your looking for and want to erase or modify. You don't have to worry about deleting any lines that the .txt file contains either!

Example: This is what displays in the .txt file you make:

Unrestricted Pause Camera
040A7D60 4E800020
04109D88 38800001

You dont have to delete the "Unrestricted Pause Camera" line, as Chibo's GCT Editor automatically turns that into hexidecimal lines upon turning the .txt into a .gct without doing any harm whatsoever.
In fact, these lines are already included in many RSBE01 files. That line came straight out of PM 3.5's code.

I hope this helps guys!
 

Sundark

Smash Apprentice
Joined
Oct 20, 2014
Messages
99
Bumping this, I hear tell that the global song code doesn't work for PM 3.5. Any idea when that might change? I'm getting to the point in a rather large music pack I've been putting together where I'll need to throw in the volume code, was hoping I could just use that.
 
Last edited:

standardtoaster

Tubacabra
Joined
Nov 26, 2009
Messages
9,253
Location
Eau Claire, Wisconsin
Bumping this, I hear tell that the global song code doesn't work for PM 3.5. Any idea when that might change? I'm getting to the point in a rather large music pack I've been putting together where I'll need to throw in the volume code, was hoping I could just use that.
I don't see why this would not work. The code is loading the volume and is working 100%. This code does not equalize volume. It's more of a volume multiplier. Magus explained it best:

If you're not replacing the music on a slot you most likely do not want to be modifying its volume scaling, as the resulting volume depends on the brstm as well. It's why the customizable one was made so that you can modify just the slots that you have custom music in (or brawl tracks that you think weren't normalized well with the in-game modifier).
 
Last edited:

Sundark

Smash Apprentice
Joined
Oct 20, 2014
Messages
99
Strange. Okay. Thanks for the info though. Pretty much all I heard was that it 'didn't work,' admittedly I hadn't (and haven't) tested anything myself yet. Thoroughly rereading the rest of the thread though, I don't think I'll have any other questions about the codes themselves. Seems straightforward enough.

I'm not sure about the extent to which you don't want to modify non-custom song volumes, though. I'm replacing most, if not all of the music on all of the major competitive stages, some non-competitive ones, and then maybe a track here or there for some other non-competitive ones. Would it be a good idea to use the global code, or would that make all the default music really out of whack? The only volume control I've really been doing is the amplify tool in Audacity. I'm hoping that makes all the custom music the same volume at the end of the day (with the code), but if the code alone leaves other stages unplayable, that's a little iffy since I don't want the pack to be completely unusable in casual play.
 

standardtoaster

Tubacabra
Joined
Nov 26, 2009
Messages
9,253
Location
Eau Claire, Wisconsin
All brstms you make or ones that are already in the game already have their own volume originally. The codes in this thread just increase or decrease their volume, not setting the volume. I would honestly just use the song specific volume modifier on songs that actually need it
 

Sundark

Smash Apprentice
Joined
Oct 20, 2014
Messages
99
Alright, I'm gonna be that guy who bumps this thread one more time.

Has anyone run into a problem with Brawl Song Manager where it becomes unable to read/locate the .gct codeset when you just change the directory to the root of the SD Card? It became an issue about one percent away from the actual completion of my pack, when I was attempting to create a second .gct to use both custom volume codes and a custom stagelist codeset.

I managed to work around it, but for the sake of future updates to the pack I'd like to know how to fix it. And it persisted almost no matter what I tried, I swapped in and out .gcts, tried different directories that would support full functionality of the program, and even just in raw folders of only .brstms.

I could provide a screenshot of the error (assuming it didn't fix itself, wishful thinking much) if necessary.
 

Downdraft

Smash Ace
Joined
Mar 16, 2014
Messages
556
Location
Huntsville, AL
I've read through this thread multiple times and still am unsure of the optimal way to increase the volume of songs for someone that has zero Project M coding experience. Does anyone know if changing the volume playback levels in Song Manager will carry over into Stage Manager if I insert the "updated" brstm?
 

Sundark

Smash Apprentice
Joined
Oct 20, 2014
Messages
99
I've read through this thread multiple times and still am unsure of the optimal way to increase the volume of songs for someone that has zero Project M coding experience. Does anyone know if changing the volume playback levels in Song Manager will carry over into Stage Manager if I insert the "updated" brstm?
There's essentially two ways to go about any individual brstm. For lack of a better way to put it, you can increase from the brstm side, or the game side.

Increasing from the brstm side means that the song file the brstm was made from, and the brstm itself, has an inherent volume setting. This is an annoyingly difficult setting to adjust, but easily the superior way to do it. Programs like Audacity and mp3gain can kind of tackle this side, but I found the best results in using this brstm converter. Since you can use this with multiple input formats, it's extremely versatile. If you've already made a quality brstm, just tell the program to output a brstm, and then input a brstm. It sounds silly but it worked like a charm for me.

Increasing from the game side is the only thing that Brawl song manager is doing for you, and it does this in a strange way. Basically, Brawl itself has inherent values for track volumes on a stage-by-stage, song-by-song basis. Brawl Song Manager reads the .gct codeset that you provide, finds the song value for each track (which is determined by its filename, which is what you use to put it into the appropriate spot), and displays it in the bottom left corner. You can then 'adjust' this value with the arrows, which tells the program to write a line of code to the codeset that increases the volume at which the game tells it to play.

For the most part, the second method will serve your needs just fine, which is why the code and the program were created in the first place. You may run into a problem with Melee stages, however, as they for some reason tend to hard-cap the volume of any tracks on them. I noticed no major difference between a song coded to play at 30~ and the same song at 120~, which is a pretty drastic difference. What I did for those was the first method, running all problem songs through the program and doubling their value, and that got them to play at a more usable level.

To actually answer your question now: Yes, the volume adjustment from Brawl Song Manager will apply to a new brstm that you put in, so long as you keep it the exact same name, since the code applies to the slot that is designated by the filename.
 
Last edited:

gamegod7

Smash Apprentice
Joined
Oct 5, 2014
Messages
127
NNID
gamegod7
3DS FC
1607-2735-0153
So with the 3.6 beta for project M out, will this this code still work for 3.6, or will you have to update the codes?
 

Ovis

Smash Rookie
Joined
Jan 30, 2015
Messages
4
The code doesn't seem to be working for me in 3.6. I've been adding them through Brawl Song Manager.

Checked the gct file, everything was in order. I'm using the right codes, as far as I can tell. At first I didn't notice any real change to song volumes, so I tried muting a couple of them completely to see if that would have an effect, but they still play at the exact same volume. Not sure what to do here. Any help would be appreciated.

EDIT: Figured it out through some effort on my part. When you add custom song volumes through Brawl Song Manager, it adds them below the footer for the entire .gct

So it stops reading at the footer, and never loads anything past it. Simple fix, just moved the footer down below the song volume code. Everything's good now, but this might be a good thing to note in the OP.
 
Last edited:

Boss N

Smash Journeyman
Joined
Apr 27, 2014
Messages
296
Location
Connecticut
NNID
Boss-N
3DS FC
0044-3869-2757
There's essentially two ways to go about any individual brstm. For lack of a better way to put it, you can increase from the brstm side, or the game side.

Increasing from the brstm side means that the song file the brstm was made from, and the brstm itself, has an inherent volume setting. This is an annoyingly difficult setting to adjust, but easily the superior way to do it. Programs like Audacity and mp3gain can kind of tackle this side, but I found the best results in using this brstm converter. Since you can use this with multiple input formats, it's extremely versatile. If you've already made a quality brstm, just tell the program to output a brstm, and then input a brstm. It sounds silly but it worked like a charm for me.

Increasing from the game side is the only thing that Brawl song manager is doing for you, and it does this in a strange way. Basically, Brawl itself has inherent values for track volumes on a stage-by-stage, song-by-song basis. Brawl Song Manager reads the .gct codeset that you provide, finds the song value for each track (which is determined by its filename, which is what you use to put it into the appropriate spot), and displays it in the bottom left corner. You can then 'adjust' this value with the arrows, which tells the program to write a line of code to the codeset that increases the volume at which the game tells it to play.

For the most part, the second method will serve your needs just fine, which is why the code and the program were created in the first place. You may run into a problem with Melee stages, however, as they for some reason tend to hard-cap the volume of any tracks on them. I noticed no major difference between a song coded to play at 30~ and the same song at 120~, which is a pretty drastic difference. What I did for those was the first method, running all problem songs through the program and doubling their value, and that got them to play at a more usable level.

To actually answer your question now: Yes, the volume adjustment from Brawl Song Manager will apply to a new brstm that you put in, so long as you keep it the exact same name, since the code applies to the slot that is designated by the filename.
So i Tried the brawl song manager method to try to adjust the volume for individual songs, but it keeps resetting to the predetermined setting, what do I do?

& how do I use the code to alter individual songs, do I use the same method of transferring the code as a text then back to gct, but use the code on the very first post? also whats byte count?
 

Chirou

Smash Rookie
Joined
Nov 12, 2014
Messages
2
Heyo, I'm using HxD (a hex code editor) to mess with my .gct. I would like to implement the universal volume code to my file, but I got two questions:

First, does this '041CA05C 388000XX' still work?

And second, where do I need to put it? What is the hex part right in front of it? I would like to search the row in front of it and place the new code right underneath. That should work, right?

Thanks in advance
 

gamegod7

Smash Apprentice
Joined
Oct 5, 2014
Messages
127
NNID
gamegod7
3DS FC
1607-2735-0153
Does anyone here know where I can find codes for the gct that allow for the cycling of menu music. Psycho Ghost's build has a .gct that allows X01-X03 to be cycled and I cant find the code anywhere
 

gamegod7

Smash Apprentice
Joined
Oct 5, 2014
Messages
127
NNID
gamegod7
3DS FC
1607-2735-0153
I just use the SG pm pack gct
 

4tlas

Smash Lord
Joined
Sep 30, 2014
Messages
1,298
So it stops reading at the footer, and never loads anything past it. Simple fix, just moved the footer down below the song volume code. Everything's good now, but this might be a good thing to note in the OP.
I wasn't having this problem when we last talked about it but I am now. Which part is the footer, so I can move it past the song codes?

I just use the SG pm pack gct
I made the one in the SG build, and its a 7 song rotation from X15 to X21. The normal "menu" songs just play outside of the CSS if you're using that code. X15-X21 are things like the Coin Launcher, Photo Album, and All-Star Rest Area.

The Netplay version does something similar but uses different slots. I believe it cannibalizes the Fire Emblem song list.

I had made separate versions for 3.6b, one that rotates through the 7 slots X15-X21 as we use now at SG and one that rotates through 3 songs X01-X03 like you asked for. I haven't bothered making the 3 song one for 3.6 because somebody else already had. Since you are happy using the 7-song one I will assume you don't need the 3-song one anymore, but if you need help I can try and find it for you (or just make it myself).
 

gamegod7

Smash Apprentice
Joined
Oct 5, 2014
Messages
127
NNID
gamegod7
3DS FC
1607-2735-0153
I wasn't having this problem when we last talked about it but I am now. Which part is the footer, so I can move it past the song codes?



I made the one in the SG build, and its a 7 song rotation from X15 to X21. The normal "menu" songs just play outside of the CSS if you're using that code. X15-X21 are things like the Coin Launcher, Photo Album, and All-Star Rest Area.

The Netplay version does something similar but uses different slots. I believe it cannibalizes the Fire Emblem song list.

I had made separate versions for 3.6b, one that rotates through the 7 slots X15-X21 as we use now at SG and one that rotates through 3 songs X01-X03 like you asked for. I haven't bothered making the 3 song one for 3.6 because somebody else already had. Since you are happy using the 7-song one I will assume you don't need the 3-song one anymore, but if you need help I can try and find it for you (or just make it myself).
I actually did find the actual code for just three songs, but I am fine with the 7 song code anyways. Besides, putting in the code myself seemed a bit intimidating for me as it wasnt just simple as anything else
 

egil72

Smash Rookie
Joined
Nov 22, 2015
Messages
2
Is there a way to represent the byte size with more than 2 digits? I believe that the 2 digit representation of byte size limits the number of possible custom song volumes to 62 songs. If my math is right, 63 is where it starts requiring 3 hexadecimal digits:
(63 + 1) * 4 = 256 = 100 hexadecimal

The latest version of Brawl Song Manager allows you to add custom volumes using a GUI and the code you created. It was working fine until I inserted too many custom song volumes. When I investigated, I noticed that I was trying to use 66 song volumes, which is over the limit.
I am having this problem too. The BrawlSongManager (BSM) can only store up to 62 song volumes. Other methods can be used to write more song volumes, but the BSM cannot. I looked into the C# source code of the BSM to find out why. The program CustomSongVolumeCodeset.cs reads and writes the length of the GCT code as a single byte. This gives a maximum value of 255, or 0xFF. If you go over that, the program will truncate the number to whatever fits in one byte. The upper digits are lost.

Each individual volume is written as 4 bytes and there is a 4 byte terminator at the end, so for example, if you have 66 song volumes, the length is ((66 * 4) + 4) = 264 = 10C in hexadecimal. The BSM only stores the first byte (0C, or 12 in decimal) so it thinks there are only two song volumes set. It reads the first three sets of 4 bytes and does not find the terminator. This causes an error and the BSM cannot read the GCT. The Wii cannot read the file either, because of the incorrectly written length.

Line 86 of CustomSongVolumeCodeset.cs reads in the file length as a single byte. As shown:

byte byte_count = data[index - 1];

Line 135 writes the length to the GCT file, cast as a byte. As shown:

b[0x47] = (byte)(4*Settings.Count + 4);
 

standardtoaster

Tubacabra
Joined
Nov 26, 2009
Messages
9,253
Location
Eau Claire, Wisconsin
I'm assuming whatever song manager thing you were using assumed you could only go up to 0xFF for the byte count. You can go as high as you want actually as long as it fits within 8 bytes
 

egil72

Smash Rookie
Joined
Nov 22, 2015
Messages
2
I'm assuming whatever song manager thing you were using assumed you could only go up to 0xFF for the byte count. You can go as high as you want actually as long as it fits within 8 bytes
The BrawlSongManager is a great GUI for putting songs into Brawl. Its the one at http://www.lakora.us/brawl/songmanager/
It leaves room for the full length, but leaves most of them as 0. And it is only, at max, 4 bytes (every two characters is a single byte).
The BSM is great except that it can only go up to 62 song volume changes before it breaks. Editing the GCT directly would not have that limit.

So i Tried the brawl song manager method to try to adjust the volume for individual songs, but it keeps resetting to the predetermined setting, what do I do?
The BrawlSongManager will only remember the changes to the song volume if it can find a GCT file. There will be a button that says "Add" near the volume control if it is working.
 
Top Bottom