Commit graph

48 commits

Author SHA1 Message Date
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
Renamed from fluidsynth/src/rvoice/fluid_rvoice_mixer.c (Browse further)