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: Audio playback with ASIO 24/96 resampling (Read 23410 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Audio playback with ASIO 24/96 resampling

My soundcard is an SB Audigy 2 ZS. Anybody familiar with this card know that it doesn't play back 44,1kHz material natively, it has to resample it to 48khz. Now, this wouldn't be a problem if the Audigy's resampling would be of high quality, but it isn't. HQ software resampling to 48khz results in much better results.

I'm currently using foobar2000 for playback. I'm using ASIO for output to ensure that the Audigy doesn't in any case do resampling of its own. For resampling I'm using the secret rabbit code resampler with best sinc interpolator. I believe this is the best resampler for foobar2000. For ASIO output my Audigy supports 16/48 and 24/96. Outputs like 16/96 and 24/48 don't work with ASIO AFAIK, don't know about directsound but I would rather stay away from that...

But my point with this thread is this; if I want to play back for example a 16-bit 44,1kHz 320kbps MP3, should I resample it to 16/48 or 24/96? Common sense would say that 16/48 would be the natural solution, but I read somewhere (can't remember where)  that 24-bit output of MP3 is more accurate than 16-bit. This doesn't make any sense to me now, but I think it was something about 16-bit input not being the same as 16-bit output?

While testing both these solutions I think that 24/96 sounded better, but I think this could be because of placebo since my current headphones (Sennheiser HD 201) are not quite hi-fi. I'm planning to buy much more HQ headphones (recommendations?) so I would like to know in advance what output should be better.

Any input is appreciated. 

Audio playback with ASIO 24/96 resampling

Reply #1
Quote
...if I want to play back for example a 16-bit 44,1kHz 320kbps MP3, should I resample it to 16/48 or 24/96?...  While testing both these solutions I think that 24/96 sounded better...
  If 24/96 sounds better to you (or with this particular soundcard), there is no harm in using it!  Since you are resampling in real-time during playback, the higher resolution doesn't affect file size, and since the resampling is done by the soundcard (I think), it doesn't put any additional "load" on your CPU.

Quote
...I read somewhere (can't remember where) that 24-bit output of MP3 is more accurate than 16-bit.
  1- The general consensus is, there is no benefit to using more than 16 bits*.  (Maybe some people can hear the difference, but AFAIK, it's never been scientifically proven.)  2-The original source was probably 16-bits before it was MP3 encoded. 

Quote
This doesn't make any sense to me now, but I think it was something about 16-bit input not being the same as 16-bit output?
  Hmmm...  16-bits in and 16-bits out should be digitally identical....  The only thing I can think of is if you digitally reduce the gain (i.e. with Replay Gain) then you can "loose" bits.  For example, if you reduce the gain by 6dB you only have 15-bits of resolution (assuming you're starting with 16-bits).     


* This applies to playback of normalized files.  There are benefits to recording at 24 bits...  You need headroom for things like unexpected transients, mixing, filtering, etc.

Audio playback with ASIO 24/96 resampling

Reply #2
If 24/96 sounds better to you (or with this particular soundcard), there is no harm in using it!  Since you are resampling in real-time during playback, the higher resolution doesn't affect file size, and since the resampling is done by the soundcard (I think), it doesn't put any additional "load" on your CPU.

The resampling is done in software with the secret rabbit code resampler using "best sinc interpolator". The reason I am doing any of this in the first place is because my Audigy's HW resampling isn't any good... Now I'm just thinking if I should go for 16/48 or 24/96. 
I think 16/48 should be the obvious solution, but why do I think that 24/96 sounds better? Is it just placebo?

Audio playback with ASIO 24/96 resampling

Reply #3
I have the same sound card and experienced the same dilemma. I decided eventually to go with 24 bit/96 kHz to avoid downsampling of some DVD-Audio music. Even if there is no clear difference, there's probably a psychological part to it. I couldn't hear any negative impact when 16 bit/44.1 kHz was played, and both modes of resampling passed the udial.wav test, which should be available by search. Just make sure foobar2000's resampling isn't consuming all your CPU juice  .

Audio playback with ASIO 24/96 resampling

Reply #4
Good to know that I'm not the only one in this sticky situation! 

Just make sure foobar2000's resampling isn't consuming all your CPU juice  .

No worry, foobar2000 uses only 17% of cpu if I resample to 96kHz. Old P4 3.2E GHz still going strong. 

Audio playback with ASIO 24/96 resampling

Reply #5

If 24/96 sounds better to you (or with this particular soundcard), there is no harm in using it!  Since you are resampling in real-time during playback, the higher resolution doesn't affect file size, and since the resampling is done by the soundcard (I think), it doesn't put any additional "load" on your CPU.

The resampling is done in software with the secret rabbit code resampler using "best sinc interpolator". The reason I am doing any of this in the first place is because my Audigy's HW resampling isn't any good... Now I'm just thinking if I should go for 16/48 or 24/96. 
I think 16/48 should be the obvious solution, but why do I think that 24/96 sounds better? Is it just placebo?



The 96kHz is the only sample rate you get a straight frequency response out from Audigy 1/2/4 (excl. 4 Pro) cards (in range 20Hz-20kHz). The difference between 96kHz and 44.1/48kHz is big enough you can hear it.

As MP3 supports 48kHz, you could try if the quality gets better by using this samplerate + ASIO (16/48).

As the Foobar uses plug-in technology for to adopt features like SRC and ASIO, have you tried some playback software that supports both natively? Native Instruments BeatPort SYNC is one player you could try - http://www.native-instruments.com/index.php?id=beatportsync

Juha

 

Audio playback with ASIO 24/96 resampling

Reply #6
The 96kHz is the only sample rate you get a straight frequency response out from Audigy 1/2/4 (excl. 4 Pro) cards (in range 20Hz-20kHz). The difference between 96kHz and 44.1/48kHz is big enough you can hear it.

As MP3 supports 48kHz, you could try if the quality gets better by using this samplerate + ASIO (16/48).

As the Foobar uses plug-in technology for to adopt features like SRC and ASIO, have you tried some playback software that supports both natively? Native Instruments BeatPort SYNC is one player you could try - http://www.native-instruments.com/index.php?id=beatportsync

Juha

Isn't it also possible to get 24/192 stereo playback with an Audigy 2 ZS? But I think it has to be through directsound since 24/96 is max in ASIO... But anyway, I don't have any 24/192 material so I have no use of this and upsampling MP3s to 24/192 would be overkill I think. I don't believe my poor P4 would be able to handle that either. 

Am I correct in that the Audigy uses another DAC for 24/96 and 24/192 input? Maybe that's the reason that 24/96 sounds better than 16/48 if the 24/96 DAC is more high quality than the 16/48 DAC.  I hope this DAC doesn't resample to 192kHz from 96kHz, though... 

Also, on the head-fi forums, some guy said that "waveforms in 16 bit/44.1 kHz are easier to replicate in a 24 bit/96 or 192 kHz than in a 16 bit/48 kHz raster.",  but he didn't explain why so I don't know how reliable this  piece of info is.

As for the playback software that you recommended, I'll try it out tomorrow, but so far I'm happy with foobar2k+components. 

BTW, I just purchased Sennheiser HD 595 headphones.  I should receive them tomorrow. I think I'll be able to tell the difference better with these headphones than with my current HD 201s.

Audio playback with ASIO 24/96 resampling

Reply #7
Isn't it also possible to get 24/192 stereo playback with an Audigy 2 ZS? But I think it has to be through directsound since 24/96 is max in ASIO...
Yes, it is possible. And no, it doesn't have to go through direcsound. I've played it using Kernel Streaming

 
Am I correct in that the Audigy uses another DAC for 24/96 and 24/192 input?
No, you're not correct. It's the same 'p16v' chip that natively handles 24/96, 24/48, 24/44.1 and 24/192 formats. Although, 24/44.1 won't work in my Audigy 2 ZS (SB0350).
If age or weaknes doe prohibyte bloudletting you must use boxing

Audio playback with ASIO 24/96 resampling

Reply #8
Hmmm...  16-bits in and 16-bits out should be digitally identical....
Not with an mp3.

kutjong, you heard right - it is theoretically better to decode mp3s to 24-bits (if you have a 24-bit sound card). It saves an extra level of rounding or dither at 16-bits on the output. The difference is only audible with extreme test samples, but it can't hurt (as long as it works correctly).

Cheers,
David.

Audio playback with ASIO 24/96 resampling

Reply #9
While OP mentioned Secret Rabbit Code... I downloaded foo_dsp_src9.dll (v1.03) and SRCdrop V0.6 (based on libsamplerate 0.1.3). It seems that quality of foobar plugin is inferior to SRCdrop. What version of libsamplerate this plugin uses?

Audio playback with ASIO 24/96 resampling

Reply #10
Yes, it is possible. And no, it doesn't have to go through direcsound. I've played it using Kernel Streaming

Okay, good to know! But I'm afraid that 192kHz resampling is way too much for my old P4.


kutjong, you heard right - it is theoretically better to decode mp3s to 24-bits (if you have a 24-bit sound card). It saves an extra level of rounding or dither at 16-bits on the output. The difference is only audible with extreme test samples, but it can't hurt (as long as it works correctly).

Cheers,
David.

Exactly what I thought.

While OP mentioned Secret Rabbit Code... I downloaded foo_dsp_src9.dll (v1.03) and SRCdrop V0.6 (based on libsamplerate 0.1.3). It seems that quality of foobar plugin is inferior to SRCdrop. What version of libsamplerate this plugin uses?

It does seem that foo_dsp_src9.dll is quite old... Winrar says that the package was last modified on 5.6.2006 so it has to be either version 0.1.2 or older since 0.1.2 was released in 2004 and 0.1.3 recently some months ago... It just seems that the author hasn't bothered to update the foobar plugin to use 0.1.3 yet. I hope he'll do it in the future because the change from 0.1.2 to 0.1.3 seems very worthwhile.  And I suppose this is the only plugin for foobar that uses SRC?

Audio playback with ASIO 24/96 resampling

Reply #11
Out of curiosity I emailed the author of SRC and asked if he was going to update the plugin and this was his reply:

Quote
Thanks for the interest in the foobar plugin.

Basically, the situation is this:

- I don't use windows, nor do i use foobar.
- Making that plugin took up many hours of my time.
- I am a highly paid professional software engineer and I value my
  time even more highly than my employer.
- I have so far received 8 payments of $10 for this plugin.
- $80 does not come anywhere near paying me for the time I have
  already spent on this.

Unless I get a whole bunch of donations, I don't see much chance of
a new foobar plugin happening. Furthermore, noone else can legally
do a plugin either because I own the copyright to the Secret Rabbit
Code resampler and its license is not compatible with the foobar
itself.

Regards,
Erik


So anybody want to gather up for donations? 

Audio playback with ASIO 24/96 resampling

Reply #12
Some people wrote that minimum phase filters are better than linear phase (SRC, SSRC, PPHS... are linear phase) I wonder is there any available minimum phase resamplers for fb2k. It seems there isn't.

Audio playback with ASIO 24/96 resampling

Reply #13
@kutjong
I did some tests of resample plugins available for foobar some time ago. If you are interested, you can take a look here.
If age or weaknes doe prohibyte bloudletting you must use boxing

Audio playback with ASIO 24/96 resampling

Reply #14
Some people wrote that minimum phase filters are better than linear phase (SRC, SSRC, PPHS... are linear phase) I wonder is there any available minimum phase resamplers for fb2k. It seems there isn't.

I think linear phase resampling is the current de facto standard in software resampling, it's also very mature. 

I hope the author of SRC would update the plugin since experimenting with SRCdrop (which uses 0.1.3) I found its resampling to be improved over 0.1.2 (placebo anybody? ) as 0.1.3's resampling should be significantly better, according to changelist.

Audio playback with ASIO 24/96 resampling

Reply #15
I hope the author of SRC would update the plugin since experimenting with SRCdrop (which uses 0.1.3) I found its resampling to be improved over 0.1.2 (placebo anybody? ) as 0.1.3's resampling should be significantly better, according to changelist.

I doubt it. By the way, r8brain has freely available dll that any can use in their products. Anybody want to create foo_dsp_r8b.dll? 

Audio playback with ASIO 24/96 resampling

Reply #16
I doubt it. By the way, r8brain has freely available dll that any can use in their products. Anybody want to create foo_dsp_r8b.dll? 

I found a nice website that has SRC comparison and luckily, SRC 0.1.3 is included and performs really good. r8brain minimum phase is also included and it does seem to perform a little better than SRC, especially in "passband" and "transition".

Audio playback with ASIO 24/96 resampling

Reply #17
I also software resample to 48kHz, 24bit in Foobar to overcome limitations in my soundcard. (See BTW)


Currently I just use the PPHS resampler that came with foobar (v0.9.3.1). Previously with foobar v0.8xxx I used to use the SSRC resampler. I've noticed that you can now download an SSRC resampler for foobar V0.9xx here (http://otachan.com/foo_dsp_ssrc.html).

Which resamlper do people recommend for realtime (playback in foobar) resampling from 44100 to 48000Hz?

Thanks for any tips.



BTW this has nothing to do with the actual fundamental limitations of 44100 or 16 bit, it's just something that sux in my soundcard implementation. I've done RMAA loopback tests and it just doesn't perform very well (in terms intermodulation distortion) unless I use 48000+ and 24+ bit.

Audio playback with ASIO 24/96 resampling

Reply #18
All right, I think I've reached conclusion on getting the best audio playback on Audigy 2 ZS. First of all, 16/44,1 and 16/48 should be avoided; these pass through the DSP and will get resampled (even 48khz source) to be in sync with the chip's oscillator. So what is the best solution, then? As most Audigy 2 owners know (or not) the card has a P16V chip, that handles 24/96. So what we want to do is pass the audio stream directly to this chip. From what I know this chip works best with 24/96 (it was designed for it, I think) so the optimal solution is to playback @ 24-bit and resample to 96kHz. I'm not sure how 24/192 works on the Audigy 2, my guess would be that it's resampled to 24/96...

As for resampling to 24/96, it seems that the best software resampler is the r8brain Pro which has minimum-phase resampling. The downsides of this software are:
  • It's not free
  • It's not available as an on-the-fly converting plugin, instead it resamples wav files
The best free resampling software seems to be Secret Rabbit Code 0.1.3 which is a linear-phase resampler. Sadly this version isn't used in the fb2k plugin as posted before, and it seems that 0.1.3 is used only by SRCdrop 0.6 which works the same way as r8brain.

So if you want best playback with CD-DA as source for example, it seems that this procedure would be the best:
  • Rip audio to 16/44,1 PCM wav
  • Resample to 24/96 using either r8brain Pro or SRC 0.1.3
  • Encode to either FLAC or Monkey's Audio or keep as wav
  • Play back through either 24/96 ASIO or kernel streaming to avoid the DSP ruining the game
As for MP3, it's limited to 48kHz as max (in file itself). So if you use CD-DA as source your best bet would be to encode to 48kHz and play back with 24-bit precision or encode to 44,1kHz and resample using a on-the-fly  plugin to 96kHz. I don't know which one will sound better, because there doesn't seem to be any really good on-the-fly resamplers available.

Very complicated isn't it? It goes without saying that the Audigy 2 ZS is not a suitable soundcard for music, I'm using mine only because of games.

Audio playback with ASIO 24/96 resampling

Reply #19
kutjong, resample some WAV (16/44.1) file to 24/96 with SRC 0.1.3, then with built-in PPHS ultra (or current foo_dsp_src). Can you ABX these two files? If you can't, there is nothing to worry about.

Audio playback with ASIO 24/96 resampling

Reply #20
kutjong, resample some WAV (16/44.1) file to 24/96 with SRC 0.1.3, then with built-in PPHS ultra (or current foo_dsp_src). Can you ABX these two files? If you can't, there is nothing to worry about.

Yup, I'm going to ABX tomorrow when I receive my Sennheiser HD-595s. I think I'm going to try it out with Creedence Clearwater Revival - Platinum, remastered wonderfully in 24-bit.

I really hope that I'm going to discover difference, I've wasted so much time on this already! 

Also, anybody interested in getting the SRC fb2k plugin updated to 0.1.3 should really check out this thread.

Audio playback with ASIO 24/96 resampling

Reply #21
No, you're not correct. It's the same 'p16v' chip that natively handles 24/96, 24/48, 24/44.1 and 24/192 formats. Although, 24/44.1 won't work in my Audigy 2 ZS (SB0350).

What do you mean it won't work? You mean that it's resampled to 48 kHz, or not played back at all? RMAA 24/44,1 shows excellent results for me.

As for ABX, I didn't receive my HD-595s today as I was expecting. So ABX will have to wait until weekend or next week, cause tomorrow I'm going to help my friend fix his hometheater. He's quite the noob and is using onboard audio with software decoding for DD/DTS for crying out loud! 
I think I'm going to try to sell my A2 ZS to him and get an X-Fi instead. 

Audio playback with ASIO 24/96 resampling

Reply #22
I forgot to mention one important fact. I'm not using Creative's driver, but the kX Audio driver instead.
Maybe that's why I can't play 24/44.1 through Kernel Streaming. They say that 24/44.1 support is experimental and may not work for certain card models. Anyway, I can play that format through DirectSound.

This driver exposes a device kX Wave SB0350 10k2 [b000] HQ which sends audio data directly to p16v. And the I2S output codecs always operate at 96000 rate (they say that the driver doesn't change that).

Below you can see that I disabled the DSP output, and playback to the mentioned device through Kernel Streaming interface an APE image of a CD resampled to 96000 Hz.

If age or weaknes doe prohibyte bloudletting you must use boxing

Audio playback with ASIO 24/96 resampling

Reply #23
Maybe 24/44,1 is the best solution if using CL drivers then? 

I just don't know... Just gonna have to wait for ABX.

Audio playback with ASIO 24/96 resampling

Reply #24
As for resampling, I talked to the author of SRC and this is how his resampler does it:

Quote
With the resampling technique I use, there will be no difference in the
accuracy when upsampling. When downsampling to say 32kHz and 22.05kHz
obviously there will be a difference because more information will be
lost when going to 22.05kHz that when going to 32kHz.


In other words, 24/48 should be quite optimal if you have to resample. I'm yet to have a look into 24/44,1 support with CL drivers. Undoubtedly the best solution would be to not use resampling at all. It is not clear though if 24/44,1 is sent straight to P16V if kernel streaming is used.