HydrogenAudio

Hosted Forums => foobar2000 => General - (fb2k) => Topic started by: Guillaume on 2002-12-22 16:10:35

Title: Resampling, 17% CPU?
Post by: Guillaume on 2002-12-22 16:10:35
When running Foobar 16bit/48000Hz it takes about 17% of my CPU cycles. Is this normal?

Foobar uses 2.460kB of memory

AMD Athlon 1200MHz
256MB Ram
Creative SB Audigy Player
Windows XP NL SP-1
Title: Resampling, 17% CPU?
Post by: Bedeox on 2002-12-22 19:01:46
This is normal. SSRC resampling is computationally expensive.
In fast mode, it takes about 10%, in slow 17%.
That is much faster than Winamp2 resampler, which was in slow at 28%,
in fast at 20%.
Title: Resampling, 17% CPU?
Post by: musicmusic on 2002-12-22 23:54:25
Fast mode I get 0% usage, normal 17%, so your figures are correct, as I have the same CPU
Title: Resampling, 17% CPU?
Post by: treech on 2002-12-23 00:20:54
and i'm guessing u can't really distinguish between fast/normal in terms of soundquality... or i'm i way off base here and there really is a huge difference ?
Title: Resampling, 17% CPU?
Post by: Guillaume on 2002-12-23 00:25:20
Quote
and i'm guessing u can't really distinguish between fast/normal in terms of soundquality... or i'm i way off base here and there really is a huge difference ?

I don't have the ears or the material to hear the difference, but I was just playing with the settings.

But I would like to know what the difference between the normal and the fast mode is...
Title: Resampling, 17% CPU?
Post by: mvdb on 2002-12-23 00:43:16
Quote
This is normal. SSRC resampling is computationally expensive.
In fast mode, it takes about 10%, in slow 17%.

It takes 00% CPU in both modes on my computer. I've got an Athlon XP 2400+.

I double checked wether it was enabled.
Title: Resampling, 17% CPU?
Post by: mithrandir on 2002-12-23 00:55:51
What's the point of resampling if you are going to lose that many cycles?
Title: Resampling, 17% CPU?
Post by: musicmusic on 2002-12-23 00:58:47
Quote
It takes 00% CPU in both modes on my computer. I've got an Athlon XP 2400+.

I double checked wether it was enabled.

Did you definitely enable it in the dsp section? Otherwise that sounds good..
Title: Resampling, 17% CPU?
Post by: floyd on 2002-12-23 01:37:12
I get 00-01% cpu usage with fast mode in both fb2k and winamp2.  p4 2.12 ghz.

fb2k seems to use consistently less memory though.  Then again I don't use huge playlists to really test its limits.
Title: Resampling, 17% CPU?
Post by: kode54 on 2002-12-23 04:54:11
I don't have the ears or materials or equipment to compare, either. Although, my ears tell me things sound better with the resampler disabled. Live! card, doesn't matter what the drivers are, unless the resampling is performed through DSP microcode, which I sort of doubt... Though Crystal SoundFusion apparently does that, its resampling is simple linear interpolation.
Title: Resampling, 17% CPU?
Post by: Bedeox on 2002-12-23 09:32:45
1) Resampler works only if you play something with frequency other than what is set in its options
2) Only difference is FFT window width. I CAN hear a difference with very few samples.
3) It's not about what is "better", but what is closer to reality.
4) All soundcards use DirectX resampling. It is lower quality than SSRC.

My specs:
Athlon Thunderbird 1000
Windows XP SP1 + Patches
SoundBlaster Live! Value CT4670
kX drivers 5.10.0.3528 ALPHA
Title: Resampling, 17% CPU?
Post by: marcan on 2002-12-23 11:04:04
For me, the internal resampling of XP (with resample quality sets to optimal) makes a better job...

Here is the material:
Emagic emi 2|6, 24/96 DAC converter (thru USB). The conversion rate is forced at 96 khz.
http://www.emagic.de/english/products/hard...ware/emi26.html (http://www.emagic.de/english/products/hard...ware/emi26.html)

Monsoon MM-2000 for the medium and high frequencies
http://www.monsoonaudio.com/index_mmedia.htm (http://www.monsoonaudio.com/index_mmedia.htm)

Vandersteen speakers + Harman / Kardon amplifier for bass and sub bass.

Sony Vaio with XP Pro SP1+ several updates.
Audio quality conversion sets to optimal.

Foobar v 0.3
Title: Resampling, 17% CPU?
Post by: kode54 on 2002-12-23 11:17:32
Quote
4) All soundcards use DirectX resampling. It is lower quality than SSRC.

Whatever gave you that idea? I had the impression that most cards with their own synthesis DSP resampled in hardware. My AWE64 certainly sounded like its synthesizer was doing that so-called patented 4-point interpolation. Of course, that was only exposed through use of the EMU8000 synthesizer, which the drivers only used for MIDI, since it only had access to on-card memory. The 10kX series can map system memory, and I assumed that the synthesizer was responsible for standard WaveOut as well as DirectSound. I cannot speak for other cards, but the Crystal SoundFusion INF scripts mention some SRC as well as what dB error it causes, but no hint as to what type of interpolation. I assume its in DSP microcode, so its possibly linear, since it has to have the capacity to resample all of the channels it mixes. It also has no hard limit to channels, just a fixed limit configured in the registry, depending on the chip model. I assume they only differ in clock speed.
Title: Resampling, 17% CPU?
Post by: russ on 2002-12-23 12:16:13
If your sound card driver says it can only accept 44.1KHz and DirectX is getting 96KHz from the application then DirectX will resample.  Same with bitrates. The AWE64 is 16/44.1 only, so if you upsample to anything else it'll only get downsampled by DirectX. Quoth MSDN:

Quote
When a client requests connection of an audio stream to a device, KMixer queries the device to determine whether it supports the incoming rate. If the device supports the incoming rate, KMixer passes the incoming stream to the device without SRC. Otherwise, KMixer maintains the current output rate, and does the following:

   * If the device supports the current output rate, KMixer uses SRC to convert the input rate to the current output rate.
   * If the device does not support the current output rate, KMixer maintains the current rate and fails the client's request to connect the audio stream to the device.


Quote
Linear interpolation is the default for the DirectSound versions that ship with Windows 98/Me and Windows 2000. In Windows XP and later, the default is high-end multipoint interpolation.
Title: Resampling, 17% CPU?
Post by: Bedeox on 2002-12-23 13:33:34
Sorry for sounding stupid, I meant:
4) All soundcards use DirectX for resampling if they don't support the fomat they have to play.

Quote
Linear interpolation is the default for the DirectSound versions that ship with Windows 98/Me and Windows 2000. In Windows XP and later, the default is high-end multipoint interpolation.

Yes, but it is still lower quality than SSRC.

Anybody knows a good cheap non-resampling soundcard? Terratec?
Title: Resampling, 17% CPU?
Post by: kode54 on 2002-12-23 15:53:01
I was referring to the EMU8000 synthesizer, not the SB16 compatible sound chip on the card, which is capable of various rates up to 45454Hz.

And at least the synthesizers on Creative's cards are capable of resampling and mixing. Resampling seems like a necessary part of mixing to a single signal of a fixed sample rate. Of course, there are some old sample-based synthesizers that just multiplexed the samples.


And sorry for misunderstanding point 4. I just assumed all modern cards were capable of playing at least one stream at any arbitrary sample rate, and those that are capable of multiple hardware streams possibly process the signal at a fixed sample rate, performing the necessary resampling internally. Whether that resampling interpolates when the playback rate does not match the processing rate is up to the designer of the hardware, and in the case of DSPs such as the Crystal SoundFusion series, also the DSP code programmer(s).

I know only of the inner workings of one rather limited DSP, which uses ADPCM samples and gaussian interpolation, and even that knowledge is limited. In this implementation, at each output sample cycle process, a fixed point pitch counter is decremented by the sample frequency. Whenever that counter is less than zero, samples are decoded and fed into a rotating buffer, until the counter is zero or greater. Then the gaussian interpolation is used based on those samples and the contents of the buffer. Rates as low as 12KHz are interpolated somewhat accurately, while rates as high as the legal maximum of 128KHz are sort of low pass filtered by the window including portions of surrounding samples. Ahhh, maybe Sony should make sound cards... And maybe I should stop nearly talking out of my ass.

EDIT: Non resampling will sound worse than resampling. Pull out your old SB16, play some 11025Hz files, wonder why you're getting harmonics or wtf. There's your non-resampling.
Title: Resampling, 17% CPU?
Post by: Artemis3 on 2002-12-23 17:34:41
The previous post is flawed. Resampling is not necesarily better than switching the frequency oscilator to the proper rate, and most of the time it IS better. The SB16 sounds bad, because that card was not well made and it is very noisy. If you want a real challenge, go get an Ensoniq PCI sound card, or 16bit cards made by TurtleBeach, for example.

Some little facts to be reminded: The original Ensoniq PCI used the ES1370 chip, this was a PCI card with astounding sound quality and very low noise. Did not resample, had 4 channels with cinch (RCA) outputs, and before it was bought by Creative into oblivion, these cards used to sell at about 25$ each. Lets remember, by then, Creative already had its 4 channel Emu10k based Sound Blaster Live costing about 100$+, and its quality very low in comparison due to its poorly designed internal resampling engine.

A bit earlier before Creative bought Ensoniq, they also bought EMU. And then decided to base all their future cards on the EMU chips. So you see EMU8k for midi in SB64, EMU10k on Sblive, an EMU10k2 in Audigys.

Ensoniq was simply too great and cheaper so they had to kill it, and they did. Before they emptied their stock of ES chips, they relesed a slight modified ES1371 chip which simply was a stripped down 2 channel version. Some were sold as SB64 (something) or SB128, even these stripped down versions had the legendary Ensoniq quality.

Furthermore, the current REAL 24/96 cards don't resample unless told either. The EMU chips were designed to work in a locked 48khz sampling rate, and Creative will love to sell you that this is a "Feature" and not a limitation, which it really is.

In the past, soundcards would sound bad and noisy because they were not properly shielded and/or used low quality components, now add on top of that badly designed resampling, sometimes done in software sometimes done in hardware, and on top of that some companies will sell it like it were "Gold" or "Platinum".

Creative is essentialy the Microsoft of sound cards, they sell you low quality, but market it like gold. The art is in the salesman, not in the product.

And to finish it off, not even the midi part of these cards are worth either. Do try some Roland or Yamaha chips/modules first, then go try to listen to midi sound out of an SBLive, you will then understand.

It is of my opinion, based on the history of Creative, that this brand is to be avoided like the plage. Even a cheap onboard AC97 would be preferable, at least it would come at the right cost...

Furthermore there are 24/192 cards being released as well, from the REAL brands, not playback only fakes costing ironically the same price than the real ones. And these are multichannel, and will NOT resample unless told so. And their resampling engines are a lot better should it be used. And won't steal your PCI bandwidth and render your whole system unstable. Do you know about that nice reputation the Live and friends have to make a perfectly stable systems into a nightmare? And do you people still hand out 150$ for that?...

Reserch, people, research, don't let the salesman fool you, twice...
Title: Resampling, 17% CPU?
Post by: Artemis3 on 2002-12-23 17:53:47
I did some tests and i have found both foobar2k and winamp2 use about 14% cpu (average) when playing a 44.1 khz stereo wav file using SSRC output and not in fast mode.

My system specs:

CPU: AMD Duron 1300
MB: MSI KT3 Ultra with PC2100 DDR memory (256MB, win2k).
Note: Im using the AC97 onboard "Avance" (now renamed Realtek) sound.
Title: Resampling, 17% CPU?
Post by: mithrandir on 2002-12-24 00:14:02
Quote
Creative is essentialy the Microsoft of sound cards, they sell you low quality, but market it like gold. The art is in the salesman, not in the product.

An accurate observation.