fluid-dev
[Top][All Lists]
Advanced

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

Re: [fluid-dev] API design: fluid_synth_process()


From: Tom M.
Subject: Re: [fluid-dev] API design: fluid_synth_process()
Date: Wed, 02 May 2018 21:45:54 +0200

> You mean 5.1 (i.e 6 channels)
> Sorry i dont' understand this index 5 ?.Does Surround could follow any others 
> know buffers ?

I think each audio channel should receive the full spectrum. fluidsynth 
shouldnt be in charge of rendering the subwoofer channel. But these are 
implementation details for surround audio, which is way beyound the scope of 
this talk. Just wanted to point out the channel layout for 
fluid_synth_process() if the user wishes to instantiate a surround capable 
synth.


> Mapping of dry and effect to output buffers is not easy to solve. I don't 
> think that fluidsynth should impose his strategie.

One might allow buffers to alias. Suppose

"synth.audio-channels" is 1
"synth.effects-channels" is 2

The user would call fluid_synth_process(synth, 64, 0, NULL, 6 out) where out:

out[0] = out[2] = out[4] = left_buf; 
out[1] = out[3] = out[5] = right_buf;

and left_buf and right_buf are zeroed buffers to which fluidsynth would simply 
add the synthesized audio.

If the user only passes 2 buffers, the channels would wrap around and the 
result would be the same:

out[0] = left_buf; 
out[1] = right_buf;
fluid_synth_process(synth, 64, 0, NULL, 2 out)


> Note) Also, i think that in the future, the actual internal "MIDI channel to 
> output buffer" hard coded mapping should be replaced by an API.

Shouldnt be the user in charge of properly mapping any multichannel rendered 
output?


Tom



reply via email to

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