On Tue Nov 14 09:21:35 2023 +0000, Anton Baskanov wrote:
> > Although they look fine, 20ab5954 (and ec219ce1 even more) cut some
> notes early in FF VIII intro.
> Looks like note-off queuing for DMUS_PMSGT_NOTE needs to be handled
> differently. I'll drop these for now.
> > Haven't really looked into the details but 0ff26da7 feels a bit
> complicated, I'm wondering if there's a better way to do this.
> It depends on whether we need to support arbitrary connections.
> > Regarding 2e226c26, is this what native does?
> Yes, there is no fallback for melodic instruments for some reason, only
> for drums. Though now I see that I handle missing regions incorrectly
> (these should also fall back to Standard). I'll update the request.
> I was also thinking about adding some tests, though I'm not sure how to
> compare the output. The generated waveforms are quite different (e.g.
> native produces a linear attack slope with some discrete steps, while
> FluidSynth produces a smooth exponential one).
> 
The attack time looks different but were it the same I think the shape difference can be ignored by having some leeway in the test. I added a couple of similar tests for MF audio transform output where we check that the total sample diff does not exceed a small percentage of the total, maybe reusing it here can work.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4375#note_52207
On Tue Nov 14 09:21:35 2023 +0000, Anton Baskanov wrote:
> If we don't need to support arbitrary connections, then yes, your
> proposed solution looks like the way to go.
> I don't currently plan to add more fixups.
What do you mean by arbitrary connections?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4375#note_52206
> Although they look fine, 20ab5954 (and ec219ce1 even more) cut some notes early in FF VIII intro.
Looks like note-off queuing for DMUS_PMSGT_NOTE needs to be handled differently. I'll drop these for now.
> Haven't really looked into the details but 0ff26da7 feels a bit complicated, I'm wondering if there's a better way to do this.
It depends on whether we need to support arbitrary connections.
> Regarding 2e226c26, is this what native does?
Yes, there is no fallback for melodic instruments for some reason, only for drums. Though now I see that I handle missing regions incorrectly (these should also fall back to Standard). I'll update the request.
I was also thinking about adding some tests, though I'm not sure how to compare the output. The generated waveforms are quite different (e.g. native produces a linear attack slope with some discrete steps, while FluidSynth produces a smooth exponential one).

--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4375#note_52200
On Mon Nov 13 13:16:56 2023 +0000, Rémi Bernon wrote:
> Instead of a dynamic list, could we have just a simple structure like:
> ```c
> struct gen_increments
> {
> float env_hold;
> float env_decay;
> float vol_hold;
> float vol_decay;
> };
> ```
> Which we would pass around down to `add_mod_from_connection` which would
> set the needed adjustments (it's actually only needed there,
> `set_gen_from_connection` won't have to add increments), and then after
> the loops we would call `fluid_voice_gen_incr` for each of these?
> Or do we need the generic version for more fixups that are not in this MR?
If we don't need to support arbitrary connections, then yes, your proposed solution looks like the way to go.
I don't currently plan to add more fixups.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4375#note_52199
`sysconf(_SC_PHYS_PAGES)` returns an error for i386 Mac binaries on any machine with more than 4 GB of RAM. From [the source code](https://github.com/apple-oss-distributions/Libc/blob/c5a3293354e22262… it's clear why--it calls `sysctlbyname()` to put the `hw.memsize` sysctl into a long, which is only 32-bits on i386. This returns an error on any Mac with more than 4GB: the value is too large for a 32-bit long.
The `sysctl` man page documents that an int64 should be used for `hw.memsize`, do that and divide by the page size ourselves.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4384