Is there no way to set output frequency in VGMStream?
You'd need to change the frequency in the file header. vgmstream reads the header information and then plays it at that. Changing the output frequency won't increase the fidelity but instead make it playback faster or slower.
Now that works. However I have one question: what steps should I take when deinterleaving a .xvag with the script you gave me, especially when dealing with a .xvag file that has a different header like this one? I mean, sure, I might be avoiding these problems by myself sometime but I still need some tips.
You need to adjust the script as needed for the xvag files.
Header size can be found at offset 0x06
If you look at the code you just posted, "01 74" is the header size so you'd put
set HEADER 0x174
And if you look, at offset 0x175 we see the first "FF FB" which is the MPEG frame flag. So that also confirms that is the correct size of the file header.
The number of layers can be found at offset 0x2B. However this number needs to be divided by two.
So if you see "08" at 0x2B you put
set LAYERS 4
If you see "06" at 0x2B you put
set LAYERS 3
To work out the size of a single interleave block,
1. Go to the very end of the file in your hex editor. It should be a block of 00s
2. Select and highlight all of the data from the last 00 in the file all the way up until you reach another block of 00s (Your highlighted data should start with FFFB and end with the last 00 of the file)
3. Copy and paste this into a new file in your hex editor.
4. Scroll to the bottom of the newly created file. The final offset number will represent a single interleave block for that file.
This will give you the INTSIZE so the script can successfully deinterleave the file.