PCM better than WAV?
Posted by: MangoMonkey on 29 December 2013
Anyone else like to repeat this test to ensure I'm not imaging things?
If this works and is stable, I'll be free to store music in flac format - my pc is more than capable of converting flacs to PCM in the fly.
I keep threatening to turn all my uServe wav rips to .flac, which it can ably convert to wav on the fly.
Why not?
Mango, can you say exactly which format you are converting to since both AIF and WAV use PCM albeit the bit order is reversed between the two formats.
By the time the streamer sends the file to the player there are no headers etc, it's purely the PCM data with a defined MIME type. You can see this if you look at the logs on network or UPNP server.
Simon
I rip my cds using dbpoweramp to wav files. I configured asset to convert wav to Lpcm on the fly for this test.
I'll repeat the tests tonight when things are more quiet.
I understand what you're saying about the mime headers. Could you elaborate what you mean by streamer and player? I'm using the NDX standalone.
I suspect when PCM data is transmitted from the upnp server to NDX, the ndx doesn't have to do the work of converting wav to pcm to be given to the dac.
Do you have a link to a wav spec. Wav is just supposed to 'wrap' pcm. If you truncate the headers, is it exactly the same data?
In my response, the term 'streamer' referred to the UPnP server that streams the media to the network player - the NDX.
Yes the PCM is typically the same... I say typically because WAV is used in industry rather than just in consumer audio, and there are several different PCM coding types including non linear variants like uLaw and aLaw as used in IP telephony.
If you look on Wikipedia for PCM, LPCM, WAV etc, you will see many common references and the valid MIME types used in http. (Ie for DLNA UPnP streaming)
Simon
Wat, on a RIFF file such as WAV and AIFF, removing the header... Or as you put it the wrapper.. Is trivial, the file itself simply consists of separate chunks attached together. Simply use the DATA chunk with the PCM... This is done by the application reading a WAV/AIFF file.
BTW you might not want to hear this, but when you convert the PCM to SPDIF (and the same for async USB audio I believe) you are putting a new 'wrapper' on the PCM and you are chopping up the PCM up far more than what it was when the PCM was nicely assembled in a single contiguous chunk in the file.
Interesting observation mangomonkey re lpcm vs wav transcoding in asset.
my files are stored as alac, and I find transcoding to wav to unitiqute sounds better overall as lpcm whilst initially appears to sound 'cleaner', loses body especially on the low to low mids. This perhaps may be the lowers noise floor; though appreciate that it is in my case only.
I am yet to go to a raspberri pi as the upnp so that might be the next thing.
Wat, I guess it is not so much the header is removed - as the header is needed for the reader - or the end DAC or SPDIF generator to correctly interpret the encoding of the PCM samples in the data part or chunk of the file. This tells the reader what each sample relates to in terms of stereo channel, sample frequency and word length. With out this the PCM could get jumbled up.
I think ( can't confirm without looking up) that with USB 2.0 file transfers are simply that - so the file structure is copied across in exactly the same way as was stored on the disc file.
With the SPDIF - the PCM samples are chopped up into many frames with repeating headers. Again I think - can't confirm without looking up - that this is similar with Async audio over USB.