Commit graph

1225 commits

Author SHA1 Message Date
Jean Pierre Cimalando
8d08c6700d Replace auto for ease of reading 2020-09-11 18:07:01 +02:00
Jean Pierre Cimalando
89893503be Remove the conditions which are made redundant 2020-09-11 17:58:42 +02:00
Jean Pierre Cimalando
aaa51f6dfe Use the flags, and assert key to be valid with said flags 2020-09-11 17:56:42 +02:00
Jean Pierre Cimalando
0fd5ec57ab Rename the variable to make it clearer what it is 2020-09-11 17:52:24 +02:00
Jean Pierre Cimalando
9c5f9537fa Adopt the underscore convention for member variables 2020-09-11 17:51:05 +02:00
Jean Pierre Cimalando
c91c653d8a Use the operator bool of NumericId 2020-09-11 17:47:24 +02:00
Paul Ferrand
ba53028d8d Store shortcuts from the region id to the source and targets in the MM 2020-09-11 17:40:55 +02:00
Paul Ferrand
11d5abe435 Precompute targets for the modulation on voice start 2020-09-11 17:40:45 +02:00
Jean Pierre Cimalando
60eecba226 Make NumericId hashable 2020-09-11 17:16:31 +02:00
Paul Ferrand
9d26b5742e Move SpinMutex.cpp in the source list 2020-09-11 17:04:26 +02:00
Paul Ferrand
e3fa56452c Add headers to CMake: NumericId 2020-09-11 17:04:20 +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
afadb171a4
Merge pull request #393 from paulfd/polyphony-cleanups
Polyphony cleanups
2020-09-09 10:29:09 +02:00
Paul Ferrand
48b8011354 Add SIMD helpers targeted for the mod matrix and plug them in
On my machine now the previous code path was probably vectorized
but this way we have the structure to handle platforms where it's not
2020-09-08 23:00:19 +02:00
Paul Ferrand
db9840c5bd Put operator == in the constructor for the modkeyThis function is called alot, this seems to favor inlining 2020-09-08 21:43:34 +02:00
Paul Ferrand
7ec5da9ddb Memorize the flags to avoid a recurrent switch 2020-09-08 17:01:34 +02:00
Jean Pierre Cimalando
db194be867 Initialize SIMD in both synth ctors 2020-09-08 09:00:18 +02:00
Jean Pierre Cimalando
d2362609a0 Prevent pitchbend events from creating xruns 2020-09-08 08:47:53 +02:00
Paul Ferrand
bc55705290 Put default quality to 1 2020-09-07 23:47:28 +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
bb621282c9 Note polyphony tests and bugs 2020-09-07 22:25:29 +02:00
Paul Ferrand
fa37669e08 Add checks for release voices and note_polyphony 2020-09-07 22:25:29 +02:00
Paul Ferrand
1f65c135bc Don't release age 0 voices 2020-09-07 22:25:29 +02:00
Paul Ferrand
6750fb93a2 Comments and renaming 2020-09-07 22:25:29 +02:00
Paul Ferrand
025e87a0d1 Remove the Voice::TriggerType enum 2020-09-07 22:25:29 +02:00
Paul Ferrand
e32348190f Modularize the cc dispatch and the matching between a playing voice and release regions 2020-09-07 22:25:29 +02:00
Paul Ferrand
01c43f03d4 Move the delayed release check in a separate method 2020-09-07 22:25:29 +02:00
Paul Ferrand
944373ea83 Move common voice starting logic in a separate method 2020-09-07 22:25:29 +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
afae38e6c3 Move the polyphony checks in separate functions 2020-09-07 22:25:29 +02:00
Paul Ferrand
ff1be61dc1 Use the same idiom for finding free voices 2020-09-07 22:25:29 +02:00
Paul Ferrand
5139c648f0 Engine polyphony is checked in findFreeVoice() 2020-09-07 22:25:29 +02:00
Paul Ferrand
ca7d74e841 Move the voice selection after the polyphony checks 2020-09-07 22:25:29 +02:00
Paul Ferrand
ed5fb61f38 Move a variable declaration
Refactor the polyphony checks into reusable blocks
2020-09-07 22:25:29 +02:00
redtide
19469c5c1f Doxygen documentation update [skip ci] 2020-09-05 16:14:51 +02:00
Jean Pierre Cimalando
0c8a57e843 Enable fast-math only on sfizz DSP targets 2020-09-02 00:36:49 +02:00
Paul Ferrand
81169b8209
Merge pull request #384 from paulfd/simpler-envelope-follower
Simpler power/envelope follower
2020-08-27 17:03:18 +02:00
Jean Pierre Cimalando
298befa753 Express follower AR in seconds 2020-08-27 09:39:41 +02:00
Jean Pierre Cimalando
b1f1fc4042 Power follower using a fixed block size 2020-08-27 09:12:42 +02:00
Jean Pierre Cimalando
a5c72375a9 Move the div operation out of the SIMD helper 2020-08-27 08:46:12 +02:00
Jean Pierre Cimalando
cb144ad42f Move the power follower to its own file 2020-08-27 07:48:14 +02:00
Jean Pierre Cimalando
0481862b10 Allow the modulations to be notified of release 2020-08-21 14:49:36 +02:00
Jean Pierre Cimalando
a71c1eb0f3 Allow modulations to trigger at a frame-accurate instant (LFO) 2020-08-21 14:39:55 +02:00
Paul Ferrand
dd8134277c Clamp the tracking factors to avoid blowups 2020-08-21 11:36:09 +02:00
Paul Ferrand
afc9d72c89 Further changes to the envelope follower- Apply on a single channel- Track attack and release separately 2020-08-21 11:20:36 +02:00
JP Cimalando
68712140d6
Merge pull request #385 from paulfd/offset-ccs
offset_cc were not taken into account
2020-08-21 00:54:03 +02:00
Paul Ferrand
c61ab364af
Merge pull request #380 from paulfd/end-disabling-regions
End disabling regions
2020-08-21 00:25:30 +02:00