Commit graph

74 commits

Author SHA1 Message Date
Paul Fd
1e771a45e7 Reenable and fix tests
- Add ASAN workflows
- Remove flag messages from configure; these are misleading as they exclude `COMPILE_OPTIONS`
- Fix non-working tests
- Fix WavPack file loading on Windows
- Fix ASAN traps in LoFi code due to a SIMD `loadu` call in HIIR resamplers
- Add tests for st_audiofile
-
2023-08-07 22:48:42 +02:00
Python Blue
507c61d458 Fix modulation matrix when CC modulations are per voice 2023-08-07 22:03:11 +02:00
Paul Ferrand
8e4e6460d8 Add a test 2023-05-28 16:37:23 +02:00
redtide
4c819222a0 More optional system preinstalled dependencies
Catch2, ghc-filesystem, lv2 headers and VST3SDK sources preinstalled system packages can be used,
optionally and where available, to build sfizz via CMake options:

SFIZZ_USE_SYSTEM_CATCH
SFIZZ_USE_SYSTEM_GHC_FS
SFIZZ_USE_SYSTEM_LV2
SFIZZ_USE_SYSTEM_VST3SDK
2023-03-29 09:13:25 +02:00
Jean Pierre Cimalando
8bf488897b tests: workaround for incomplete C++17 runtime on macOS 2021-09-22 05:47:26 +02:00
Jean Pierre Cimalando
3fd0d4ee5d Add jsl::aligned_unique_ptr and jsl::make_aligned 2021-09-22 03:12:52 +02:00
Paul Fd
2d3b62b69c Add Midnam bindings in C++
And a couple tests...
2021-04-16 02:09:10 +02:00
Paul Fd
6826024ee2 Updating regions through OSC
For a limited selection of opcodes, we can allow updates through OSC.
This implements an "opcode buffer" that gets read at the beginning of the render loop in the RT thread.
Any opcode updates must thus be RT-safe, so not all of them should be allowed.
I added a parameter to disable the opcode name cleanup method which does allocate strings potentially.
This means that the opcodes must be "correctly" normalized.
For example,  for `lfoN_wave`, we have to pass `lfoN_wave1` in the opcode buffer.
2021-04-01 06:32:42 +02:00
Jean Pierre Cimalando
e77a227cbf Connect unit tests with CTest 2021-03-18 00:42:04 +01:00
Jean Pierre Cimalando
1818f2e927 Add methods to get oversampler factor given in/out rates 2021-02-24 07:39:35 +01:00
Jean Pierre Cimalando
c110acc966 Provide the spin mutex as internal library 2021-02-02 14:19:12 +01:00
Jean Pierre Cimalando
f3c1b664dd Remove project() where not necessary 2020-12-14 14:25:31 +01:00
Jean Pierre Cimalando
f063062f7c Make a separate target for sfizz::internal, for tests and benchmarks 2020-12-14 13:49:36 +01:00
Jean Pierre Cimalando
3a9accba4b Put dependency libraries in namespaces 2020-12-14 08:20:01 +01:00
Paul Ferrand
171a5e5083 Initial 2020-12-12 11:13:20 +01:00
Jean Pierre Cimalando
722225f9f2 Add OSC and plugin-side communication 2020-11-05 05:48:24 +01:00
Jean Pierre Cimalando
3332687a41 Move feature out of tests and in their own directory 2020-11-01 10:56:49 +01:00
Jean Pierre Cimalando
d5aad58366 Eliminate the strict requirement of libsndfile 2020-10-28 16:34:52 +01:00
Paul Ferrand
3bac650498 Add a NEON codepath for panning and width 2020-09-20 19:50:19 +01:00
Paul Ferrand
f317e2f6b9 Add flex eg tests, move test helpers around, and add a more verbose mod matrix graph output 2020-09-16 09:03:39 +02:00
Jean Pierre Cimalando
0c8a57e843 Enable fast-math only on sfizz DSP targets 2020-09-02 00:36:49 +02:00
JP Cimalando
09341723c3
Merge pull request #338 from jpcima/mm+lfo
LFO
2020-08-13 13:40:07 +02:00
Paul Ferrand
73b1ed961d Add LFO regression tests
The reference files have been visually validated

Tweaks for the LFO regression test
2020-08-13 06:49:38 +02:00
JP Cimalando
95bf4fc480
Merge pull request #333 from jpcima/file-metadata
File metadata
2020-08-10 19:02:10 +02:00
Paul Ferrand
44dbbcaf54 Updated tests 2020-08-10 17:22:49 +02:00
Jean Pierre Cimalando
34d6ed0291 Add the program to display file wavetable info 2020-08-09 23:45:19 +02:00
Jean Pierre Cimalando
0d316399db Add the LFO plotting tool 2020-08-09 21:46:54 +02:00
Jean Pierre Cimalando
82ebb639a7 Remove unused code, update tests 2020-08-09 20:41:44 +02:00
Jean Pierre Cimalando
675d7f3fc5 Add modulation matrix 2020-08-09 20:40:43 +02:00
Jean Pierre Cimalando
f889e9e754 Add the spinlock mutex 2020-07-15 11:55:33 +02:00
Paul Ferrand
5ef921485b Add the region sets (hierarchy)
Link the voice lifecycle into region sets and polyphony groups
Respect crudely the polyphony limits without stealing for now
2020-07-02 08:54:31 +02:00
Jean Pierre Cimalando
0ccc57acce Remove the old test file from CMake 2020-06-20 15:46:38 +02:00
Jean Pierre Cimalando
fb190340a3 Add the smoother demo client 2020-06-20 15:27:20 +02:00
Paul Ferrand
0ed1f4cbeb Clean up the va OPF and wrap it as a linear smoother
Move modifiers and their helpers in their own files
Add an enum class for modifiers and facilities to iterate over all possible targets
Add smoothers to the voices and preallocate them
Iterate over smoothers and modifiers jointly in the voices for each target
2020-06-20 15:27:12 +02:00
JP Cimalando
ba07765133
Merge pull request #278 from jpcima/fast-random
Add the fast random number generator
2020-06-19 20:34:10 +02:00
Jean Pierre Cimalando
4d1f294883 Add the fast random number generator 2020-06-16 15:33:35 +02:00
Paul Ferrand
f2b334c567 Implement helpers for the swap and pop idioms
This code is repeated from place to place, I figured having a central place to put it and test it was OK.
2020-06-15 10:59:12 +02:00
Jean Pierre Cimalando
6b906192de Stretch tuning demo 2020-06-11 21:25:33 +02:00
Paul Ferrand
c48e14ee2b Add interpolator tests 2020-06-11 02:02:39 +02:00
Jean Pierre Cimalando
dfd10a0977 Add the tuning control 2020-05-29 12:33:48 +02:00
Jean Pierre Cimalando
17fbff5ab5 Add the support of FLAC loops 2020-05-17 15:40:03 +02:00
Jean Pierre Cimalando
cbc037e055 Add RTSemaphore and tests 2020-04-13 16:32:40 +02:00
Paul Ferrand
75c27b0577 Disable the "updated" tests in favor of integration tests 2020-04-01 09:40:26 +02:00
Paul Ferrand
2400a6adcc Remove ADSR tests for now until updates from jpc 2020-03-31 00:03:21 +02:00
Jean Pierre Cimalando
9019ae3aef Some parser fixes 2020-03-28 00:28:50 +01:00
Jean Pierre Cimalando
30c8d25a59 Initial parser rework 2020-03-28 00:28:50 +01:00
Jean Pierre Cimalando
6e733e8c11 Add the wavetable oscillator and demo 2020-03-15 23:30:33 +01:00
Jean Pierre Cimalando
9d4d857e97 Add wavetable selection by frequency 2020-03-15 23:30:33 +01:00
Jean Pierre Cimalando
e6b0b31f9b Add the wavetable generator 2020-03-15 23:30:33 +01:00
Paul Fd
d10536f07f Add tests for Curve 2020-03-15 02:09:40 +01:00