[alsa-devel] Backported sbxfi driver, possible fix

Takashi Iwai tiwai at suse.de
Mon Oct 27 07:36:29 CET 2008


At Mon, 27 Oct 2008 10:15:07 +0500,
Alexander E. Patrakov wrote:
> 
> Takashi Iwai wrote:
> > A few important features are in my mind:
> > - continuous rate support
> 
> In the sources, you have:
> 
> > Note: 44.1kHz is possible, but is more complex because it uses a method
> > whereby the channel ring marks each sample in the channel ring as valid
> > or not, so to get 44.1kHz, some samples are simply tagged invalid. The
> > "channel ring" is not the ring buffer that is used to get sound samples
> > to the card. The "channel ring" is used to pass samples between
> > different processing modules on the card. One of these processing
> > modules is the SRC, another is the INs/OUTs, another is the hardware
> > mixer, and yet another is the DSP.
> 
> Do I understand correctly that the card internally resamples the sound 
> to a different rate using the zero-order-hold method? If so, I'd rather 
> not see this feature at all unless the "i_want_horrible_sound" parameter 
> is passed, because software can do it better, and some program will 
> surely default to using this hardware misfeature.

Likely it's a wrong guess.  emu20k1 has the following register bits.

# define SRCCTL_PITCH_ROM	(3<<11)	/* pitch ROM select */
#  define SRCCTL_PITCH_HIGH	(0<<11)	/* 0 to 8.0: very high quality */
#  define SRCCTL_PITCH_EXT_HIGH	(1<<11)	/* 0.26 to 1.72: extermely high qual.*/
#  define SRCCTL_PITCH_88kHZ	(2<<11)	/* 1.8375: 88.2kHz 48kHz */
#  define SRCCTL_PITCH_96KHZ	(3<<11) /* 2.0: 96kHz 48kHz */


Takashi


More information about the Alsa-devel mailing list