fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] synth.audio-groups and LADSPA effects


From: Tom M.
Subject: Re: [fluid-dev] synth.audio-groups and LADSPA effects
Date: Sat, 08 Aug 2020 12:01:31 +0200

Sorry for the delay.

Marcus said:
> FluidSynth does not seem to mix the internal group channels back into
> the main output if you are using audio-groups=2 and audio-channels=1.
> Not sure if this is a feature or a bug... Tom, do you know anything
> about the design decisions here?

I'd say it's a feature of the respective audio rendering interface. The ALSA 
driver uses fluid_synth_write_float() or write_s16(). These functions are 
"single-stereo-channel-functions" and therefore only read from rvoice_mixer 
stereo buffer 1 (for performance reasons).

This "issue" has been addressed by the fluid_synth_process() function, which 
always mixes all internal stereo buffers, into the user provided ones. The e.g. 
JACK driver uses this interface if you specify audio-channels=2.

So, it's more like a limitation of the audio driver in use.


JJC said:
> 2)synth.audio-groups is only used by LADSP.

Sry, that's not quite correct. audio-groups is always used for buffer mapping 
of every voice:
https://github.com/FluidSynth/fluidsynth/blob/31c4e12ac9f2f4eadfb6f034845e51bff7faf223/src/synth/fluid_voice.c#L360

..so if we replace "nbr_outputs" by "nbr_groups" in your explanations, you are 
correct.


JJC said:
> However, if "synth.effects-groups" is set to 2,  two distinct internal 
> instances pair (reverb + chorus) should be available on each distinct audio 
> output (0 et 1).
> @Tom, please could you confirm the "synth.effects-groups" setting behaviour 
> as described by the Wiki ?

Your explanation is correct. And yes, as Marcus said, behaviour depends on the 
audio driver.


Marcus said:
> for all other drivers (including alsa), the reverb and chorus signals are 
> always rendered to the first (and only) stereo output, regardless of the 
> setting of synth.effects-channels.

Correct, because of rvoice_mixer::mix_fx_to_out
https://github.com/FluidSynth/fluidsynth/blob/31c4e12ac9f2f4eadfb6f034845e51bff7faf223/src/rvoice/fluid_rvoice_mixer.c#L174-L175


Tom





reply via email to

[Prev in Thread] Current Thread [Next in Thread]