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

Reply via email to