Marcus Weseloh
a985c68a13
Enable decompressed Ogg Vorbis samples to be stored in sample cache
...
This change moves the Ogg Vorbis decompression to fluid_sffile, so that
this is the only place where we have to deal with compressed audio.
It also changes the way the samples are loaded for SF3 files: previously,
the compressed data was copied into memory, then the individual samples
were decompressed (resulting in both compressed and decompressed data to
stay in memory). Also, decompressed data wasn't cached, so previous loads
of the same file ran the decompressed again for each sample.
After this change, the vorbis decompression is changed so that it reads the
compressed data directly from the Soundfont file. And the resulting WAV
data is stored in the sample cache.
2018-04-18 09:14:55 +02:00
Marcus Weseloh
f52bbf53a4
Add VintageDreamsWaves-v2 in SF3 format and some tests for sf3 loading
2018-04-18 09:14:55 +02:00
Marcus Weseloh
3d05360f33
Split preset parsing from Soundfont file open
2018-04-18 09:14:55 +02:00
derselbst
8051b43c02
fix result checking for fwrite()
...
Potentially fixes infinite loop in file renderer, when fwrite() returns zero. Addressing #367 .
2018-04-17 16:43:52 +02:00
Tom M
d3e6781abd
Merge pull request #364 from FluidSynth/197
...
Unify calling conventions for rvoice update functions
2018-04-11 19:42:19 +02:00
derselbst
ff19788fda
avoid memory leak in new_fluid_voice()
2018-04-11 19:33:40 +02:00
derselbst
78de299da4
make param array of fluid_rvoice_function_t const
2018-04-11 19:22:55 +02:00
derselbst
88606f1538
test_sfont_loading: update unit test purpose
2018-04-11 11:12:01 +02:00
derselbst
36881f4ba8
add test for sample rate changes
2018-04-11 11:12:01 +02:00
derselbst
cb35fac1c6
make VintageDreams sf2 an explicit requirement for unit tests
2018-04-11 11:03:12 +02:00
derselbst
713a4b680d
remove redundant TEST_ASSERT_[N]EQ macros
2018-04-11 10:23:17 +02:00
Tom M
f4f439180d
Merge pull request #365 from FluidSynth/preset-stack-removal
...
Preset stack removal
2018-04-11 10:14:32 +02:00
derselbst
b76aeead01
remove obsolete alloc preset comments
2018-04-11 10:05:24 +02:00
derselbst
0af950a1e2
avoid swapping rvoices when can_access_rvoice is false
2018-04-11 09:56:42 +02:00
derselbst
036595f7db
avoid duplicate call of fluid_rvoice_set_output_rate()
2018-04-11 09:56:03 +02:00
Marcus Weseloh
839f62f89d
Remove unused variable
2018-04-10 22:09:33 +02:00
Marcus Weseloh
fdd6804ae8
Prevent uninitialized use of prev_preset and assume VintageDreams soundfont for test
2018-04-10 22:08:09 +02:00
derselbst
0ccb0460fb
update rvoice function related docs
2018-04-09 16:57:34 +02:00
derselbst
5034e0ca8b
rename fluid_rvoice_eventhandler_push*()
2018-04-09 16:40:25 +02:00
derselbst
b4456d1b4c
rename EVENT_PARAMS to MAX_EVENT_PARAMS
2018-04-09 16:32:32 +02:00
Marcus Weseloh
efa97718fa
Increase soundfont references only when assigning preset to channel
...
Previously, the refcount was increased when retrieving a preset from
a soundfont. That doesn't really make sense anymore.
2018-04-08 23:03:14 +02:00
Marcus Weseloh
c6bdc4bc12
Add test for sfont preset iteration
2018-04-08 23:03:14 +02:00
Marcus Weseloh
5a8880560d
Remove now invalid comments about having to free presets
2018-04-08 23:03:14 +02:00
Marcus Weseloh
1a1bf7d0ea
Remove now obsolete preset stack code and struct members
2018-04-08 23:03:14 +02:00
Marcus Weseloh
66610abcb9
Refactor fluid_preset_t handling in defsfont and ramsfont
...
Removes the need for a pre-allocated stack of fluid_preset_t's. Upon
adding a loader specific preset, a fluid_preset_t is automatically
created. defsfont and ramsfont now keep track of the fluid_preset_t's,
not the loader specific ones.
Also changes the sfont::iteration_next signature to directly return
the next preset. This is possible as presets are now only created once
and returned as a pointer.
2018-04-08 22:59:55 +02:00
derselbst
0bfa332fd9
remove redundant call to fluid_synth_set_sample_rate()
...
on synth creation
2018-04-08 18:49:18 +02:00
derselbst
ddd14cb00b
duplicate rvoice_eventhandler in fluid_voice_t
...
avoiding several indirection to access it
2018-04-08 18:35:54 +02:00
derselbst
7c2e76f2f3
avoid NULL deref during voice creation
...
by executing rvoice event function directly instead of enqueueing events
2018-04-08 18:12:53 +02:00
derselbst
9c44aaba62
remove fluid_rvoice_eventhandler_push5()
2018-04-08 17:35:31 +02:00
derselbst
7ae9099293
unify rvoice update functions calling conventions
...
by proper typedefing
2018-04-08 17:22:57 +02:00
Tom M
189433a757
Merge pull request #363 from FluidSynth/197
...
rvoice_* related cleanup
2018-04-08 13:49:06 +02:00
Tom M
dcb54f8438
Merge pull request #361 from FluidSynth/unit-test
...
Introduce unit tests
2018-04-08 13:45:43 +02:00
derselbst
11f5950284
rename fluid_sample_null_ptr()
...
to better reflect its purpose
2018-04-08 12:45:54 +02:00
derselbst
a25f816c33
unify chrous and reverb types
2018-04-08 12:34:42 +02:00
derselbst
aa0d32f29a
remove unused fluid_voice_write()
2018-04-08 12:18:38 +02:00
derselbst
5829fdc27c
remove obsolete synth.parallel-render setting
2018-04-08 12:10:33 +02:00
derselbst
a7bb2e8a08
remove obsolete fluid_rvoice_eventhandler_t::is_threadsafe
2018-04-08 12:07:10 +02:00
derselbst
5698106dde
fix various doxygen warnings
2018-04-08 10:36:52 +02:00
derselbst
4623fe3eb3
make fluid_synth_remove_sfont() return FLUID_OK|FAILED
2018-04-08 10:19:57 +02:00
Tom M
b37157b709
Merge pull request #362 from jnonis/master
...
Fix for LADSPA chorus send port.
2018-04-08 10:08:32 +02:00
derselbst
9bbd676f4e
disable ctest verbose output
2018-04-08 10:04:53 +02:00
derselbst
2cd2c40cd0
add unit test for soundfont [un|re]loading
2018-04-08 10:04:53 +02:00
derselbst
b34e5bbc36
reformat test/README.md
2018-04-08 09:41:15 +02:00
Marcus Weseloh
fa0d103907
Remove unnecessary debug warnings for equal sample loopstart and loopend
2018-04-08 00:07:25 +02:00
derselbst
4ede11e71f
remove redundant struct _fluid_sfont_info_t
...
integrate its members into fluid_sfont_t
2018-04-07 22:17:08 +02:00
derselbst
c58f3eb868
make test_sample_cache C90 compliant
...
and fix link in test/README.md
2018-04-07 19:09:49 +02:00
derselbst
2c3e59f8ee
disable unit tests for appveyor (without vcpkg)
2018-04-07 19:09:49 +02:00
derselbst
87bbba9069
disable unit tests on macosx
...
libintl is not found for some reason
2018-04-07 19:09:49 +02:00
derselbst
4ce0e3eced
add unit test README
2018-04-07 19:09:49 +02:00
derselbst
6ab1c7fde3
avoid memory leak during sample import
2018-04-07 18:21:25 +02:00