Commit graph

1696 commits

Author SHA1 Message Date
Jean Pierre Cimalando
c820484e0f Add missing CCs forgotten from the used set 2021-04-05 18:18:27 +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
JP Cimalando
77c403186c
Merge pull request #775 from jpcima/build-side-num-ccs
Make a variable SFIZZ_NUM_CCS available to cmake
2021-04-05 14:20:20 +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
b3ff1469ed Correct how sampleEnd is computed
sampleSize_ is (end - offset) and is used to wrap back the sample.
2021-04-04 21:22:22 +02:00
Paul Fd
ac27e060ba Apply velocity-related note gain to a CC-triggered note
if the velocity has been replaced with `sw_vel=previous`
2021-04-04 17:54:08 +02:00
Paul Fd
78e20c68bf Override the velocity in the startVoice method 2021-04-04 17:26:40 +02:00
Paul Fd
65353486a9 Use noteStates to check for the note status in the midi state 2021-04-04 17:22:09 +02:00
Jean Pierre Cimalando
bc872997ff Make a variable SFIZZ_NUM_CCS available to cmake 2021-04-04 15:58:25 +02:00
Jean Pierre Cimalando
bbac05281d Update InstrumentDescription to receive the image name 2021-04-03 23:51:29 +02:00
Jean Pierre Cimalando
53a5e989e5 Pull model for current CC and switch 2021-04-03 23:26:14 +02:00
Jean Pierre Cimalando
d729ba66e6 Consistency in /sw/last/current replies 2021-04-03 23:25:19 +02:00
Jean Pierre Cimalando
d03495d568 Handle message /cc/changed 2021-04-03 23:25:19 +02:00
Jean Pierre Cimalando
9d3e365f2e Instrument description in VST and LV2 2021-04-03 23:25:19 +02:00
Jean Pierre Cimalando
6fc69520c4 Fix an OSC pattern 2021-04-03 23:25:19 +02:00
redtide
49c5be7f57 Support DecentSampler ui bgImage 2021-04-03 21:10:27 +02:00
JP Cimalando
8f33c90ffb
Merge pull request #769 from redtide/image-opcode
image opcode
2021-04-03 20:41:17 +02:00
redtide
0c4f136874 Added image opcode 2021-04-03 19:44:40 +02:00
Paul Fd
2c31855137 Cache ids for faster lookup 2021-04-02 15:08:15 +02:00
Paul Fd
fd8311de7f Add missing chanaft connections to lfos 2021-04-02 14:01:39 +02:00
Paul Fd
78db0b73db Cache the region pitch keycenter at voice start 2021-04-02 13:35:57 +02:00
Jean Pierre Cimalando
68b74cd237 New fixes for clang-tidy 2021-04-01 17:08:26 +02:00
Jean Pierre Cimalando
3466583e47 Write an explicit 0 next to FilCutoff (v1) keys 2021-04-01 15:06:47 +02:00
Jean Pierre Cimalando
d8d877b2f1 Add the filter targets 2021-04-01 15:03:01 +02:00
Jean Pierre Cimalando
779cf2afff Rewrite some EG/LFO targets with helper 2021-04-01 14:01:43 +02:00
Jean Pierre Cimalando
2200191d2a Create a helper to get the source depth key 2021-04-01 13:45:41 +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
1052025072 Implement some oncc for EGv2 2021-04-01 02:56:18 +02:00
Jean Pierre Cimalando
ea7bb1cf6c Implement some oncc for LFOv2 2021-04-01 02:49:01 +02:00
Jean Pierre Cimalando
de7d47a9f1 Handle multiplicative depth modulations 2021-04-01 02:47:40 +02:00
Jean Pierre Cimalando
fb01fa7cfd Fix the value bounds in ADSR 2021-04-01 01:39:30 +02:00
Jean Pierre Cimalando
f4c7efeef5 Normalize percent values everywhere 2021-04-01 00:29:26 +02:00
Jean Pierre Cimalando
d509842d08 Consistency again 2021-03-31 17:19:30 +02:00
Jean Pierre Cimalando
28f44afb4a Fix mistake: using incorrect size 2021-03-31 17:12:00 +02:00
Jean Pierre Cimalando
cb9d61757d Minor change, for consistency only 2021-03-31 17:10:15 +02:00
Jean Pierre Cimalando
0041432d83 Implement a substitute for aligned-new 2021-03-31 16:35:37 +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
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
6b9671b729 Declare Resources as struct not class 2021-03-30 22:38:39 +02:00
Jean Pierre Cimalando
2db25f5468 Fix the boolean version of normalizeInput 2021-03-30 22:38:22 +02:00
JP Cimalando
689bb99e40
Merge pull request #750 from jpcima/stateless-region
Make the region stateless
2021-03-30 21:53:46 +02:00
Jean Pierre Cimalando
6a6936f205 Avoid a copy 2021-03-30 18:06:51 +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