Jean Pierre Cimalando
|
3cf7536c57
|
Store the initial values of controllers
|
2020-09-16 14:45:32 +02:00 |
|
JP Cimalando
|
f0dd146361
|
Merge pull request #388 from jpcima/flex-eg
Add the Flex EG
|
2020-09-16 12:02:42 +02:00 |
|
Jean Pierre Cimalando
|
169ba940c9
|
Print the modulation key more compactly
|
2020-09-16 11:55:25 +02:00 |
|
Jean Pierre Cimalando
|
111af1b648
|
Ensure label entries to be unique for their cc/note
|
2020-09-16 11:13:37 +02:00 |
|
Jean Pierre Cimalando
|
1b104fd6d6
|
Initialize CC labels for volume and pan
|
2020-09-16 10:46:54 +02:00 |
|
Jean Pierre Cimalando
|
8ec3f3d2a8
|
midnam: only emit CC which are in 7bit range
|
2020-09-16 10:41:55 +02:00 |
|
Paul Ferrand
|
f317e2f6b9
|
Add flex eg tests, move test helpers around, and add a more verbose mod matrix graph output
|
2020-09-16 09:03:39 +02:00 |
|
Paul Ferrand
|
f969761b5a
|
Only zero the remaining samples when the envelope is finished
|
2020-09-16 08:45:29 +02:00 |
|
Paul Ferrand
|
4d87716a30
|
Offset the time so that the envelopes "end" on the correct value
The envelope start is always considered to be the value before the current ramp started
|
2020-09-16 08:41:02 +02:00 |
|
Jean Pierre Cimalando
|
62ee1abd24
|
Comment on unimplemented loop opcodes
|
2020-09-12 02:03:07 +02:00 |
|
Jean Pierre Cimalando
|
d2f77f63dc
|
Ensure to update all variables on early return
|
2020-09-12 01:46:04 +02:00 |
|
Jean Pierre Cimalando
|
84bb553292
|
Some changes of little impact
|
2020-09-12 01:46:04 +02:00 |
|
Jean Pierre Cimalando
|
b692377f7b
|
Add the Flex EG
|
2020-09-12 01:46:00 +02:00 |
|
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 |
|