Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Wavpack question (Read 3508 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Wavpack question

Is it possible to use Wavpack to remap the channel order from a 5chn L R RL RR C file to a "correct" channel order (L R C (lfe non existant) RL RR ?) so it plays back every channel in the right place (in foobar)?

or should I just use wavewizard to add a blank LFE and fix the channel order, and then proceed to encode that 6 channel file instead?

a quick small track (1 min long) that I tested actually ended up being smaller in 6 channel then it was in 5 channel.
Quote
E:\night\02 - Lumpy Gravy.wv
samplerate = 96000
channels = 5
bitspersample = 24
format = Integer
codec = WavPack
version = 4
bitrate = 6815
compression = Lossless, High, Extra
----------
6238640 samples @ 96000Hz
File size: 55 363 760 bytes



E:\night\02 - Lumpy Gravy(1).wv
samplerate = 96000
channels = 6
bitspersample = 24
format = Integer
codec = WavPack
version = 4
bitrate = 6511
compression = Lossless, High, Extra
----------
6238640 samples @ 96000Hz
File size: 52 890 390 bytes


I would actually just go and recompress it just to check, expect that I'm on low on HD space and it takes insanely long using the highest comrpession which I use (this 1 minute track took 2x 20 mins to encode).

It's also interesting how i got smaller bitrates with an added blank LFE channel. How did that happen?

Wavpack question

Reply #1
WavPack compresses multichannel audio by grouping the channels into mono or stereo streams according to the Microsoft standard order, which is (L, R, C, LFE, RL, RR). So, the first two channels get grouped together and the 5th and 6th channels get grouped together. If you compress a track that has the order (L, R, RL, RR, C), then RL and RR are encoded as separate mono tracks (which is sub-optimal).

On the other hand, if a blank LFE is added and the order changed to the "correct" order, then the rear channels will be encoded as a stereo pair, which improves compression. The silent LFE compresses to virtually nothing, so there's little wasted by having that.

BTW, I'll bet you can get virtually the same compression using -hx instead of -hx6 (if that's what you're using), and it will be a little less insanely slow. 

Wavpack question

Reply #2
WAVEFORMATEXTENSIBLE would also support flagging the presence of the correct channels, but the resulting order would be R L C RL RR. I'm not sure that WavPack supports this.

Wavpack question

Reply #3
Quote
WAVEFORMATEXTENSIBLE would also support flagging the presence of the correct channels, but the resulting order would be R L C RL RR. I'm not sure that WavPack supports this.
[a href="index.php?act=findpost&pid=356984"][{POST_SNAPBACK}][/a]

Yes, WavPack supports the WAVEFORMATEXTENSIBLE header. In fact, Microsoft claims that a audio file with more than 2 channels that doesn't have one is invalid!

However, I just noticed that I never put in an API to allow the application to read the stored channel mask, so unless the foobar guys added that, there's no way that foobar can know which channel(s) are missing.