READ THE RULES: Click here

Follow us on Facebook: https://www.facebook.com/xentax/ :)

Need for speed 2015 (2016) PC Audio

Get help on any and all audio formats, or chip in and help others!
daemon1
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 1922
Joined: Tue Mar 24, 2015 8:12 pm
Has thanked: 50 times
Been thanked: 1471 times

Re: Need for speed 2015 (2016) PC Audio

Post by daemon1 » Tue Apr 05, 2016 4:51 pm

Find decode function

Code: Select all

    def decode(self):
        if not self.prim.desc.name=="SoundWaveAsset": return
and comment the check

Code: Select all

    def decode(self):
#        if not self.prim.desc.name=="SoundWaveAsset": return
then go a little down and after this line

Code: Select all

            chnk.ChunkId=i.value.get("ChunkId").value
add this

Code: Select all

            chnk.ChunkId=i.value.get("ChunkId").value

            print hexlify(chnk.ChunkId)
            return
Then if you delete all EBX files except those you need, you'll get a list of chunk names to decode

Svennixx
n00b
Posts: 11
Joined: Tue Dec 16, 2014 10:52 pm
Has thanked: 4 times

Re: Need for speed 2015 (2016) PC Audio

Post by Svennixx » Tue Apr 05, 2016 7:32 pm

It doesn't want to print there. Not even print "test".

Code: Select all

def decode(self):
        #if not self.prim.desc.name=="SoundWaveAsset": return

        histogram=dict() #count the number of times each chunk is used by a variation to obtain the right index

        Chunks=[]
        for i in self.prim.get("$::SoundDataAsset/Chunks::array").fields:
            chnk=Stub()
            Chunks.append(chnk)
            chnk.ChunkId=i.value.get("ChunkId").value
            print hexlify(chnk.ChunkId)
            return
            
            if ChunkIdObfuscation: chnk.ChunkId="".join([chnk.ChunkId[permute] for permute in obfuscationPermutation])
                
            chnk.ChunkSize=i.value.get("ChunkSize").value

daemon1
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 1922
Joined: Tue Mar 24, 2015 8:12 pm
Has thanked: 50 times
Been thanked: 1471 times

Re: Need for speed 2015 (2016) PC Audio

Post by daemon1 » Tue Apr 05, 2016 7:36 pm

so what do you get in output? only ebx names?

Svennixx
n00b
Posts: 11
Joined: Tue Dec 16, 2014 10:52 pm
Has thanked: 4 times

Re: Need for speed 2015 (2016) PC Audio

Post by Svennixx » Tue Apr 05, 2016 7:38 pm

daemon1 wrote:so what do you get in output? only ebx names?

did you comment the line as i said ?
Yeah i only get .ebx names like so:

Code: Select all

toyota_supra_sz-r.ebx
toyota_supra_sz-r_overrun.ebx
toyota_supra_sz-r_playerracevehicleaudio.ebx
toyota_supra_sz-r_transmission.ebx
toyota_supra_sz-r_accel_eng_pitched_noise.ebx
toyota_supra_sz-r_accel_eng_pitched_tone.ebx
toyota_supra_sz-r_accel_exh_pitched_noise.ebx
toyota_supra_sz-r_accel_exh_pitched_tone.ebx
toyota_supra_sz-r_decel2_eng_pitched_noise.ebx
toyota_supra_sz-r_decel2_eng_pitched_tone.ebx
toyota_supra_sz-r_decel2_exh_pitched_noise.ebx
toyota_supra_sz-r_decel2_exh_pitched_tone.ebx
toyota_supra_sz-r_idle_eng.ebx
toyota_supra_sz-r_idle_exh.ebx
toyota_supra_sz-r_ignition.ebx
toyota_supra_sz-r_shutdown_eng.ebx
toyota_supra_sz-r_shutdown_exh.ebx
I put the snippet of the script that needed to change up at my other reply

daemon1
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 1922
Joined: Tue Mar 24, 2015 8:12 pm
Has thanked: 50 times
Been thanked: 1471 times

Re: Need for speed 2015 (2016) PC Audio

Post by daemon1 » Tue Apr 05, 2016 7:42 pm

these ebx's are not the same as the ones you sent me yesterday

try with those accel & decel

Svennixx
n00b
Posts: 11
Joined: Tue Dec 16, 2014 10:52 pm
Has thanked: 4 times

Re: Need for speed 2015 (2016) PC Audio

Post by Svennixx » Tue Apr 05, 2016 7:45 pm

Code: Select all

nissan_180sx_accel_eng_02_rx_noise.ebx
nissan_180sx_accel_eng_02_rx_tone.ebx
nissan_180sx_accel_exh_02_dyn_tone.ebx
nissan_180sx_accel_int_03_dyn_noise.ebx
nissan_180sx_accel_int_03_dyn_tone.ebx
nissan_180sx_decel_eng_rx_noise.ebx
nissan_180sx_decel_eng_rx_tone.ebx
nissan_180sx_decel_exh_rx_noise.ebx
nissan_180sx_decel_exh_rx_tone.ebx
Same thing... It's weird that it doesn't print in that for loop. I'm not familiair with python but I use c# everyday. So idk if its a python thing or just something wrong in my code.

daemon1
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 1922
Joined: Tue Mar 24, 2015 8:12 pm
Has thanked: 50 times
Been thanked: 1471 times

Re: Need for speed 2015 (2016) PC Audio

Post by daemon1 » Tue Apr 05, 2016 8:26 pm

looks like the script is not changed at all. Do you save it before running? Try restarting python, deleting PYC files if there are any

ehwasilii
ultra-n00b
Posts: 1
Joined: Thu Jan 12, 2017 2:11 pm

Re: Need for speed 2015 (2016) PC Audio

Post by ehwasilii » Thu Jun 29, 2017 7:15 am

daemon1 wrote:looks like the script is not changed at all. Do you save it before running? Try restarting python, deleting PYC files if there are any
A small bump, if I may.

I'm trying to do exactly the same: extract engine sounds. I've come to the point, where I successfully converted chunk you gave with your tool.
Following your instructions and editing fb3decoder script to find all the chunks I need, I'm getting an error if I comment out check (if not self.prim.desc.name=="SoundWaveAsset": return):

Code: Select all

Traceback (most recent call last):
  File "C:\Python27\fb3decoder\fb3decoder.py", line 569, in <module>
    main()
  File "C:\Python27\fb3decoder\fb3decoder.py", line 566, in main
    dbx.decode()
  File "C:\Python27\fb3decoder\fb3decoder.py", line 426, in decode
    for i in self.prim.get("$::SoundDataAsset/Chunks::array").fields:
  File "C:\Python27\fb3decoder\fb3decoder.py", line 197, in get
    raise Exception("Could not find complex with name: "+str(e)+"\nFull path: "+name+"\nFilename: "+self.dbx.trueFilename)
Exception: Could not find complex with name: $::SoundDataAsset
Full path: $::SoundDataAsset/Chunks::array
Filename: Audio/Cars/CarEngine/LAMBORGHINI_AVENTADOR/Lamborghini_Aventador_Transmission
not sure what's next.
upd: everything else in ebx is deleted

ps: pretty much thank you for all the works and tools you've done.

daemon1
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 1922
Joined: Tue Mar 24, 2015 8:12 pm
Has thanked: 50 times
Been thanked: 1471 times

Re: Need for speed 2015 (2016) PC Audio

Post by daemon1 » Thu Jun 29, 2017 1:07 pm

unfortunately I don't remember much about this now.

soulweaver
ultra-n00b
Posts: 2
Joined: Sun Sep 10, 2017 1:41 am

Re: Need for speed 2015 (2016) PC Audio

Post by soulweaver » Sun Sep 10, 2017 6:34 am

Been messing around with these, haven't gotten far because it's not my forte. For the car audio fb3decoder is only picking up sounds in the 'renders' folder, I'm assuming everything else is able to be decoded with the GIN tool, but I don't know how to get the chunk id to attempt.

I'm not a hex genius but the files that fb3decoder can detect contain 'SoundWaveAsset' and the others do not, and their file structure looks very different.
https://mega.nz/#F!W4cQlYKT!jHe3Lyf3V0OWwUjJ_34KRg here's a link to the full folder of a car if somebody smart wants to take a look at the differences.

Edit: Did some more digging, the some other car sounds come under 'OctaneAsset' and I've been able to get the chunk ids using the code already there just with a simple if statement. Going to see if I can get it to open with the Gin decoder now and rename when it's done. I'm no python genius either

Edit 2: Well it half worked. Some files that contain the 'OctanceAsset' are not decoded by GIN, but it just skips over them so no biggie, the main problem is that on some chunks the tool hangs, this is the first one it hits '144837870e001922903387d43fb710d2' which is 'Audio/Cars/CarEngine/Dodge_Viper_SRT/OctaneData/Dodge_Viper_Accel_ENG_Noise'. I'm no python genius and I can't figure out how to timeout a subprocess on 2.7 properly to just skip over it as a soft fix. Instead I'll just show you my edits on how to get the chunk id for those files.

Code: Select all

if not self.prim.desc.name=="SoundWaveAsset": return
changes to: there is probably a better way for this but whatever

Code: Select all

if not self.prim.desc.name=="SoundWaveAsset":
            if not self.prim.desc.name=="OctaneAsset": return

Code: Select all

chnk.ChunkId=i.value.get("ChunkId").value
underneath this add:

Code: Select all

if self.prim.desc.name=="OctaneAsset":
                print self.trueFilename+ "   |   "+hexlify(chnk.ChunkId)
That will output the chunk id as well as the file it corresponds too.

soulweaver
ultra-n00b
Posts: 2
Joined: Sun Sep 10, 2017 1:41 am

Re: Need for speed 2015 (2016) PC Audio

Post by soulweaver » Sun Sep 10, 2017 10:18 am

Decoded gin files seem to have some distortion or something similar behind them. Hard to explain what the sound actually is, I guess kind of like a repeating sound or like sound lag. https://mega.nz/#F!n4ME2ZSL!AjEjT9AAFUZ8tF1_I2LCZg contains an example of the distortion on the car sounds, and there are also other sounds decoded by the tool normally alongside for comparison too.

Post Reply