Commit graph

618 commits

Author SHA1 Message Date
Paul Ferrand
af902ee8b0
Merge pull request #938 from paulfd/veltrack-oncc
veltrack_oncc and veltrack_curvecc
2021-07-11 00:31:02 +02:00
Paul Ferrand
6748c1ed02
Merge pull request #935 from paulfd/pianobook
Store files to load and their offset and defer loading
2021-07-05 23:46:48 +02:00
Paul Ferrand
2be91453e8
Merge pull request #941 from paulfd/salamander
Passing lokey=-1 does not reactivate the note trigger
2021-07-05 18:28:20 +02:00
Paul Fd
5fc3db6ad4 Passing lokey=-1 does not reactivate the note trigger 2021-07-05 12:06:15 +02:00
Paul Fd
559464684a CC Triggers also considers sequences 2021-07-05 11:31:24 +02:00
Paul Fd
3658de4497 Add amp and pitch veltrack oncc 2021-07-05 09:22:07 +02:00
Paul Fd
f84cacebf6 Rename the stateful free functions 2021-07-05 09:12:35 +02:00
Paul Fd
66ec8c4423 Move the stateful region value computations in a separate file 2021-07-04 19:32:17 +02:00
Paul Fd
5527282159 Parse the relevant inputs 2021-06-29 10:48:53 +02:00
Paul Fd
c382b8894e Negative group IDs 2021-06-27 22:35:41 +02:00
Paul Fd
5da331cf18 Parse CC modifiers for flex EGs 2021-06-26 22:44:46 +02:00
Jean Pierre Cimalando
4de9b42427 Add tests 2021-06-26 21:09:36 +02:00
Jean Pierre Cimalando
503ff04f9b Add modulations for Flex EG time and level 2021-06-26 19:09:27 +02:00
Paul Fd
c411d0ed61 Add tests 2021-06-25 19:44:04 +02:00
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
Paul Fd
262953d52a Tweak the crossfades 2021-05-20 20:18:52 +02:00
Paul Fd
5fd5a5a808 Fill gaps on opcodes related to vel and AT triggers 2021-05-20 16:26:15 +02:00
Paul Ferrand
7342402431
Merge pull request #855 from paulfd/discrete-cc-gap
Convert discrete CC conditions without gaps
2021-04-27 10:47:27 +02:00
Jean Pierre Cimalando
41ab126549 Remove header dependency Parser from Synth 2021-04-25 05:33:42 +02:00
Jean Pierre Cimalando
8551caebf6 Build time optimization: resources 2021-04-25 04:55:30 +02:00
Paul Fd
32682380c5 Convert discrete CC conditions without gaps
Something like `hicc1=13` is actually translated to float as `13.999999999/127` instead of `13/127`.
2021-04-25 00:32:16 +02:00
Paul Fd
e2c667c42f Store extended CCs in the midistate
for those targets that do not rely on the modmatrix
2021-04-24 17:29:49 +02:00
Jean Pierre Cimalando
bd68a4fbb0 Expose a function to free memory allocated by the library 2021-04-16 02:23:11 +02:00
Paul Fd
2d3b62b69c Add Midnam bindings in C++
And a couple tests...
2021-04-16 02:09:10 +02:00
Paul Fd
93f907f0ca Update channel aftertouch API
and version numbers in new APIs
2021-04-15 23:17:46 +02:00
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