Commit graph

588 commits

Author SHA1 Message Date
Paul Ferrand
28727ce877
Merge pull request #831 from paulfd/silence-files
Small, all zero files are replaced by *silence
2021-04-15 18:54:22 +02:00
Jean Pierre Cimalando
dee8934b9e Allow OpcodeSpec to process enums too 2021-04-15 17:02:38 +02:00
Paul Fd
16a790a33d Small, all zero files are replaced by *silence 2021-04-15 11:02:04 +02:00
Paul Fd
2d6b99e1ab Deprecate the internal oversampling factor
- Removed it completely from the library
- Kept the API for future work
2021-04-14 08:21:12 +02:00
Jean Pierre Cimalando
94be9902c1 Sample quality controls in UI 2021-04-10 20:52:16 +02:00
Paul Ferrand
0df5a379a2
Merge pull request #771 from paulfd/ordered-events-2
Out-of-order API update
2021-04-05 14:29:39 +02:00
Paul Fd
cfb9eae68f Test and API doc update w.r.t. ordering
Updated tests mostly to call on `renderBlock()` before testing things like number of active voices and such, in case we buffer/reorder events in the library later on.
2021-04-05 14:13:34 +02:00
Paul Ferrand
254d00768e
Merge pull request #761 from paulfd/osc-region-change
Updating regions through OSC
2021-04-05 00:15:07 +02:00
Paul Fd
993620252b Support polyphonic aftertouch basics 2021-04-04 23:07:43 +02:00
Paul Fd
0c1687b5fa Voices can also be offed by note-off events
Also add a check to see if a voice is already released in checkOffGroup,
preventing and endless recursion
2021-04-04 22:24:43 +02:00
Paul Fd
f189292a60 CC events can also off notes
Same as note-on events
2021-04-04 21:54:19 +02:00
Paul Fd
7f02c413c1 Correct the sostenuto/sustain logic
Only release if the received CC is one of the above AND if the region is not a one-shot
2021-04-04 21:23:05 +02:00
Paul Fd
fd8311de7f Add missing chanaft connections to lfos 2021-04-02 14:01:39 +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
ed8a321a3c Update tests without clamped values 2021-04-01 02:01:07 +02:00
Jean Pierre Cimalando
f4c7efeef5 Normalize percent values everywhere 2021-04-01 00:29:26 +02:00
Paul Fd
b3a73814d5 Support the extended CCs of SFZv2 except poly aftertouch
Poly aftertouch can be added in the future in a similar way
2021-03-31 13:55:11 +02:00
JP Cimalando
40d18f0e23
Merge pull request #753 from paulfd/lfo-cc
Add lfoN_fade_oncc, lfoN_delay_oncc, lfoN_phase_oncc
2021-03-31 02:11:37 +02:00
Paul Fd
ff6f7a3251 Add connection test 2021-03-30 23:39:17 +02:00
Paul Fd
10c5e64ba1 Add CC modifiers to end, loop_start, loop_end
The end cc modifiers are computed at voice start like the offset
The loop cc modifiers are updated in each block
2021-03-30 23:04:06 +02:00
Jean Pierre Cimalando
5777e65578 Remove the indirection 2021-03-30 17:49:17 +02:00
Paul Fd
a4dbf89766 Add lfoN_fade_oncc, lfoN_delay_oncc, lfoN_phase_oncc
The phase modifier is actually an  "audio rate" modifier with curve, step and smoothcc options.
The v2 spec only had oncc, which would limit it to a set value with the LFO starts, but having it at audio rate makes sense if you want to tweak the phase while the LFO is running.
2021-03-30 10:05:09 +02:00
Jean Pierre Cimalando
da621bf5ec Move all regional state into Layer 2021-03-26 03:21:20 +01:00
Jean Pierre Cimalando
68062432ed Move some utility files 2021-03-25 18:35:20 +01:00
JP Cimalando
df5b3a10e4
Merge pull request #739 from paulfd/sostenuto
Sostenuto
2021-03-25 16:07:46 +01:00
Jean Pierre Cimalando
014171f815 Fix a parsing error in presence of # sign 2021-03-25 13:50:37 +01:00
Paul Fd
65ea4a27bf Working state 2021-03-24 13:32:38 +01:00
Paul Fd
8539508e0a WIP on the region state 2021-03-24 13:32:38 +01:00
Paul Fd
ed09e30fcf Missing the delayed release logic for sostenuto 2021-03-24 13:32:38 +01:00
Paul Fd
0a065a392c WIP 2021-03-24 13:32:38 +01:00
Paul Fd
df07f3ac82 Read and parse sostenuto-related stuff 2021-03-24 13:32:38 +01:00
Jean Pierre Cimalando
2fb69867c4 Fix Range ADL for some MSVC versions 2021-03-23 17:00:43 +01:00
Jean Pierre Cimalando
a2cbec8c5e Update tests: increase delays to account ADSR fadeout 2021-03-22 22:25:53 +01:00
Jean Pierre Cimalando
107bfbb255 Add unit tests 2021-03-21 16:59:08 +01:00
Jean Pierre Cimalando
f17bc1a8bc Fix incorrect bound enforcement due to truncation 2021-03-21 12:40:37 +01:00
Jean Pierre Cimalando
0196fb57ad Remove opcode limits 2021-03-19 23:59:41 +01:00
Jean Pierre Cimalando
9ebd02bf38 Add UncheckedRange 2021-03-19 21:05:01 +01:00
Jean Pierre Cimalando
4dc429a572 Make the aftertouch opcode normalized 2021-03-19 14:34:32 +01:00
Jean Pierre Cimalando
c70601a714 Update tests 2021-03-19 12:24:22 +01:00
Jean Pierre Cimalando
e77a227cbf Connect unit tests with CTest 2021-03-18 00:42:04 +01:00
Jean Pierre Cimalando
fe2fc45014 Update catch2 2021-03-18 00:41:37 +01:00
Jean Pierre Cimalando
de7c125c54 Add connections unit test 2021-03-11 08:11:07 +01:00
Jean Pierre Cimalando
dfd777fd3e Move LFO modulation keys into the description 2021-03-10 16:48:25 +01:00
Paul Fd
5d8eda7428 Better messaging 2021-03-05 13:06:07 +01:00
Paul Fd
f2a79723a7 Add support for count 2021-03-04 16:11:34 +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
a0d8b23bff Fix warning in tests 2021-02-24 02:28:25 +01:00
Paul Ferrand
a4d52e6faf
Merge pull request #653 from paulfd/delay-oncc
Add delay_cc and delay_oncc
2021-02-23 18:37:21 +01:00
Paul Ferrand
7782ded3e5
Merge pull request #650 from paulfd/sw-vel
Add sw_vel
2021-02-23 18:37:12 +01:00
Paul Fd
669f7ff79e Consider the previous velocity for triggers 2021-02-23 13:45:29 +01:00