Chorus enhancement. (#548)

This adds new LFO modulators:
 - these modulators are computed on the fly, instead of using lfo lookup table. Advantages:
      - Avoiding a lost of 608272 memory bytes when lfo speed is low (0.3Hz).
      - Allows to diminish the lfo speed lower limit to 0.1Hz instead of 0.3Hz.
        A speed of 0.1 is interesting for chorus. Using a lookup table for 0.1Hz
        would require too much memory (1824816 bytes).
      - Make use of first-order all-pass interpolator instead of bandlimited interpolation.
      - Although lfo modulator is computed on the fly, cpu load is lower than using
        lfo lookup table with bandlimited interpolator.

Also adds a stereo unit controlled by WIDTH macro. WIDTH [0..10] value define a stereo separation between left and right.
 - When 0, the output is monophonic.
 - When > 0 , the output is stereophonic.

 WIDTH is currently fixed to maximum value to provide maximum stereo effect.
This commit is contained in:
jjceresa 2019-10-23 16:41:13 +02:00 committed by Tom M
parent f2b7438511
commit 0288466f40
5 changed files with 752 additions and 352 deletions

View file

@ -73,7 +73,7 @@ Developers: Settings can be deprecated by adding: <deprecated>SOME TEXT</depreca
<name>chorus.speed</name>
<type>num</type>
<def>0.3</def>
<min>0.29</min>
<min>0.1</min>
<max>5</max>
<desc>
Sets the modulation speed in Hz.</desc>

View file

@ -21,6 +21,7 @@ All the source code examples in this document are in the public domain; you can
- \ref Disclaimer
- \ref Introduction
- \ref NewIn2_1_0
- \ref NewIn2_0_7
- \ref NewIn2_0_6
- \ref NewIn2_0_5
@ -65,6 +66,9 @@ What is FluidSynth?
- FluidSynth is open source, in active development. For more details, take a look at http://www.fluidsynth.org
\section NewIn2_1_0 Whats new in 2.1.0?
- smallest allowed chorus speed is now 0.1 Hz (previously 0.29 Hz)
\section NewIn2_0_7 Whats new in 2.0.7?