Commit graph

204 commits

Author SHA1 Message Date
Paul Ferrand
5cbd21af51 For libraries that do not specify keyswitch ranges
only add regions to the activation list
if it has actual keyswitch opcodes
2019-12-30 00:32:15 +01:00
Paul Ferrand
644b678880 Removed the assertion since it may create issues when
missing notes
2019-12-30 00:30:39 +01:00
Paul Ferrand
0d0cf64405 Changed the legato logic
The midistate now counts the active notes instead of it
being per-region
2019-12-30 00:10:20 +01:00
Paul Ferrand
2dbc870f9a Added a new method to ranges 2019-12-29 23:09:34 +01:00
Paul Ferrand
146253c3b7 Changed the off-group logic
and some cosmetics
2019-12-29 23:00:45 +01:00
Paul Ferrand
126e4674db One more level of dispatch in the synth
This is in order to be able to trigger note-off regions without killing
all notes of the same group
2019-12-29 23:00:20 +01:00
Paul Ferrand
7aff30f58a If multiple loop regions in the file take the 1st 2019-12-29 22:59:19 +01:00
Paul Ferrand
63cc8ef26e Cosmetics 2019-12-29 21:17:57 +01:00
Paul Ferrand
693a2008a9 Unknown opcodes were truncated by the C wrapper
Thanks @alcomposer for the patch
Fixes #18
2019-12-29 18:11:22 +01:00
Paul Ferrand
2c8a286e37 Clamp the various values for good measure 2019-12-29 18:04:11 +01:00
Paul Ferrand
342f1b13d8 Do not "auto-off" simultaneous events 2019-12-29 17:23:10 +01:00
Paul Ferrand
fb2287b729 Reinstated the volume envelope using the new
multiplicative envelope
2019-12-29 16:40:39 +01:00
Paul Ferrand
1c2d8f4399 Added the volumeCC parsing and proper range 2019-12-29 12:18:39 +01:00
Paul Ferrand
f9763c0058 Proper behavior when sustain = 0 2019-12-29 12:18:00 +01:00
Paul Ferrand
8dc532b58d Enable looping if unset in the region 2019-12-29 10:50:07 +01:00
Paul Ferrand
3aa341e0aa Only update the loop points if set to defaults 2019-12-29 10:38:15 +01:00
Paul Ferrand
88ce956dd3 Clamp the values in range for velocity and
CC switched envelopes
2019-12-28 22:39:20 +01:00
Paul Ferrand
4a25e6a4b8 Added a clearer name for the velocity normalization 2019-12-28 22:31:53 +01:00
Paul Ferrand
f02f96cad5 Moved the file modification checks in the library
This allows to transparently check the included files
2019-12-27 18:41:26 +01:00
Paul Ferrand
33d035804f Add the root file in the included file vector 2019-12-27 18:39:10 +01:00
Paul Ferrand
8872075102 CMake updates to be used as a subdirectory 2019-12-25 22:32:07 +01:00
Paul Ferrand
f7e454dad8 Removed the stupid constexpr 2019-12-23 21:45:17 +01:00
Paul Ferrand
63cdf10a9a Noop 2019-12-23 21:44:59 +01:00
Paul Ferrand
d25d0d5e49 Some more cleanup 2019-12-23 19:26:21 +01:00
Paul Ferrand
a177c5a9c2 Variadic functions in SIMD templates 2019-12-23 19:00:22 +01:00
Paul Ferrand
fa58958dd8 Variadic functions in math helpers 2019-12-23 18:59:33 +01:00
Paul Ferrand
1d73daee68 Redundant inlines 2019-12-23 18:33:22 +01:00
Paul Ferrand
ba4c64adea Readability cleanup 2019-12-23 18:32:42 +01:00
redtide
38b1eaaaa4 Merge branch 'develop' of github.com:sfztools/sfizz into develop 2019-12-23 05:19:55 -08:00
redtide
a3fc603dc7 macOS build support 2019-12-23 05:13:29 -08:00
Paul Ferrand
b69b40734e Plug an lsan leak
Still not sure it's a real leak but let's pay a copy to be certain!
2019-12-23 14:07:19 +01:00
Paul Ferrand
7379ba37c0 The file promise logic actually allocated
Changed to add a pool of "empty" promises, but I
wonder if all of this could be made a bit simpler?
2019-12-23 13:59:43 +01:00
Paul Ferrand
13f9baed33 Added leak detectors on newer objects 2019-12-23 13:58:42 +01:00
Paul Ferrand
68dfadb09e Refactor the filepool a bit 2019-12-23 12:42:33 +01:00
Paul Ferrand
8d3c6d3199 Docs 2019-12-23 12:02:26 +01:00
Paul Ferrand
8e39ffc18e Remove the channels from the inner engine 2019-12-23 01:25:20 +01:00
Paul Ferrand
24f52b255f Properly initialize the atomic guards 2019-12-23 01:15:57 +01:00
Paul Ferrand
0784f8ddcd Corrected bugs in the oversampler 2019-12-23 00:07:10 +01:00
Paul Ferrand
d6136b6bf9 Refactor the filepool loading for streaming 2019-12-22 23:37:57 +01:00
Paul Ferrand
9d53878873 Add a chunkSize config parameter
This is related to file streaming when background loading
2019-12-22 23:37:44 +01:00
Paul Ferrand
68fb7fe0d9 Change the oversampling enum to enum class 2019-12-22 23:37:22 +01:00
Paul Ferrand
9187e0db41 Refactor the oversampling helpers 2019-12-22 23:36:34 +01:00
Paul Ferrand
d813cd8a04 Refactor the Audio buffer and span 2019-12-22 23:35:27 +01:00
Paul Ferrand
528593fa76 Added atomic guards to clear promises
And a specific thread to avoid useless race conditions
2019-12-22 19:12:17 +01:00
Paul Ferrand
d1e031e8e2 Added a method to FilePromise to get a data source 2019-12-22 18:39:05 +01:00
Paul Ferrand
b208d8faca No need for AudioBuffers for intermediate buffers
File reading can use dumb buffers
2019-12-22 11:10:50 +01:00
Paul Ferrand
d6c49ef827 Corrected a bug in the release logic
The correct check was that the remaining delay is strictly more than 0, and added a max for good measure.
2019-12-22 10:45:25 +01:00
Paul Ferrand
ca7c4f2939 Removed seemingly redundant casts 2019-12-22 01:12:49 +01:00
Paul Ferrand
92aaa2a17e Added proper support for off_modes 2019-12-21 21:24:49 +01:00
Paul Ferrand
ed7d5369a7 Added note_offset and octave_offset 2019-12-21 18:57:32 +01:00