I did not find a download for XAudio 2, or is adpcm.exe in the Direct X SDK?
Edit: ok, seems to be in the current Win 8 SDK, let's have a look...
Edit2: Yeah it's in the Win 8.1 SDK as well. ~ let's have some fun
Edit3: It still works (at least for music)
adpcm.exe -b 128 uncompressedPCM.wav compressedADPCM.wav
Thanks for pointing me into the right direction.
Ok, research post incoming: (no info for the average user here, just for future reference)
For the music found in music and character sounds:
The target format for SkullGirls is the codec "XAUDIO2 ADPCM" in the container WAV with a fixed bitrate of 385 kb/s (for music) / 192 kb/s (for character sounds) and slightly varying sample rate (around 44,1 k) and a fixed block size of 140 samples (music) / 70 samples (sound).
The required FACT chunk is missing (according to Microsoft docs it is required in any non-uncompressed-PCM file to be true to the standard, but not for XAUDIO2 ADPCM) but it doesn't matter if it's streamed.
Additionally loop information is (probably) given by the SMPL chunk (or it's just a leftover from production)
I'm guessing but I think a low block size is needed because a loop can only occur on the end of each block: see
here for a technical overview
Sadly the encoder adds silence (something that is not desired when looping) if the music data has ended before the last block is filled.
(if there is no loop it doesn't matter if there is silence at the end)
A block with 140 samples is ~3,2 ms long
A block with 70 samples is ~1,6 ms long
Those seem reasonable.
A block with 2048 samples (ffmpeg, old) is ~46 ms long
Way too long. Speeding up the source material will distort the music, this was a problem in one of the updates if I remember correctly.
(at least the extracted files were ever so slightly distorted when playing with VLC, now they aren't anymore, maybe it was just my imagination)
The sample rate was probably slightly changed to fit the samples into the last sample block without changing the play speed.
@
Mike_Z:
Thank you for your tip, I really appreciate not being C&D'd.
The problem is that I found no way to get the block alignment to 140 or 70 (with or without CoolEdit) using any encoder (see above)
Using a normal MS ADPCM file (block size 2048) only gives me static with a faint noise of the actual music.
ffmpeg has the value 2048 (older versions) or 1024 (newer versions) hardcoded in the source, I don't really want to recompile it, there should be another way.
So how did you work around that? Pleast don't let it be Soundforge or Audition...
Edit2: adpcm.exe seems nice, let me have a look at that...
Edit3: Look up at the other edit
Other things I stumbled upon:
During the beta Wavosaur was used when the music was uncompressed (2013-07-19 or better known as the day of the "DAFUQ 700 MB patch")
My guess is that XACT or the XAudio SDK was used for the XBox release (xma files in the Xbox Version) and another encoder for PS3 (mp3, lame, if I remember correctly)