FluidSynth currently only supports 16 bit audio sample data, such as in the
SF2 format.

There are several functions which are used for synthesizing the output, in
particular:
fluid_synth_nwrite_float
fluid_synth_process
fluid_synth_write_float
fluid_synth_write_s16

The last one in particular outputs 16 bit audio and performs dithering when
converting to signed 16 bit values.  I'm not sure if that is what you are
observing or not though.  FluidSynth does have a low pass filter, reverb
and chorus effects, so perhaps that is affecting the output you are
seeing?  I would turn off the reverb and chorus affects at least and
perhaps disable the filter by setting the cutoff frequency to its highest
value and the Q value to the lowest value for the instrument you are
testing and make sure there is no modulation of the filter cutoff occurring
with the envelope or oscillators.

As far as rendering the audio to a file, you could use the "-a file" option
for "real time" rendering or the -F option for faster than realtime
rendering of a MIDI file with the fluidsynth shell.  Not sure if that will
get you want you want though, since I don't fully understand what you mean
by "before it's rendered".

Element


On Sun, Jan 3, 2016 at 4:23 PM, Brad Stewart <brads...@fastmail.us> wrote:

> Regarding the previous post...
>
> It seems this is done in the function *fluid_rvoice_buffers_mix *in the
> file "fluid_rvoice.c."
> The output is buf[] and is also type fluid_real_t.
> So  I'm assuming the rendering engine can accept floating point values.
> I'm still trying to see how the linear interpolation is able to remove
> most of the low frequency artifacts.  none of the simulations and
> experiments don't result in the output I'm seeing from FluidSynth.
> Perhaps the audio h/w has additional filtering functions.
>
> Is there a way I can save an output wave to a file?  I want to look at the
> audio data before it's rendered.
>
> Thanks,
> Brad
>
>
>
>
> On 01/03/2016 01:27 PM, Brad Stewart wrote:
>
> The interpolation routines place the processed data into dsp_buf[] of type
> fluid_real_t.
> I'm assuming you eventually convert this to int16 for rendering.
> Can you point me to the section of the code that does the conversion?
> Are you doing anything else, such as a moving-averaging filter?
> Thanks,
> Brad
>
>
>
> _______________________________________________
> fluid-dev mailing list
> fluid-dev@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/fluid-dev
>
>
_______________________________________________
fluid-dev mailing list
fluid-dev@nongnu.org
https://lists.nongnu.org/mailman/listinfo/fluid-dev

Reply via email to