Commit graph

87 commits

Author SHA1 Message Date
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
Paul Ferrand
1b5a841d97 Handle default switch at all levels 2020-08-09 22:57:28 +02:00
Paul Ferrand
bbf22b058e Small test cleanups 2020-08-09 16:02:14 +02:00
Paul Ferrand
a3943abf79 Added tests 2020-08-09 11:05:58 +02:00
Paul Ferrand
f631f7031d Update the tests 2020-08-08 23:54:10 +02:00
Paul Ferrand
6086284efe If the region spans multiple keys they can all fire on pedal up 2020-08-08 23:54:10 +02:00
Jean Pierre Cimalando
ab6086b6c5 Rebase on develop and fix sustain tests 2020-07-26 14:08:10 +02:00
Paul Ferrand
c2716c3bea getNumActiveVoices takes a boolean flag to recompute the number of active voices
All tests updated as this was the previous default behavior.
2020-07-26 14:04:30 +02:00
Paul Ferrand
2d7e81edef Support for sustain_lo 2020-07-19 23:09:36 +02:00
Paul Ferrand
6d56aaaa6c Correctly dispatch the CC to the region if it's a sustain
...with some tests
2020-07-01 16:21:30 +02:00
JP Cimalando
4764a5e79a
Merge pull request #273 from paulfd/synth-tests
Move the "synth" tests mostly to inline files
2020-06-20 00:08:14 +02:00