fluidsynth/src
jjceresa e9b0f0d24b Add modulators checking at soundfont loading time (#467)
Actually some basic modulators check are done at noteon time (in fluid_voice_add_mod()). That means that we know if a modulator (modx) is invalid only when a MIDI noteon is received and only for a preset modx belongs to. This is not appropriate.

This moves the modulator checking at soundfont loading time. Enhancements are:
1) A better verbose modulator integrity check, for any soundfont loaded at appropriate time.
1.1) All modulators are checked (preset zone (local/global), instrument zone (local/global).
1.2.1) Modulators check are enforced to source src1 and src2  (for non-CC and CC sources) (following SF specs (except for CC LSB) ( see comment in fluid_synth_cc_LOCAL()).
Modulators CC sources checking is coherent with the actual behaviour in fluid_synth_cc_LOCAL() in regard of modulation triggering.
1.2.2) Also, identical modulator in the same zone are detected. 
1.2.3) Any invalid modulator(sources invalid, or modulator identical) is removed at loading time with a warning message displaying the cause and name of the modulators.

2) This fix a bug in noteon, in the case of identical modulators in global preset zone.
Assuming 2 identical modulator (m1 and m2) in a preset global zone, the actual noteon doesn't check this case (the actual code detect identical modulator in all others zones (instrument (local or global), preset(local)) but not preset global).

3) NoteOn is faster.
3.1)There is no more modulators checks at noteon making this more efficient.
3.2) As there are no identical modulator in the same zone, there is no more identity modulator check (i.e local zone against local zone), (i.e global zone against global zone). This result in a faster code and the bug described in (2) is gone.

4) Modulators sources checking as been added in API functions fluid_synth_add_default_mod() and fluid_voice_add_mod(). Please
2018-12-21 19:42:00 +01:00
..
bindings Remove redundant dependency to readline in fluid_cmd.c 2018-11-10 08:25:55 +01:00
drivers Add Sdl2 driver (#478) 2018-12-14 16:43:35 +01:00
gentables fix cmake not finding make_tables when cross-compiling 2018-12-14 17:50:03 +01:00
midi Fourcc support (#482) 2018-12-19 14:09:29 +01:00
rvoice Implement FDN Reverb (#380) 2018-12-01 14:55:18 +01:00
sfloader Add modulators checking at soundfont loading time (#467) 2018-12-21 19:42:00 +01:00
synth Add modulators checking at soundfont loading time (#467) 2018-12-21 19:42:00 +01:00
utils Fourcc support (#482) 2018-12-19 14:09:29 +01:00
CMakeLists.txt Merge branch 'master' into 2.1-testing 2018-12-19 14:22:40 +01:00
config.cmake Merge branch 'master' into 2.1-testing 2018-12-19 14:22:40 +01:00
fluidsynth.c warn if user provided shell config wasnt found 2018-07-01 07:20:15 +02:00