Hi,
Thanks for the patch and the help !
I applied it, made a 'make clean' then tried various values between
[100..22050], but unfortunately I heard no improvement from the new
compiles.
Here's current status for all sound programs I have:
- Gobliiins (= Goblins 1): distorted
- Ween: distorted
- Stunts: no sound in Soundblaster mode
- Inca: double-speed, perhaps distorted
- dosamp: ok in stereo
About a workaround for the stereo issue, I didn't see it as
"post-processing". Perhaps a simple option to prevent opening /dev/dsp
in mono could be useful for people with buggy drivers (ie: i810) ?
Best Regards,
Joël
On Sat, 2003-10-04 at 22:06, Stas Sergeev wrote:
> Hello.
>
> Joлl Bourquard wrote:
> > Ok, I've played with the value of 6000 and tried various possibilities
> > up to 120000, but the sound doesn't improve.
> That's too much. 22050 is the maximum
> reasonable value for that, but in
> practice you'll in most cases need to
> lower the freq from 6000, not raise it.
>
> > There is something fishy, it seems. The sound is composed of a lot of
> > little "clicks". When a high sampling value (~60000) is used, it sounds
> > like the clicks become shorter.
> Well, after all there might be a bug
> somewhere. Try the attached patch and
> see if it helps, then try tuning the
> value again.
>
> ______________________________________________________________________
> --- src/arch/linux/dosext/sound/linux_sound.c Sat Jul 5 23:14:10 2003
> +++ src/arch/linux/dosext/sound/linux_sound.c Sun Oct 5 02:43:44 2003
> @@ -261,6 +261,7 @@
> static int sound_frag = 0x0200007;
> static uint8_t buffer[BUF_LEN];
> static size_t buffer_count = 0;
> + int result;
>
> buffer[buffer_count] = value;
> if (buffer_count < BUF_LEN - 1)
> @@ -274,20 +275,25 @@
> {
> S_printf ("SB:[Linux] Initialising Direct DAC write (%u bits)\n", bits);
> if (linux_sb_dma_is_empty() == DMA_HANDLER_OK) {
> - bits_per_samp = bits;
> + result = 0;
> if (ioctl (dsp_fd, SNDCTL_DSP_SAMPLESIZE, &bits)<0) {
> S_printf ("SB:[Linux] Warning: ioctl() (SAMPLESIZE) failed: %s\n",
> strerror(errno));
> - bits_per_samp = 0;
> + result = -1;
> }
> if (linux_set_OSS_fragsize(sound_frag) == DMA_HANDLER_NOT_OK) {
> S_printf ("SB:[Linux] Warning: failed to change sound fragment size.\n");
> - bits_per_samp = 0;
> + result = -1;
> }
> linux_sb_set_speed(DIRECT_WRITE_FREQ, 0, 0, 0);
> /* reset DMA settings */
> sample_rate = 0;
> num_channels = 0;
> oss_block_size = 0;
> + if (result == -1) {
> + bits_per_samp = 0;
> + return;
> + }
> + bits_per_samp = bits;
> }
> else {
> S_printf("SB:[Linux] Sorry, can't change OSS settings now...\n");
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html