Colin Kinloch
cf09b654ab
jack midi autoconnect ( #450 )
2018-10-31 13:10:29 +01:00
derselbst
b628115092
optimize rounding and clipping to int16 samples
2018-10-31 10:40:32 +01:00
derselbst
ee5b0ea1c7
remove redundant declarations
2018-10-28 16:42:20 +01:00
derselbst
a4ddc9396c
avoid leaking memory in pulse driver
2018-10-28 16:37:44 +01:00
Tom M
804cbf91c9
Merge pull request #449 from carlo-bramini/win-driver-selection
...
let cmake find WinMidi and DSound
2018-10-27 20:26:18 +02:00
derselbst
e4ab5067f1
fix linker error on win32 without network support
...
by adding missing #ifdefs
2018-10-27 16:32:54 +02:00
carlo-bramini
e298fefd7f
cleanup audio and midi driver instantiation ( #448 )
...
Instead of saving the name of the driver, it would be worth to save to pointer to the selected definition instead.
In this way, the function for deleting the driver does not need to search its name by parsing all the list, but it just needs to call the pointer into the saved definition (less code). This fix can be applied to MIDI drivers too.
I also moved the FLUID_FREE(allnames) inside the "if(allnames != NULL)" block, nothing bad should happen even by keeping that instruction outside, but actually there is no need to call the free if allnames is NULL.
2018-10-27 16:22:44 +02:00
carlo-bramini
30886a3d78
Remove handwritten macros
2018-10-26 19:44:27 +02:00
carlo-bramini
413bcbeb84
Add Windows driver support macro.
2018-10-26 19:43:27 +02:00
carlo-bramini
8ef6ac7dcc
Enable VersionInfo also for MINGW
2018-10-26 19:42:15 +02:00
carlo-bramini
7b6ebbea5b
Add Windows driver selection
2018-10-26 19:41:34 +02:00
Tom M
121ed7124e
Merge pull request #447 from FluidSynth/zero-size-arr
...
Fix build when no audio drivers are supported
2018-10-23 17:41:35 +02:00
derselbst
e03e2edf8d
register settings before adding options
2018-10-23 17:07:34 +02:00
derselbst
f6e70b38c7
clarify log message when no MIDI drivers are available
2018-10-21 20:26:46 +02:00
derselbst
327b3fb45b
clarify log message when no audio drivers are available
2018-10-21 20:21:21 +02:00
carlo-bramini
a7c5b66872
Simplify MIDI driver installation
2018-10-21 13:35:41 +02:00
carlo-bramini
70f4551e90
Simplify audio driver installation
...
In my opionion, it should be possible to simplify the code by installing the drivers with a for() cycle instead of doing tons of #ifdef...#endif.
The size of the binary code is basically the same as before, but the source lines are much less. I think that it could be done also for MIDI input drivers.
2018-10-21 13:35:32 +02:00
carlo-bramini
326c20c0e3
Remove duplicated init_dither() declaration ( #446 )
2018-10-20 20:06:38 +02:00
derselbst
670cdf1e8f
conditionally compile fluid_aufile.c
2018-10-20 15:15:43 +02:00
derselbst
08b5333398
remove macro workaround when no midi drivers are supported
2018-10-20 15:05:18 +02:00
derselbst
5bd07c120c
fix build when no audio drivers are supported
2018-10-20 15:04:55 +02:00
carlo-bramini
ebc177f48f
Consistently use FLUID_LOG macro ( #443 )
2018-10-16 18:02:27 +02:00
carlo-bramini
d8890038b6
Rounded samples do not need to be float.
...
Actually, the function roundi() already returns an "int" type value, so in my opinion there is no need to use a floating point value for saturating the values in the range -32768/+32767. The generated assembly code looks more efficient after that.
2018-10-13 14:37:41 +02:00
derselbst
7517c17524
Revert "make fluid_log() thread safe"
...
This reverts commit d25cdae17c
.
Mistakenly committed too early on the wrong branch.
2018-10-12 09:24:07 +02:00
derselbst
2b563071f6
initialize logging at compile time
2018-10-09 18:11:37 +02:00
derselbst
d25cdae17c
make fluid_log() thread safe
...
by using a local buffer rather than global one, intentionally breaks
fluid_synth_error()
2018-10-09 18:00:19 +02:00
derselbst
f0312c13d3
deprecate fluid_synth_error()
2018-10-09 17:52:33 +02:00
derselbst
c93fdd4b10
avoid chorus depth from spamming the console
...
on any chorus setting, if the previous depth was out of range
2018-10-07 13:15:05 +02:00
derselbst
0920db6d1f
abort 'set' shell command if param not found
2018-10-07 12:56:18 +02:00
derselbst
ce57220d65
dont cast const qualifier away
2018-10-06 14:27:10 +02:00
carlo-bramini
f74f415a69
Avoid duplication of fluid_chorus_sine() call.
...
Closes #439 .
2018-10-06 12:05:10 +02:00
Tom M
b768ad6d14
Merge pull request #437 from FluidSynth/null-fixes
...
NULL derefs and mem leaks in soundfont loader
2018-10-06 11:55:11 +02:00
derselbst
3ef6af5ade
Merge branch 'recent-docs'
2018-10-06 11:45:18 +02:00
derselbst
fd7db023dd
set upper chorus depth to 256 ms
...
upper depth limit (ms) = (MAX_SAMPLES * 1000) / lower sample rate limit
with MAX_SAMPLES==2048 && lowersrate==8000
2018-10-05 18:39:54 +02:00
derselbst
f972fbf1ec
remove experimental hint from fluid_synth_set_sample_rate()
2018-10-05 18:12:31 +02:00
derselbst
57ef2dfed8
fix memory leaks in load_phdr() and load_ihdr()
2018-10-02 20:20:22 +02:00
derselbst
7f2d655b9c
fix various NULL derefs in fluid_sffile
2018-10-02 20:14:56 +02:00
derselbst
b31afd65a5
fix NULL deref in new_fluid_hashtable_full()
2018-10-02 19:33:50 +02:00
carlo-bramini
6f8a574e36
Various fixes to dsound driver ( #435 )
...
- fluid_dsound_audio_run() and fluid_win32_error() are now static functions.
- WAVEFORMATEX is not required by DirectSound during the playback. We do not need it anymore after calling ::SetFormat(), so allocating this structure dynamically inside driver structure is useless.
- Implemented support for float sample type.
- Uses an event object for handling the end of thread, it allows to combine the quit event with the later wait in milliseconds in a single block.
- Calculates the amount of milliseconds to sleep rather than sleeping always for one millisecond.
- Fix an error into a FLUID_LOG() call.
- Fix handle leak of the thread, now it is correctly closed with CloseHandle().
- ExitThread() is a nonsense in that position, since the thread is already exiting.
- Fix error when compiling with WSDK 8.1, by defining NOBITMAP, in case NOGDI macro added somewhere
2018-09-29 10:08:34 +02:00
derselbst
923f5f3544
update API doc of delete_fluid_sequencer()
2018-09-21 19:00:28 +02:00
Tom M
fb684aa5d8
Merge pull request #434 from rncbc/jack_driver-last_client-reuse-fix
...
jack_driver: last_client reuse fix.
2018-09-20 20:20:55 +02:00
jjceresa
75b77f0186
Remove redundant invalid preset generators checking in fluid_defpreset_noteon() ( #430 )
2018-09-20 20:11:11 +02:00
rncbc
99e235e279
jack_driver: last_client reuse fix.
2018-09-20 09:04:21 +01:00
Colin Kinloch
f4b88fc747
coremidi input port and autoconnect ( #427 )
2018-09-15 14:08:55 +02:00
jjceresa
f566f0ef33
Simplify fluid_mod_get_xxx_value() signature. ( #429 )
2018-09-15 14:01:15 +02:00
Tom M
e4b8e2b44c
Implement fluid_get_userconf() on windows ( #425 )
2018-09-09 22:34:35 +02:00
derselbst
eb132d8196
correctly typedef fluid_stat_buf_t for glib < 2.26
2018-08-30 22:14:27 +02:00
derselbst
b9dd426046
correctly typedef fluid_stat_buf_t
...
fixing copy'n paste mistake... excuse me
2018-08-30 19:53:40 +02:00
derselbst
9052bad56c
silence MSVC type narrowing warnings in fluid_cmd.c
2018-08-30 18:45:29 +02:00
derselbst
7d9a02d836
replace strlen with FLUID_STRLEN
2018-08-30 18:40:49 +02:00
derselbst
cdc8d38f4e
silence MSVC type narrowing warnings in fluid_settings.c
2018-08-30 18:33:05 +02:00
derselbst
70fbabf97c
fix incompatible types warning: 'fluid_stat_buf_t *' to '_stat64i32 *'
...
only occurs on Win64 with glib < 2.26
2018-08-30 17:38:19 +02:00
derselbst
4d8574d38a
change fluid_log_* prototypes to const char*
2018-08-23 16:56:22 +02:00
Tom M
55a4bb5597
Merge pull request #421 from FluidSynth/test-flag
...
Always build unit tests, remove `enable-tests` cmake flag
2018-08-10 16:39:17 +02:00
derselbst
500959701e
move fluid_file_renderer_settings() declaration to fluid_adriver.h
2018-08-08 20:55:32 +02:00
derselbst
908aaeb5cc
cmake: setup linker directories before creating target
2018-08-07 15:19:05 +02:00
derselbst
39f574942e
cmake: remove redundant include and link dir variables
...
cf. docs of pkg_check_modules()
2018-08-07 15:07:20 +02:00
derselbst
ff1482ec06
fix dll visibility on win32 for unittests
2018-08-06 20:29:50 +02:00
derselbst
521e5451fc
remove cmake option enable-tests
...
Always build unit tests instead and use cmakes OBJECT library to bypass visibility control and the value of BUILD_SHARED_LIBS.
2018-08-05 20:50:41 +02:00
derselbst
063ab5d7d2
remove unused midi driver status functions
2018-07-21 10:43:38 +02:00
derselbst
47c4a5b1c7
remove various redundant audio / midi driver declarations
...
by moving already existing function declarations to fluid_adriver.h and
fluid_mdriver.h resp.
2018-07-21 10:37:43 +02:00
derselbst
f6f66d53fd
make fluid_synth_write_float() safe when called with NULL buffers
2018-07-20 19:30:18 +02:00
derselbst
8afb46515f
fix comment for sinc interpolation table
...
a Hanning window is applied, rather than a Hamming window
2018-07-19 17:22:44 +02:00
derselbst
bb413011f7
update deprecated note of fluid_synth_nwrite_float()
2018-07-16 12:21:55 +02:00
derselbst
2185194d43
cleanup fluid_synth_process()
...
remove code duplications
2018-07-15 19:52:48 +02:00
derselbst
af1fc75717
add fluid_synth_count_effects_groups()
2018-07-12 10:34:02 +02:00
derselbst
7e627c575c
fix NULL deref in jack driver
2018-07-11 21:07:37 +02:00
derselbst
b46998ba04
fix alsa driver with custom callback
2018-07-11 21:05:12 +02:00
Tom M
c4f0b19c64
Merge pull request #405 from FluidSynth/fluid-synth-process
...
Complete implementation of fluid_synth_process() and add support for multi-channel effects rendering.
2018-07-11 17:26:51 +02:00
derselbst
4b5dc36d53
extend the documentation of fluid_synth_process()
2018-07-11 14:44:40 +02:00
derselbst
7f1cdd2acf
make fluid_synth_add_default_mod() const correct
2018-07-11 11:52:45 +02:00
derselbst
e6e6c570f6
fix NULL deref in new_fluid_rvoice_mixer()
2018-07-11 10:49:57 +02:00
derselbst
88fda6f99b
support multiple effects units
...
adds a new setting "synth.effects-groups" that allows multiple effects
units, in order to render effects of each midi channel to a separate
audio channel
2018-07-07 12:53:25 +02:00
Tom M
334c752b2a
Merge pull request #409 from FluidSynth/player-reset
...
Promote player.reset-synth to real-time setting
2018-07-04 12:48:17 +02:00
Tom M
5cd99057bf
Merge pull request #407 from FluidSynth/delete-ramsfont
...
Remove ramsfont
2018-07-01 12:54:51 +02:00
carlo-bramini
4ea94a324f
Fix single thread build ( #410 )
...
Compilation fails if ENABLE_MIXER_THREADS is set to zero, due to a mismatch of parenthesis.
2018-07-01 12:54:07 +02:00
derselbst
5c99b86234
warn if user provided shell config wasnt found
2018-07-01 07:20:15 +02:00
derselbst
fefb91def9
promote player.reset-synth to real-time setting
2018-07-01 07:12:35 +02:00
derselbst
3ffa6a318e
warn if non-realtime settings are set
2018-07-01 06:56:22 +02:00
derselbst
d7609d43f6
remove ramsfont
2018-06-26 08:34:41 +02:00
derselbst
a8be173ba3
fix memory leak in fluid_midi_file_read_event()
2018-06-26 07:55:46 +02:00
derselbst
5e3d5acbdb
prefer FLUID_STRNCPY to strcpy
2018-06-26 07:43:54 +02:00
derselbst
2e46df839a
fix build
2018-06-26 06:52:35 +02:00
derselbst
f8b95969c8
rename fluid_event_priv.h -> fluid_event.h
2018-06-25 17:59:14 +02:00
derselbst
5ea6bed2d4
Merge branch 'master' into fluid-synth-process
2018-06-25 17:12:29 +02:00
derselbst
9382edabd5
enforce coding style guide
...
using astyle
2018-06-24 13:13:18 +02:00
derselbst
728c560cc6
Merge branch 'master' into fluid-synth-process
2018-06-20 15:25:39 +02:00
jjceresa
19b525af9b
Add comment for main function()
2018-06-20 15:11:43 +02:00
jjceresa
1dc7ce042b
Adding comments to fluidsynth.c
2018-06-20 15:11:00 +02:00
derselbst
734eaa9bb4
deprecate fluid_synth_nwrite_float() in favor of fluid_synth_process()
2018-06-18 16:21:37 +02:00
derselbst
b9c75f3a8e
docs: elaborate on sample buffer zeroing
...
of fluid_synth_process()
2018-06-18 16:15:24 +02:00
derselbst
c309e417c5
adjust implementation of audio drivers for fluid_synth_process()
2018-06-18 16:01:27 +02:00
derselbst
723816cd5d
implement new behaviour of fluid_synth_process()
2018-06-18 16:01:27 +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
derselbst
a55e7e8d79
fix discarding const
2018-06-17 15:59:05 +02:00
derselbst
9e2ea65618
document FLUID_MIXER_MAX_BUFFERS_DEFAULT
2018-06-17 15:58:22 +02:00
Tom M
29d1947ccc
implement true zero gain for maximum attenuation ( #396 )
...
fixes #319
2018-06-15 18:46:10 +02:00
jjceresa
0921ccc4c0
introducing FLUID_PEAK_ATTENUATION macro. ( #397 )
...
avoids hard-coding the magic 96 dB everywhere in the code
2018-06-15 18:42:15 +02:00
derselbst
a1bc872754
implement new_fluid_cmd_handler() according to documentation
...
by only registering commands requested by the user
2018-06-12 07:39:33 +02:00
derselbst
183a69a51f
avoid leaking midi_router in fluidsynth.c
2018-06-12 06:37:24 +02:00