Commit graph

97 commits

Author SHA1 Message Date
Paul Fd
92f741687e Differentiate between releasing and "offed"
The goal is to be able to off voices in their release stage, possibly shortening the release tail
2021-06-25 17:59:48 +02:00
Paul Ferrand
3d6987d47c
Merge pull request #917 from praashie/develop
Fix group cutting behavior with CC triggered samples (such as sustain pedals)
2021-06-23 08:17:20 +02:00
Paul Fd
e4b4dcd655 Add a test case 2021-06-23 00:17:02 +02:00
Paul Ferrand
0c8beed6ca
Merge branch 'develop' into release-sustain 2021-06-23 00:08:15 +02:00
Paul Fd
4defdce04a Reset to default CC values 2021-05-23 17:31:48 +02:00
Paul Fd
8e13b232a3 Add tests 2021-05-23 15:31:59 +02:00
Jean Pierre Cimalando
8551caebf6 Build time optimization: resources 2021-04-25 04:55:30 +02:00
Paul Fd
93f907f0ca Update channel aftertouch API
and version numbers in new APIs
2021-04-15 23:17:46 +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 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 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
Jean Pierre Cimalando
da621bf5ec Move all regional state into Layer 2021-03-26 03:21:20 +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
Jean Pierre Cimalando
a2cbec8c5e Update tests: increase delays to account ADSR fadeout 2021-03-22 22:25:53 +01:00
Jean Pierre Cimalando
e45dfbc50b Have bit_array as a distinct library 2021-02-23 02:57:28 +01:00
Paul Ferrand
ce1dda54e6
Merge pull request #630 from paulfd/aftertouch
Preliminary work for aftertouch handling
2021-02-12 10:04:07 +01:00
Paul Ferrand
da41ed5076
Merge pull request #632 from paulfd/noexcept-compile-error
Corrected a compile error on gcc 9.3
2021-02-12 10:03:37 +01:00
Paul Fd
293e7a935f WIP 2021-02-11 06:10:10 +01:00
Paul Ferrand
b1f7a4bd66 Change the way the defaults and bounds for the opcodes are handled and read 2021-02-11 06:10:10 +01:00
Paul Ferrand
6b4f535d9c Add tests for extended cc triggers on aftertouch 2021-02-11 06:08:36 +01:00
Paul Ferrand
a7cfb8429c Fixups for MOD 2021-02-08 12:02:26 +01:00
Jean Pierre Cimalando
751e4f96bb Add the reception of CC messages for editor 2021-02-02 20:13:15 +01:00
Jean Pierre Cimalando
aa29e1a411 Add test 2020-11-12 08:17:19 +01:00
Paul Ferrand
1fcfbdbaf7 move getNumActiveVoices in the voiceList 2020-11-01 08:33:18 +01:00
Paul Ferrand
f21864cdc7 Reinsert default hdcc 2020-11-01 08:33:18 +01:00
Paul Ferrand
3214211a06 Refactor of Synth and Voice into a pimpl pattern 2020-11-01 08:33:18 +01:00
Jean Pierre Cimalando
e6ecbc6fcd Make the Region::sampleId shared_ptr 2020-10-21 01:36:09 +02:00
Paul Ferrand
51459c8f2d Updated/added tests 2020-09-23 13:34:01 +02:00
Jean Pierre Cimalando
3cf7536c57 Store the initial values of controllers 2020-09-16 14:45:32 +02:00
Paul Ferrand
f9cf9b35e6 Move NumericId into utility 2020-09-11 17:04:13 +02:00
JP Cimalando
ed6c9557f7
Merge pull request #413 from paulfd/choking-across-cc-switches
Regions on the same note but with different groups do get muted
2020-09-10 08:06:25 +02:00
Paul Ferrand
1fcd3077ae Correct the condition for the envelope to free-run 2020-09-09 15:23:15 +02:00
Paul Ferrand
d2e8c0548f Regions on the same note but with different groups do get muted
This happens e.g. with keyswitches. This behavior is slightly different from Cakewalk's apparently.
2020-09-09 13:06:24 +02:00
Paul Ferrand
863a08c421 Use Cakewalk/RGC behavior for self-choking notes
Basically if group=off_by, a note will not choke other voices with the same note number
2020-09-07 23:18:02 +02:00
Paul Ferrand
dda10e8530 Use a trigger event type instead of passing 3 parameters 2020-09-07 22:25:29 +02:00
Paul Ferrand
f6f1e68f18 Sustain tweaks:
- Separate the sustain value from the sustain threshold after which the envelope goes from decay to sustain
- If the sustain value is set to 0, the envelope is freerunning
2020-08-19 19:13:50 +02:00
Paul Ferrand
cef44cbdb6 Disabled regions don't need to take up polyphony
The tests were a bit flaky and the did not seem justified by any behavior in e.g. ARIA
The new tests cover a similar situation which is validated in sforzando
2020-08-19 11:08:18 +02:00
Paul Ferrand
05de17e32e The sustain cc is still a CC and has to be registered in the regions 2020-08-18 22:36:00 +02:00
Jean Pierre Cimalando
be252361b6 Update existing tests and add new ones 2020-08-17 16:31:57 +02:00
JP Cimalando
5bbc0cbeb8
Merge pull request #351 from jpcima/anonymous-ccs-mm
Anonymous CCs with modulation matrix
2020-08-10 18:53:59 +02:00
Paul Ferrand
44dbbcaf54 Updated tests 2020-08-10 17:22:49 +02:00
Paul Ferrand
e660b80042 Check all used CCs and output them in the MIDNAM file if they have no name 2020-08-10 02:13:59 +02:00
Jean Pierre Cimalando
e08314f2c8 Fix pathnames such that tests can run from the project root 2020-08-10 00:57:27 +02:00