Jean Pierre Cimalando
3fd0d4ee5d
Add jsl::aligned_unique_ptr and jsl::make_aligned
2021-09-22 03:12:52 +02:00
JP Cimalando
03472da8c8
Merge pull request #954 from paulfd/short-audio-files
...
Parse oscillator=auto and only have implicit wavetables if the file is short AND wavetable tags are in
2021-07-27 17:32:33 +02:00
Paul Ferrand
a92dc773c5
Merge pull request #933 from paulfd/flex-eg-oncc
...
Dynamic EGs
2021-07-27 17:14:19 +02:00
Paul Fd
aeb17c1fca
Parse oscillator=auto and only have implicit wavetables if the file is short AND wavetable tags are in
2021-07-20 12:25:03 +02:00
Paul Fd
825d558a4c
Added aliases for Cakewalk and RGC loop_oncc opcodes
2021-07-20 11:26:41 +02:00
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
d2ae2a0fe0
Add dynamic to the basic envelope
2021-06-27 16:51:29 +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