derselbst
9382edabd5
enforce coding style guide
...
using astyle
2018-06-24 13:13:18 +02:00
Tom M
b6b6931468
Revert "implement true zero gain for maximum attenuation ( #396 )" ( #398 )
...
This reverts commit 29d1947ccc
. Reading the spec again, the final gain amp should actually applied for the whole voice, not just single buffers (cf. sect. 9.1.8 Figure 2). Thus rvoice_mixer is not the correct place to implement this. It should instead be done in fluid_rvoice_calc_amp().
reopens #319
closes #399
2018-06-17 19:54:37 +02:00
Tom M
29d1947ccc
implement true zero gain for maximum attenuation ( #396 )
...
fixes #319
2018-06-15 18:46:10 +02:00
derselbst
d0d156f50f
silence gcc4.8 erroneously reporting uninitialized vars
2018-05-20 10:45:35 +02:00
derselbst
b70b24ce0a
remove fluid_rvoice_mixer_set_threads() as rvoice event function
...
Changing the number of rendering threads on-the-fly is not considered to be a usecase. In fact it will cause glitchy audio if doing so while synthesizing because all rendering threads are killed and their mixdown buffers are reallocated. This change should fix glitchy audio that might occur at the beginning of synthesization, as the rvoice_event for thread allocation may be dispatched (too) late.
2018-05-19 17:04:37 +02:00
derselbst
6bcdf87c06
fix broken multithread rendering
...
and minor current_blockcount cleanups
2018-05-18 13:07:16 +02:00
Tom M
f1384f03d9
Merge branch 'master' into rvoice-align
2018-05-11 16:53:42 +02:00
derselbst
d8f46f2bae
remove unused vars, clarify comments
2018-05-05 15:17:09 +02:00
Tom M
05c2d57e65
Merge pull request #372 from FluidSynth/rvoice-refactor3
...
rvoice_mixer refactorings + cleanups
2018-05-02 20:51:53 +02:00
derselbst
ab255b7178
avoid polling variables from global mem
...
that never change
2018-04-27 20:54:30 +02:00
derselbst
1d9dfd2a2a
optimize fluid_mixer_buffers_zero()
...
only zero needed parts of sample buffers
2018-04-27 18:25:07 +02:00
derselbst
b7cf79bc15
vectorize mixdown loop of fluid_mixer_buffers_mix()
2018-04-27 17:49:22 +02:00
derselbst
58008aae18
convert rvoice_mixer mixdown buffer to 1D arrays
2018-04-27 17:34:29 +02:00
derselbst
ed312b7acc
refactor fluid_rvoice_mixer_process_fx()
2018-04-26 22:01:50 +02:00
derselbst
89015494cb
vectorize mixing loop of fluid_rvoice_buffers_mix()
2018-04-26 22:01:49 +02:00
derselbst
f332f32a7c
remove optimization for centered stereo samples
...
in favour of vectorized mixing loop. Was incredibly unlikely to happen anyway.
2018-04-26 16:47:06 +02:00
derselbst
7ebdabae0c
allocate mono voice mix buffer on the heap
2018-04-26 16:25:26 +02:00
derselbst
354bea9cfc
fix build if ENABLE_MIXER_THREADS == 0
2018-04-25 21:08:48 +02:00
derselbst
2ad96d020e
avoid leaking rvoice_mixer threads
...
introduced in 7ae9099293
2018-04-25 21:05:02 +02:00
derselbst
8aa073b4a4
remove redundant fluid_rvoice_mixer_t::remove_voice_callback
...
call rvoice_eventhandler directly to handle finished voices
2018-04-25 15:59:00 +02:00
derselbst
5d28ecc5cc
remove redundant fluid_rvoice_mixer_t::buf_blocks
...
as it's always equal to FLUID_MIXER_MAX_BUFFERS_DEFAULT
2018-04-25 15:59:00 +02:00
derselbst
f2cf1f82c7
move fluid_rvoice_buffers_mix() to rvoice_mixer
2018-04-25 14:57:40 +02:00
derselbst
907ec27a9e
optimize away memset/mix if voice is quiet
2018-04-25 14:56:20 +02:00
derselbst
78de299da4
make param array of fluid_rvoice_function_t const
2018-04-11 19:22:55 +02:00
derselbst
036595f7db
avoid duplicate call of fluid_rvoice_set_output_rate()
2018-04-11 09:56:03 +02:00
derselbst
7ae9099293
unify rvoice update functions calling conventions
...
by proper typedefing
2018-04-08 17:22:57 +02:00
derselbst
a25f816c33
unify chrous and reverb types
2018-04-08 12:34:42 +02:00
Javier Nonis
30e894fbe4
Fix for LADSPA chorus send port.
2018-04-01 19:39:46 -03:00
jjceresa
182e593665
Add profiling command interface ( #345 )
...
This patch adds "profiling" commands interface for performance measurement.
Fixes #152
2018-03-12 18:25:16 +01:00
Tom M
a7fe5c4257
Merge pull request #283 from FluidSynth/ladspa
...
Polishing of LADSPA subsystem
2017-11-25 11:45:49 +01:00
Marcus Weseloh
3ec593a6aa
Add missing check for memory allocation error on chorus effect
2017-11-23 11:12:24 +01:00
Marcus Weseloh
007cd2b5fc
Merge branch 'master' into ladspa
...
Resolve conflicts in:
src/bindings/fluid_ladspa.c
2017-11-10 19:36:30 +01:00
Marcus Weseloh
b2aed2b317
Fix compilation error if LADSPA is not enabled
2017-11-10 19:09:04 +01:00
Marcus Weseloh
1a91e971d4
Always prepare the reverb and chorus sends when LADSPA is active
...
This change enables users to disable the internal reverb and chorus
and process the mixed down reverb and chorus send signals using
LADSPA plugins.
2017-11-10 15:37:00 +01:00
Marcus Weseloh
87c37f305d
Explicity create left and right host buffers
...
Makes it possible to create a single host buffer node for the
effect sends.
2017-11-07 23:49:57 +01:00
Marcus Weseloh
9f6ef4e67e
Cleanup API and docs
...
- Rename functions to clarify purpose
- Group functions in header by purpose
- Cleanup doc comments
- Remove unused members from structs
2017-11-07 23:49:57 +01:00
Marcus Weseloh
e77e702b16
Add support for run_adding mode of plugins and in-place rendering
...
In-place rendering is implemented in such a way that there is no
change in behaviour if it is enabled or not. So there's no need
for a user setting.
Run adding mode is a LADSPA feature that plugins can support. Using
that mode, they don't replace an output buffer, but add their rendered
audio to it (with a user definable gain). A very necessary feature to
be able to use a LADSPA reverb in place of the internal reverb.
2017-11-07 23:49:57 +01:00
derselbst
323320e7e4
refactor all destructor functions
...
to return void if possible and not crash if called with NULL
2017-10-29 13:23:08 +01:00
derselbst
db373f168f
Merge branch 'fluid_atomic' of git://github.com/VolcanoMobile/fluidsynth into VolcanoMobile-fluid_atomic
2017-10-27 15:58:54 +02:00
Philippe Simons
cdd9f75112
thread function return type ( #254 )
...
typedef the return value of thread starting routines, as suggested by @loki666
2017-10-26 18:08:10 +02:00
loki666
9ebc22d4e1
add typedef for atomics
...
access atomics via fluid_atomic_X_set/get
2017-10-25 14:38:39 +02:00
Marcus Weseloh
f1cf28b00c
Remove obsolete check for ladspa->state in rvoice mixer
...
The decision if plugins can be run should stay in the LADSPA codebase.
2017-10-23 21:41:28 +02:00
Marcus Weseloh
a1ff8d0e55
Render all block using a single LADSPA run
...
Removes the need for VLAs before ladspa call in rvoice mixer and number
for for loops to set up and advance the buffers. Also reduces the number
of state changes (and atomic operations) by calling fluid_ladspa_run only
once.
2017-10-23 21:41:28 +02:00
Marcus Weseloh
e05f1904d5
Update the LADSPA sample rate if the rvoice mixer sample rate changes.
2017-10-21 15:08:04 +02:00
Marcus Weseloh
d6066d0560
Remove LADSPA deactivation hooks from FluidSynth again
2017-10-21 15:01:02 +02:00
Marcus Weseloh
4120b2320f
Major refactor and rewrite of the LADSPA effects engine.
2017-10-19 23:31:05 +02:00
carlo-bramini
0b16169f35
Replace g_snprintf with FLUID_SNPRINTF
2017-10-15 18:53:06 +02:00
derselbst
aac2354f5c
remove fop-level "fluidsynth" directory node
...
cd fluidsynth && git mv * ../
2017-09-03 13:30:26 +02:00