[Bug 14717] resampled sound is horrible

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Nov 4 11:09:19 CDT 2011


Andrew Eikum <aeikum at codeweavers.com> changed:

           What    |Removed                     |Added
  Attachment #37278|0                           |1
        is obsolete|                            |

--- Comment #200 from Andrew Eikum <aeikum at codeweavers.com> 2011-11-04 11:09:19 CDT ---
Created attachment 37298
  --> http://bugs.winehq.org/attachment.cgi?id=37298
dsound: Use a better resampling and mixing engine

(In reply to comment #195)
> Here's a demo for Dark Fall, you have to run it with either 1.3.31 or with the
> latest git because there was a regression in between (bug #28912).
> http://www.fileplanet.com/126673/120000/fileinfo/Dark-Fall-Demo
> You can also try the demo for Haegemonia (music is looping):
> http://www.fileplanet.com/113670/110000/fileinfo/Hegemonia:-Legions-of-Iron-Demo

These are both working for me with the latest version of the patch, attached
here. Changes detailed below.

(In reply to comment #194)
> No, it still fail

I don't know what to say, it's working great here with the file named
"7_opus_number_1.ftm". Do you have a clean WINEPREFIX? Want to attach a log
with this latest patch (<http://wiki.winehq.org/Sound>)?

(In reply to comment #196)
> The patch seems to drop support for floating-point secondary buffers.

Added in this version.

(In reply to comment #197)
> So either use more points (this doesn't increase compulational complexity,
> BTW), or use cubic interpolation near lines 271-275 of mixer.c.

I changed the step values in mkfir to match those in libsamplerate and the
header file turned out to be 1.1MB in size. That's not going to be acceptable,
so I implemented cubic interpolation instead.

(In reply to comment #199)
> At least the fast and good FIRs do not contain a whole number of sine periods.
> This negates the effectiveness of the window.

They're taken unchanged from the output of mkfir, so it's a bug in Krzysztof's
program. I don't really understand the program or its output, but do you think
line 128 should be changed from:
    tmp2 = M_PI * cnt * cutoff;
    tmp2 = 2 * M_PI * cnt * cutoff;
to complete the sine period?

Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.

More information about the wine-bugs mailing list