Upsampling prior to playback?

Feb 14, 2005 at 11:24 PM Thread Starter Post #1 of 11

TheWayofWay

Head-Fier
Joined
Sep 25, 2004
Posts
86
Likes
0
I think many of us here upsample in foobar2000 when playing back our files. I use wave upsampled to 192khz and I think theres a difference. My question is: Is it possible to upsample the file beforehand? Or are we stuck using foobar's on-the-fly SSRC resampler?
I tried out audacity and a wave file. Compared the 44.1khz wave to the converted 96khz version (source was the original 44.1khz) and I'm almost certain I can hear a difference in bass but I can't be sure.

Is there anybody out there that has done this or knows about a process like this? Converting to 24-bit/192khz before hand may save a few CPU cycles right?
 
Feb 14, 2005 at 11:42 PM Post #2 of 11
I do not upsample in Foobar2000. My DAC, a Benchmark DAC1, does that, and I'd much rather it take care of the upsampling than my computer (which requires additional CPU time, and creates even more data to be fed through the bottleneck leading to the DAC itself). The DAC1 probably does a better job at upsampling than Foobar too.

When I was using an E-MU 1212M as my source (rather than as transport to my DAC1 source, as it is now) I tried upsampling to 192K, but liked the sound of the standard 44K rate better (I think the same rule applies here...un-upsampled music data is much smaller, and therefore less prone to jitter or other errors, when fed to the DAC in its original state).

The only case where I noticed an improvement when upsampling was when using an Audigy2 at work...it sounds much better to upsample (using Foobar's SSRC) to 48K in Foobar than to let the awful Audigy2 resampling hardware do it.
 
Feb 15, 2005 at 9:42 AM Post #3 of 11
Quote:

Originally Posted by Scrith
The DAC1 probably does a better job at upsampling than Foobar too.


Everyone doesn't have a dac1. I'd be interested to know of a program that could upsample the file in very high quality.
 
Feb 15, 2005 at 3:11 PM Post #4 of 11
upsampling can absolutely be done before playback. In fact, this is the best way to do it. However, I don't think there is a proper file format for storing audio above 48kHz sample rate?

By doing the upsample ahead of time you will be able to acheive the best possible conversion. Using Matlab (or something similar) you could use a practically infinite tap filter convolved over the entire song instead of a 88sih tap filter convolved over a few milliseconds of audio at a time. You could also do cool things like ridiculously high order spline interpolation that would be absolutely impossible to do in real time with current CPUs.
 
Feb 15, 2005 at 3:50 PM Post #5 of 11
Thanks for the info jefemeister. I'll look into matlab and other things... but wouldn't wave be able to handle higher samples? I've seen wave pack (wv) with 96 khz, I think 24 bit as well.
 
Feb 15, 2005 at 3:55 PM Post #7 of 11
FLAC can also take 24/96 audio.

IMO upsampling prior to playback is a big waste of space.
 
Feb 15, 2005 at 4:02 PM Post #8 of 11
It could save CPU time I guess. Hard drive space is cheap nowadays so I guess it could be feasible. I tried out foobar's diskwriter and I think it works, 24/192 wave files. I'm sick now so I don't really trust my ears.... can anybody else try this?

Another thing, sometimes when I'm typing a lot I get clicks and stutters in audio. I'm really unsure as to what this is. Sometimes the audio even drops out and I have to pause/unpause to get it working again. I use the wireless elite duo. What is this because of? Any experiences/ideas?
 
Feb 15, 2005 at 4:02 PM Post #9 of 11
I would agree that upsampling realtime on the computer using a foobar or winamp isn't very good sounding. Doing it via program would yield better results. As for storage, you could put it on DVD-R as FLAC.
 
Feb 15, 2005 at 4:52 PM Post #10 of 11
Quote:

Originally Posted by some1x
Is there any benefit over foobar's on-the-fly upsampling?


For the casual user, pre-upsampling probably does not make sense. Unless there's some sweet program I don't know about it involves using something like Matlab (which is *very* expensive unless you're a student which is still around $100) and requires an understanding of FIR filter design and application, programming, etc.

But in the end, you will get 2 main advantages

1) Better Soundquality. Realtime upsamplers are constrained, obviously, to work in real-time. This severely limits their capabilities. Also buffers have to be a managable size which also limits how you can filter. I don't know how foobar works exactly, but in an external DAC the data comes in as a single stream. At any given time you only know past inputs; you have no idea what the future data is. By preprocessing it, you have knowledge of the entire song at any given time. This also greatly improves filtering capability--especially if you're doing the upsample in the time domain. Also Matlab, as an example, does all it's calculations as 64 bit floats so there is basically no chance of any quantization/truncation errors and a much better dithering job can be done to get back down a reasonable number of bits for the output. The possibilities are endless when you're no longer concerned with doing things in "real-time." Processing a song as I mention here could easily take up all your CPU/RAM for an hour or so.

2) Less CPU load. Yes, you're basically moving the same amount of data through the system, but there is a lot less math going on if the upsampler is removed.
 
Feb 15, 2005 at 6:11 PM Post #11 of 11
foobar's SSRC sources:
http://shibatch.sourceforge.net/download/ssrc-1.29.zip

works with 64bit floats when in 'slow' mode, otherwise 32bit float.. I haven't read through and understand in depth the whole source code but I can assure you it's not 88ish tap.. far more than that.. in 'slow' mode it's stopband attenuation is 170dB.. and it rolls off pretty fast..

check it out!

regarding ASRC ICs, those have 4K FIFO in front of them I believe.. they do know both past & future samples.. they work on the zero hold basis, but they do so from 2^64 times upsampled signal(!)..
 

Users who are viewing this thread

Back
Top