Step-By-Step Tutorial for fixing looping music/sound
Avatar

Well I found some threads how to fix sound loops and make the longer than normal:
http://steamcommunity.com/app/218620/discussions/15/43099721383227159/
http://steamcommunity.com/app/218620/discussions/15/540744299835792525/

But I have no idea about them. What shouldI open? How should I edit it?
Can someone please make a step-by-step tutorial?

Replies
Avatar

That is pretty much step by step. Both of them, actually. (I even took my time putting numbers for steps in mine)

Avatar
That is pretty much step by step. Both of them, actually. (I even took my time putting numbers for steps in mine)

Well, I can't figure out how to do the steps whit the hex editor. When I search the sound ID, it finds nothing.

Avatar

They work just fine, you're inputting it incorrectly if it comes up with nothing: http://puu.sh/jX9BH/2e9878be11.png

Avatar
They work just fine, you're inputting it incorrectly if it comes up with nothing: http://puu.sh/jX9BH/2e9878be11.png

Well then I just don't get it how to use this thing...

Avatar
They work just fine, you're inputting it incorrectly if it comes up with nothing: http://puu.sh/jX9BH/2e9878be11.png


Well then I just don't get it how to use this thing...

Make sure you're loading music.bnk, post a screenshot of your search box.

Avatar
They work just fine, you're inputting it incorrectly if it comes up with nothing: http://puu.sh/jX9BH/2e9878be11.png


Well then I just don't get it how to use this thing...


Make sure you're loading music.bnk, post a screenshot of your search box.

Okay, got it, but it found only 1 result. I'm trying to find the nightclub music:

Avatar
They work just fine, you're inputting it incorrectly if it comes up with nothing: http://puu.sh/jX9BH/2e9878be11.png


Well then I just don't get it how to use this thing...


Make sure you're loading music.bnk, post a screenshot of your search box.


Okay, got it, but it found only 1 result. I'm trying to find the nightclub music:

Use Unsigned Int (ui32) instead of Unsigned Quad (ui64) and you should get 3 values.

Avatar
They work just fine, you're inputting it incorrectly if it comes up with nothing: http://puu.sh/jX9BH/2e9878be11.png

Well then I just don't get it how to use this thing...

Make sure you're loading music.bnk, post a screenshot of your search box.

Okay, got it, but it found only 1 result. I'm trying to find the nightclub music:

Use Unsigned Int (ui32) instead of Unsigned Quad (ui64) and you should get 3 values.

Okay, got the 3 results, and found the DATA section, but i leave it there. I have no idea about hex editing, and I don't understand the guide that much.
Is there maybe anouther way to edit the lenght and loop?

Avatar
Okay, got the 3 results, and found the DATA section, but i leave it there. I have no idea about hex editing, and I don't understand the guide that much.
Is there maybe anouther way to edit the lenght and loop?

If you're changing the Nightclub track you don't need to worry about the DATA section. The only time you need to change that is when you get 4 results instead of 3.

Lets say for example I want to swap the Nightclub track with this: http://puu.sh/jYQR5/6740266990.png

First thing I do is open the song in Audacity so we get the milliseconds so I can convert it into hex: http://puu.sh/jYQWh/9e5d3ef413.png

of minutes * 60 + # of seconds then concatenate number of milliseconds

1* 60 = 60
60 + 47 = 107
Concatenate milliseconds: 107193

  1. Open music.bnk in 010 editor and search for your sound ID: http://puu.sh/jYRaB/e924a1dc06.png
  2. Starting from the end of the sound ID's, look along until your find a 40 and then drag 8 bytes before it: http://puu.sh/jYRjI/d3d03bc144.png
    The double value is 60472 and reversing the calculation we did before that comes out to 1:00:472 which is the length of the Nightclub track.
  3. Copy those hex values (CTRL+SHIFT+C) and start up a script file.

Replace : AB AA AA AA 0E 87 ED 40 :

  1. Now keep those 8 bytes highlighted and in the double box put in the value we got before for our track (107193): http://puu.sh/jYRw0/0b46250c16.png
  2. Copy those bytes and finish the playback length of our script.

Replace : AB AA AA AA 0E 87 ED 40 : 00 00 00 00 90 2B FA 40

For the loop points highlight the HO>>[ thing as shown here: http://puu.sh/jYRE1/9eb6ac6544.png
The 8 bytes right after that and above it are the loop points. There are 3 cases you need to look for now:

  1. The playback length bytes are the same as the loop point bytes. If this is the case then your script is done.
  2. The loop points are the same but they're different from the playback length. You need to repeat steps 3-5 for one loop point.
  3. The loop points are different. You need to repeat steps 3-5 for both loop points.

The Nightclub falls under case 2. Both loop points are the same but they're different from the playback length. So what we're going to do is start the script:

Replace : A6 AA AA AA 0E 87 ED 40 :

And then finish it with the value we used in step 5.

Replace : A6 AA AA AA 0E 87 ED 40 : 00 00 00 00 90 2B FA 40

Final script:

Replace : AB AA AA AA 0E 87 ED 40 : 00 00 00 00 90 2B FA 40
Replace : A6 AA AA AA 0E 87 ED 40 : 00 00 00 00 90 2B FA 40

This script right here changes the length of the Nightclub track to 1:47:193.

If you still can't do it after this I wrote a program to create scripts: https://www.dropbox.com/s/5lhp5c0732r6e7w/Automatic Script Creator GUI.rar?dl=0

There might still be some bugs here or there but for most cases it'll do the hex editing for you.

Avatar
Okay, got the 3 results, and found the DATA section, but i leave it there. I have no idea about hex editing, and I don't understand the guide that much.
Is there maybe anouther way to edit the lenght and loop?


If you're changing the Nightclub track you don't need to worry about the DATA section. The only time you need to change that is when you get 4 results instead of 3.

Lets say for example I want to swap the Nightclub track with this: http://puu.sh/jYQR5/6740266990.png

First thing I do is open the song in Audacity so we get the milliseconds so I can convert it into hex: http://puu.sh/jYQWh/9e5d3ef413.png

# of minutes * 60 + # of seconds then concatenate number of milliseconds
1* 60 = 60
60 + 47 = 107
Concatenate milliseconds: 107193

1. Open music.bnk in 010 editor and search for your sound ID: http://puu.sh/jYRaB/e924a1dc06.png
2. Starting from the end of the sound ID's, look along until your find a 40 and then drag 8 bytes before it: http://puu.sh/jYRjI/d3d03bc144.png
The double value is 60472 and reversing the calculation we did before that comes out to 1:00:472 which is the length of the Nightclub track.
3. Copy those hex values (CTRL+SHIFT+C) and start up a script file.

Replace : AB AA AA AA 0E 87 ED 40 :

4. Now keep those 8 bytes highlighted and in the double box put in the value we got before for our track (107193): http://puu.sh/jYRw0/0b46250c16.png
5. Copy those bytes and finish the playback length of our script.

Replace : AB AA AA AA 0E 87 ED 40 : 00 00 00 00 90 2B FA 40

For the loop points highlight the HO>>[ thing as shown here: http://puu.sh/jYRE1/9eb6ac6544.png
The 8 bytes right after that and above it are the loop points. There are 3 cases you need to look for now:

1. The playback length bytes are the same as the loop point bytes. If this is the case then your script is done.
2. The loop points are the same but they're different from the playback length. You need to repeat steps 3-5 for one loop point.
3. The loop points are different. You need to repeat steps 3-5 for both loop points.

The Nightclub falls under case 2. Both loop points are the same but they're different from the playback length. So what we're going to do is start the script:

Replace : A6 AA AA AA 0E 87 ED 40 :

And then finish it with the value we used in step 5.

Replace : A6 AA AA AA 0E 87 ED 40 : 00 00 00 00 90 2B FA 40

Final script:

Replace : AB AA AA AA 0E 87 ED 40 : 00 00 00 00 90 2B FA 40
Replace : A6 AA AA AA 0E 87 ED 40 : 00 00 00 00 90 2B FA 40

This script right here changes the length of the Nightclub track to 1:47:193.

If you still can't do it after this I wrote a program to create scripts: https://www.dropbox.com/s/5lhp5c0732r6e7w/Automatic%20Script%20Creator%20GUI.rar?dl=0

There might still be some bugs here or there but for most cases it'll do the hex editing for you.
Thanks for this much help, but how can I now add the music.bnk to the game?
Avatar
Okay, got the 3 results, and found the DATA section, but i leave it there. I have no idea about hex editing, and I don't understand the guide that much.
Is there maybe anouther way to edit the lenght and loop?

If you're changing the Nightclub track you don't need to worry about the DATA section. The only time you need to change that is when you get 4 results instead of 3.
Lets say for example I want to swap the Nightclub track with this: http://puu.sh/jYQR5/6740266990.png
First thing I do is open the song in Audacity so we get the milliseconds so I can convert it into hex: http://puu.sh/jYQWh/9e5d3ef413.png
# of minutes * 60 + # of seconds then concatenate number of milliseconds
1* 60 = 60
60 + 47 = 107
Concatenate milliseconds: 107193
1. Open music.bnk in 010 editor and search for your sound ID: http://puu.sh/jYRaB/e924a1dc06.png
2. Starting from the end of the sound ID's, look along until your find a 40 and then drag 8 bytes before it: http://puu.sh/jYRjI/d3d03bc144.png
The double value is 60472 and reversing the calculation we did before that comes out to 1:00:472 which is the length of the Nightclub track.
3. Copy those hex values (CTRL+SHIFT+C) and start up a script file.
Replace : AB AA AA AA 0E 87 ED 40 :
4. Now keep those 8 bytes highlighted and in the double box put in the value we got before for our track (107193): http://puu.sh/jYRw0/0b46250c16.png
5. Copy those bytes and finish the playback length of our script.
Replace : AB AA AA AA 0E 87 ED 40 : 00 00 00 00 90 2B FA 40
For the loop points highlight the HO>>[ thing as shown here: http://puu.sh/jYRE1/9eb6ac6544.png
The 8 bytes right after that and above it are the loop points. There are 3 cases you need to look for now:
1. The playback length bytes are the same as the loop point bytes. If this is the case then your script is done.
2. The loop points are the same but they're different from the playback length. You need to repeat steps 3-5 for one loop point.
3. The loop points are different. You need to repeat steps 3-5 for both loop points.
The Nightclub falls under case 2. Both loop points are the same but they're different from the playback length. So what we're going to do is start the script:
Replace : A6 AA AA AA 0E 87 ED 40 :
And then finish it with the value we used in step 5.
Replace : A6 AA AA AA 0E 87 ED 40 : 00 00 00 00 90 2B FA 40
Final script:
Replace : AB AA AA AA 0E 87 ED 40 : 00 00 00 00 90 2B FA 40
Replace : A6 AA AA AA 0E 87 ED 40 : 00 00 00 00 90 2B FA 40
This script right here changes the length of the Nightclub track to 1:47:193.
If you still can't do it after this I wrote a program to create scripts: https://www.dropbox.com/s/5lhp5c0732r6e7w/Automatic%20Script%20Creator%20GUI.rar?dl=0
There might still be some bugs here or there but for most cases it'll do the hex editing for you.
Thanks for the help, I tried out your program, now I'm trying to load the project.script into the bundle modder, but it shows an error. Something with wrong format.
Avatar
Thanks for the help, I tried out your program, now I'm trying to load the project.script into the bundle modder, but it shows an error. Something with wrong format.

Open project.script in something like notepad and paste the contents here.
Open the mod folder and check that song.stream is inside there and that it's not 0kb. After that, open script.script in something like notepad and paste the contents of that here as well.

Avatar
Thanks for the help, I tried out your program, now I'm trying to load the project.script into the bundle modder, but it shows an error. Something with wrong format.

Open project.script in something like notepad and paste the contents here.
Open the mod folder and check that song.stream is inside there and that it's not 0kb. After that, open script.script in something like notepad and paste the contents of that here as well.

Okay, project.script:
@Name Song mod
@Author x
@Description Replaces x with x.
@Version 1.15

;Files included in this project
soundbanks/music.bnk : mod\script.script
soundbanks/streamed/music/668133142.stream : mod\song.stream

The song.stream is not in the mod folder, it's in the GUI's folder, and it's not 0kb.
script.script (only file in the mod folder):
Replace : AB AA AA AA 0E 87 ED 40 : 00 00 00 00 40 F4 E7 40

Replace : A6 AA AA AA 0E 87 ED 40 : 00 00 00 00 40 F4 E7 40

Tried to put the .stream into the mod folder and rename it to song.stream, but got the same error when I try to load it.

Avatar
Thanks for the help, I tried out your program, now I'm trying to load the project.script into the bundle modder, but it shows an error. Something with wrong format.


Open project.script in something like notepad and paste the contents here.
Open the mod folder and check that song.stream is inside there and that it's not 0kb. After that, open script.script in something like notepad and paste the contents of that here as well.


Okay, project.script:
@Name Song mod
@Author x
@Description Replaces x with x.
@Version 1.15

;Files included in this project
soundbanks/music.bnk : mod\script.script
soundbanks/streamed/music/668133142.stream : mod\song.stream

The song.stream is not in the mod folder, it's in the GUI's folder, and it's not 0kb.
script.script (only file in the mod folder):
Replace : AB AA AA AA 0E 87 ED 40 : 00 00 00 00 40 F4 E7 40

Replace : A6 AA AA AA 0E 87 ED 40 : 00 00 00 00 40 F4 E7 40

Tried to put the .stream into the mod folder and rename it to song.stream, but got the same error when I try to load it.

They look fine, I know if the file is missing it says "Replacement file does not exist. Line x" but I've never seen anything to do with a wrong format.

No matter, just add the files to a mod manually I guess.

Create Mod tab

Bundle File Name: soundbanks/music.bnk
Replacement File: script.script file
Add Replacement To Mod
Bundle File Name: soundbanks/streamed/music/668133142.stream
Replacement File: song.stream
Add Replacement To Mod

Fill in the name, author and description then Create Mod: http://puu.sh/k0qXu/d0473f1177.png

Avatar
Thanks for the help, I tried out your program, now I'm trying to load the project.script into the bundle modder, but it shows an error. Something with wrong format.


Open project.script in something like notepad and paste the contents here.
Open the mod folder and check that song.stream is inside there and that it's not 0kb. After that, open script.script in something like notepad and paste the contents of that here as well.


Okay, project.script:
@Name Song mod
@Author x
@Description Replaces x with x.
@Version 1.15

;Files included in this project
soundbanks/music.bnk : mod\script.script
soundbanks/streamed/music/668133142.stream : mod\song.stream

The song.stream is not in the mod folder, it's in the GUI's folder, and it's not 0kb.
script.script (only file in the mod folder):
Replace : AB AA AA AA 0E 87 ED 40 : 00 00 00 00 40 F4 E7 40

Replace : A6 AA AA AA 0E 87 ED 40 : 00 00 00 00 40 F4 E7 40

Tried to put the .stream into the mod folder and rename it to song.stream, but got the same error when I try to load it.


They look fine, I know if the file is missing it says "Replacement file does not exist. Line x" but I've never seen anything to do with a wrong format.

No matter, just add the files to a mod manually I guess.

Create Mod tab

Bundle File Name: soundbanks/music.bnk
Replacement File: script.script file
Add Replacement To Mod
Bundle File Name: soundbanks/streamed/music/668133142.stream
Replacement File: song.stream
Add Replacement To Mod

Fill in the name, author and description then Create Mod: http://puu.sh/k0qXu/d0473f1177.png
Thanks! It works! Not the perfect loop, but better to have 0.2-0.5s nothing than 11s nothing between tracks :)
27 243