|Subject:||Re: [fluid-dev] SoundFont Preset generator interpretation|
|Date:||Mon, 22 Jun 2020 04:09:47 +0200 (CEST)|
>How does FS interpret SoundFont Preset generators, specifically the VolEnv and ModEnv?
>In the SoundFont spec, it seems - and at times explicitly states - that the Preset values are ADDED to the Instrument Values, and are interpreted as Units specified in the spec. From page 45 (2.01 sepc).
I could confirm that fluidsynth does what SF 2.01 page 45 states using unit specified in the spec (8.1.3 page 37, 38). Generator values at preset level are added to instrument generator values. This is true for all generators (except for the invalid generators at preset level you read p 45).
Because this is often a source of confusion, may be one should consider also the rules of precedence of generators in respectives zones at preset level and instrument level (page 50, 51):
- One Preset could be composed of more than one zones (one optional global preset zone + one or more local preset zone(s) (with one Instrument per local preset zone)).
- One Instrument could be composed of more than one zones (one optional global instrument zone + one or more local instrument zone(s) (with one Sample per local instrument zone)).
- A generator in a local preset zone that is identical to a generator in a global preset zone supersedes or replaces that generator in the global preset zone. That generator then has its effects
added to the destination-summing node of all zones in the given instrument.
- A generator in a local instrument zone that is identical to a default generator or to a generator in a global instrument zone supersedes or replaces that generator. This an absolute replacement
We could consider a global zone (Preset/Instrument) being a convenient way to specify generators common to all respectives zones. Then these global generators could be superseded individually by an identical generator in the respective local zone(Preset/Instrument) if needed. Of course this simplify the task of the designer. I could confirm that fluidsynth does what page 50, 51 state.
Unfortunately, I could not confirm what both Vienna and Viena editors are doing. I hope that any other user(s) will help. Did you tried Polyphone reading and displaying what was edited in Vien(n)a ?
|[Prev in Thread]||Current Thread||[Next in Thread]|