Commit graph

158 commits

Author SHA1 Message Date
Tom M
4a0a7365ee
Refactor Soundfont loader API (#334)
* add fluid_mod_sizeof() and fluid_sample_sizeof() for low latency scenarios
* fix return value of default_fclose
* enable padding warnings for cmake enable-profiling=1
* make these types private:
  * struct _fluid_sfloader_t
  * struct _fluid_sample_t
  * struct _fluid_sfont_t
  * struct _fluid_preset_t

...and provide proper getter and setter functions
2018-02-11 16:56:53 +01:00
Tom M
5d26d2dee8
Additional general-purpose IIR filter (#331)
* Additional high-pass filter
* ability to use a linear Q
* add custom sinus modulator mapping function
* add GEN_CUSTOM_FILTERFC and GEN_CUSTOM_FILTERQ generators
* introduce fluid_synth_custom_filter()
* make custom filter user adjustable by custom flags
2018-02-11 15:18:28 +01:00
Tom M
a807ea22b3
Update fluidsettings.xml
document synth.default-soundfont and synth.lock-memory
2018-02-08 12:58:25 +01:00
derselbst
5f8fabb651 remove fluid_cmd_handler_register() from public API
as well as fluid_cmd_handler_unregister() and fluid_cmd_t
2018-01-18 20:39:45 +01:00
derselbst
fe19ce0c24 remove fluid_synth_set_gen2() from public API 2018-01-18 20:24:58 +01:00
derselbst
9806087543 include version.h in API doc 2018-01-10 12:31:06 +01:00
Marcus Weseloh
aff8f0d458 Cleanup initial attenuation generator value handling (#324)
The EMU8k/10k hardware applies a 0.4 factor to all initially set attenuation generator values. Do this once on soundfont load.

Remove the invalid -531.509 power factor that was computed from Timidiy's non-standard conversion table. And remove the synth.volenv switch again, as the "compliant" setting wasn't compliant at all.

This allows us to get rid of the atten2amp function and use cb2amp everywhere, with a range of 0 1440 centibels.

Fixes #70 
Supersedes #71 
Supersedes #318
2018-01-09 16:30:43 +01:00
derselbst
50ac3c0f3f correct return value checking for fluidsynth_register_adriver.c 2018-01-02 16:15:32 +01:00
derselbst
15bc24c757 cleanup API doc 2017-12-27 17:55:04 +01:00
derselbst
5c8ee9a20b mention important-channels overflow settings in API docs 2017-12-27 17:41:05 +01:00
derselbst
5f45c6d97b Revert "make fluid_midi_parser_parse() public"
This reverts commit 4568e551b9. Would allow fluidsynth to be abused as midi parser.

Closes #150
2017-12-21 14:52:06 +01:00
derselbst
4568e551b9 make fluid_midi_parser_parse() public
to enable realtime byte to fluid_midi_event_t parsing

fixes #108
addresses #150
2017-12-16 15:08:47 +01:00
derselbst
07a167c737 update doc about "audio.pulseaudio.adjust-latency"
addresses #303
2017-12-16 10:16:04 +01:00
derselbst
6ef5ef9d2d update doc/README 2017-12-15 19:29:12 +01:00
Tom M
a82ddb8d08
Merge branch 'master' into sm24 2017-12-13 20:12:47 +01:00
derselbst
15a2cc793a link fluidsetting to xml in API doc 2017-12-12 20:47:22 +01:00
Tom M
deb0658205
add support for lyrics and text midi events (#299)
* partly applied karaoke patch from ticket #111
* allow MIDI_SET_TEMPO in playback_callback
2017-12-11 19:35:07 +01:00
derselbst
0619f103ea update API docs about 24bit sample support 2017-12-09 17:50:06 +01:00
Tom M
ea8ac50333
Merge branch 'master' into cleanup3 2017-12-07 17:11:35 +01:00
derselbst
a4e43d3543 re-introduce fluid_synth_set_gen2()
to reduce API breakage
2017-12-06 12:18:06 +01:00
Tom M
e0e319cf30
Merge pull request #294 from FluidSynth/overflow-important-channels
New feature for overflow calculation: specify important channels
2017-12-05 09:22:54 +01:00
Marcus Weseloh
d77974c135 Add note about channel numbers being 1-based. 2017-12-04 18:50:43 +01:00
derselbst
8a4033e2e1 mention fluid_player_seek() in API docs 2017-12-03 21:37:25 +01:00
derselbst
82450e0ee1 remove FLUID_NUM_MOD macro from public API 2017-12-03 18:39:24 +01:00
Marcus Weseloh
a3aef4b2ee Add ability to mark channels as important in overflow priority calculation
FluidSynths overflow priority calculation, that determines which voice to
kill if the current polyphony limit has been reached, treats all channels
as equal. Only percussion channels can get a user defined score added to
their priority.

In certain use-cases there can be a number of MIDI channels that are much
more important than other ones, and not just percussion channels. For
example, a channel playing a constant pad sound which would be very
noticeable if killed.

This change adds two new synth.overflow settings:
- synth.overflow.important
- synth.overflow.important-channels

They add the ability to mark MIDI channels as "important" and have
the overflow calculation add a user defined score to voices on those
channels.
2017-12-02 15:57:21 +01:00
Marcus Weseloh
0a57c4cf0a Document synth.overflow.* settings 2017-12-02 15:54:45 +01:00
derselbst
35f679d16d mention removed enum vals in API doc 2017-11-30 13:34:33 +01:00
derselbst
cde8517c5a make sure doxygen generates ladspa-related docs 2017-11-30 13:01:16 +01:00
derselbst
01040409ba exclude private headers from public API doc generation 2017-11-30 12:55:20 +01:00
derselbst
5bc1f57ec5 mention ladspa functions in API docs 2017-11-27 18:30:20 +01:00
derselbst
c5cdcb8eda remove deprecated fluid_synth_reset_tuning() 2017-11-27 18:01:19 +01:00
derselbst
70a1c82a5e remove deprecated fluid_synth_select_tuning() 2017-11-27 18:00:50 +01:00
derselbst
0bb8726583 remove deprecated fluid_synth_create_octave_tuning() 2017-11-27 17:56:03 +01:00
derselbst
7140e971ec remove deprecated fluid_synth_create_key_tuning() 2017-11-27 17:52:58 +01:00
derselbst
62df9178ae remove deprecated fluid_synth_get_channel_info()
it provided functionality in between of fluid_synth_get_program() and fluid_synth_get_channel_preset(), which however was not visible from the user perspective
2017-11-27 17:49:10 +01:00
derselbst
4d65e07156 get rid of redundant fluid_sample_refcount macro
and access field directly
2017-11-27 17:27:37 +01:00
derselbst
4776b7e407 remove macro fluid_sfont_get_id() from public API 2017-11-27 17:19:29 +01:00
derselbst
9900d5f151 rename fluid_mod_new|delete() to match naming conventions 2017-11-27 16:58:27 +01:00
Tom M
621c84f6a1
Merge branch 'master' into file-callback 2017-11-27 14:52:20 +01:00
derselbst
58a5f43d6a update fluidsettings about unique portaudio device names 2017-11-26 13:49:55 +01:00
derselbst
99c03350fc update API docs about unique portaudio device names 2017-11-26 13:41:46 +01:00
derselbst
7a22eb87f6 add an example of how read a soundfont from memory 2017-11-26 10:07:08 +01:00
derselbst
332c221cfb update docs about file callback struct 2017-11-26 09:29:35 +01:00
Tom M
a7fe5c4257
Merge pull request #283 from FluidSynth/ladspa
Polishing of LADSPA subsystem
2017-11-25 11:45:49 +01:00
derselbst
5051dcb131 mention fluid_synth_remove_default_mod() in API docs 2017-11-24 17:43:38 +01:00
derselbst
7ed5d1f1d8 update docs about upper roomsize threshold 2017-11-22 16:56:51 +01:00
Tom M
eb5945bb2c
make dsound use the desktop window handle (#286)
* Dsound driver is now making use of an already existing window handle: the desktop window
* Removing of fluid_dll.c because it has becoming useless
* avoid a potential deadlock when calling functions within DllMain()
* remove obsolete fluid_set_hinstance() and fluid_get_hinstance() from public API
2017-11-22 16:42:48 +01:00
derselbst
d00dc1c78a correct API doc
fluid_audio_driver_register() is scheduled for 1.1.9
2017-11-22 14:20:25 +01:00
derselbst
1909571de9 update doc of fluidsynth_register_adriver.c 2017-11-22 13:51:18 +01:00
Tom M
d24c2a1179
Merge branch 'master' into register-adriver 2017-11-20 16:39:15 +01:00
Marcus Weseloh
4806fc6a14 Information about LADSPA on non-Linux platforms and some reformatting 2017-11-19 21:12:49 +01:00
derselbst
7dee2c18e9 implement handling of FLUID_SEQ_ALLSOUNDSOFF 2017-11-15 17:10:26 +01:00
derselbst
9c6de2bb79 update API doc 2017-11-15 16:57:16 +01:00
Marcus Weseloh
7f0ad243e7 Fix typos and trailing white-space in ladspa documentation 2017-11-11 19:31:28 +01:00
Marcus Weseloh
be2db6082d Add documentation about effect sends and replacing the internal effects 2017-11-11 17:51:26 +01:00
derselbst
13728ed0bd update API doc about fluid_audio_driver_register() 2017-11-11 15:27:35 +01:00
derselbst
9868860318 update doc for fluidsynth_register_adriver.c demo 2017-11-11 15:13:12 +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
633b4f00db Adjust LADSPA doc as LADSPA is now compiled by default if available 2017-11-10 19:04:38 +01:00
Tom M
df1c9a3e5c
update api doc about destructor functions 2017-11-09 20:40:36 +01:00
derselbst
e0d0acc946 add a demo program for fluid_audio_driver_register() 2017-11-09 19:07:31 +01:00
Tom M
a13cf153d9
Merge pull request #265 from FluidSynth/delete-refactor
refactor destructor functions to return void if possible and make them safe when called with NULL
2017-11-08 15:45:49 +01:00
Marcus Weseloh
3bf219b553 Remove the old and out-of-date LADSPA documentation PDF 2017-11-08 00:11:36 +01:00
Marcus Weseloh
37d44ce847 Fix typos in LADSPA documentation 2017-11-08 00:09:08 +01:00
Marcus Weseloh
2984c0b40a Update LADSPA documentation 2017-11-07 23:49:57 +01:00
derselbst
61e95d0647 bump doxygen API version to 2.0 2017-10-30 19:50:58 +01:00
derselbst
242c2cd119 replace NEXT_RELEASE with 2.0.0
find . -type f -exec sed -i s/@NEXT_RELEASE@/2.0.0/ '{}' \;
2017-10-30 19:26:40 +01:00
derselbst
9b6d3d4c55 support for registering audio drivers based on actual needs 2017-10-30 17:42:37 +01:00
derselbst
f4940e72e2 update API doc to reflect delete_* returning void 2017-10-30 12:05:24 +01:00
derselbst
56969332b2 promote audio.alsa.autoconnect to a more general setting
that could be used across different midi drivers
2017-10-26 15:56:27 +02:00
derselbst
7c523979be document audio.alsa.autoconnect 2017-10-25 17:10:56 +02:00
Marcus Weseloh
2fb35cdab5 Fix typos in LADSPA documentation 2017-10-20 12:43:53 +02:00
Marcus Weseloh
71a4b2c058 First draft of the new LADSPA documentation 2017-10-20 00:23:39 +02:00
Tom M
09f237fd0c clarify xg bank select documentation
addressing #228
2017-10-19 23:08:15 +02:00
Tom M
9ba8136ce0 Update fluidsettings.xml
line wrap
2017-10-19 13:12:40 +02:00
Tom M
6f3b9da191 Merge pull request #220 from FluidSynth/fluidsettings-doc
move fluidsettings doc to xml
2017-10-19 12:46:26 +02:00
derselbst
69a4ce44c3 remove fluidsettings doc from manpage
refer to xml instead
2017-10-18 18:03:44 +02:00
derselbst
9b5a204e02 fluidsettings: different color for deprecated settings 2017-10-18 14:08:02 +02:00
derselbst
d54a9af4ea remove fluid settings from public API doc
instead refer to new fluidsettings.xml
2017-10-16 18:08:29 +02:00
derselbst
88cdc46653 clarify documentation for midi.jack.id
fixes #224
2017-10-16 17:40:46 +02:00
derselbst
32cf418631 add a simple TOC to fluidsettings 2017-10-16 17:10:28 +02:00
derselbst
61ea49d24a complete fluidsettings doc 2017-10-14 22:40:43 +02:00
derselbst
2ad727d6d2 fix license reference in man page 2017-10-12 17:32:05 +02:00
derselbst
61c81d06a5 bump version to 1.1.8 2017-10-12 17:15:27 +02:00
derselbst
77f4604498 update API doc for 1.1.8 2017-10-12 11:53:08 +02:00
derselbst
4630d22cc1 fluidsettings.xml: add links regarding XSLT 2017-10-10 22:02:17 +02:00
derselbst
d28de22d23 fluidsettings.xml: attempt to extend browser support 2017-10-10 21:57:53 +02:00
derselbst
e1e0d561d8 group fluidsettings by top most component only 2017-10-10 09:24:41 +02:00
derselbst
51181c679a revise layout of fluid settings documentation
force it into the currently used table layout
2017-10-09 21:10:47 +02:00
derselbst
360ae04135 update API doc 2017-10-07 15:21:38 +02:00
derselbst
e36e39249b update API docs for new chorus/reverb setters 2017-10-06 10:59:41 +02:00
derselbst
78233a191d port midi settings to xml 2017-10-02 16:46:18 +02:00
derselbst
6fe0da959d update fluidsettings.xsl 2017-10-02 10:40:20 +02:00
derselbst
0aa925ec3a move general midi and shell settings to xml 2017-10-02 09:53:07 +02:00
derselbst
c92fcddcc1 move audio settings to xml 2017-10-01 21:11:34 +02:00
derselbst
6e9f73afb8 port synth settings to xml 2017-10-01 14:26:32 +02:00
derselbst
81f30ce6d1 add a test file for documenting fluid settings 2017-09-28 20:08:53 +02:00
Tom M
2a3ff1d2cf Merge pull request #207 from FluidSynth/cleanup
source code cleanup, API compatibility broken
2017-09-22 14:10:38 +02:00
derselbst
480fbaba8f update devdoc 2017-09-22 13:39:35 +02:00
derselbst
e9cc151e06 update devdoc 2017-09-22 13:22:16 +02:00