Jean Pierre Cimalando
d1333a5ab3
Add tool to capture Dimension EG curves
2020-04-01 09:40:26 +02:00
Jean Pierre Cimalando
5a7aa90a8e
EG rate small adjustment
2020-04-01 09:40:26 +02:00
Jean Pierre Cimalando
fdda018a70
Add block version of the ADSR rework
2020-04-01 09:40:26 +02:00
Jean Pierre Cimalando
77589f4109
Rework the envelope generator
2020-04-01 09:40:26 +02:00
Jean Pierre Cimalando
d6adebf8f4
Allow EG reset to accept other parameters than ampeg
2020-04-01 09:40:26 +02:00
Paul Fd
bf7d90f3d4
Properly clear buffers
2020-04-01 09:28:17 +02:00
Paul Ferrand
2f2de8c677
Merge pull request #142 from paulfd/midi-state-block-processing
...
The midi state now tracks time through block duration; you need to call advanceTime(numSamples) at each callback.
The midi state now stores all CC and pitch events that happened during the block.
Added group polyphony and note_polyphony support, as well as note_selfmask support.
Multiple CCs can modulate pan, amplitude, width, position rather than one.
The voices do not store CC history for the modulation targets and rely on the midi state to provide the events that happened during the last block.
Removed the EventEnvelopes; they're replaced by generic free functions that take as input an EventVector from the midi state; old tests migrated.
Added support for tune_cc and pitch_cc related opcodes.
In all this process, I also removed most of the per-voice temporary buffers and preallocation to replace everything by a BufferPool that distributes buffers around, and can track the maximum buffer usage in debug mode. The number of concurrent buffers are set at compile-time, so it must be adapted to the current processing needs.
2020-03-31 23:22:25 +02:00
Paul Ferrand
5673b3a7bb
Merge pull request #143 from jpcima/strings
...
Strings resonator effect
2020-03-31 23:21:24 +02:00
Jean Pierre Cimalando
c0127fe02f
Strings resonator effect
2020-03-31 20:43:35 +02:00
Paul Fd
5088bed9b0
Formatting step
2020-03-31 10:46:12 +02:00
Paul Fd
7e8cdff407
Modifier loops can be const
2020-03-31 10:40:44 +02:00
Paul Fd
ddeecf41b9
Apply modifier for pitch_cc and tune cc
2020-03-31 10:36:53 +02:00
Paul Fd
bf4bdad656
Handle pitch_cc and tune_cc
2020-03-31 10:36:41 +02:00
Paul Fd
c92e78b3f2
Update the envelope benchmark
2020-03-31 09:53:46 +02:00
Paul Ferrand
767ef7ba38
Remove envelopes from clang-tidy
2020-03-31 00:41:17 +02:00
Paul Ferrand
e24065f7d1
Added volume_oncc tests
2020-03-31 00:37:22 +02:00
Paul Ferrand
16b8cc1cfc
Remove the event envelopes \o/
2020-03-31 00:33:26 +02:00
Paul Ferrand
bd85a97db3
Handle the volume cc modifiers like the rest
2020-03-31 00:33:06 +02:00
Paul Ferrand
bc60b19c4b
Ported the old envelope tests to the new free functions
2020-03-31 00:18:24 +02:00
Paul Ferrand
5412593da9
multiplicativeRamp behaves like linearRamp
2020-03-31 00:18:09 +02:00
Paul Ferrand
12cb0b5b43
Adapt the curve computation to the linearRamp changes
2020-03-31 00:05:02 +02:00
Paul Ferrand
ff94983089
remove debug messages in voices
2020-03-31 00:03:47 +02:00
Paul Ferrand
2400a6adcc
Remove ADSR tests for now until updates from jpc
2020-03-31 00:03:21 +02:00
Paul Ferrand
a9d5c7e6b1
Update the base test to match the new linear ramp
2020-03-30 23:48:41 +02:00
Paul Ferrand
a71b5c3bb5
Change the linear ramp to something more natural
2020-03-30 23:48:24 +02:00
Paul Ferrand
8ef598bb7d
Remove pitchbend from midiState
2020-03-30 22:49:28 +02:00
Paul Ferrand
4de101f42c
Add quantized envelopes to voices
2020-03-30 22:42:54 +02:00
Paul Ferrand
bebb166469
Add quantized envelopes
2020-03-30 22:42:43 +02:00
Paul Ferrand
088da9df65
multiplicativeEnvelope free function for pitch
2020-03-30 21:51:21 +02:00
Paul Ferrand
9e3f496f9e
Add multiplicative envelope
2020-03-30 21:32:50 +02:00
Paul Ferrand
1523a14ee8
linearEnvelope is now a free function
2020-03-30 21:23:59 +02:00
Paul Ferrand
922cbde6c5
Store pitch bend internally as floats
2020-03-30 21:07:33 +02:00
Paul Ferrand
bc4d88b55a
Clang-tidy 9 errors
2020-03-30 20:32:42 +02:00
Paul Ferrand
a1cacea8fb
Explicit move to null the return pointer
2020-03-30 20:32:27 +02:00
Paul Ferrand
629a2ae8a8
Forwarding on SpanHolder
2020-03-30 20:16:43 +02:00
Paul Ferrand
1f7786cc74
Be explicit in the filter/EQ processes
2020-03-30 20:07:54 +02:00
Paul Ferrand
0da5c43bb5
Remove the helpers in the midi class and be explicit in the process
2020-03-30 19:58:32 +02:00
Paul Ferrand
eac0c0e804
Refactor the processes in chunks
2020-03-30 19:13:35 +02:00
Paul Ferrand
a337cf5a15
Require explicit cast to bool
2020-03-30 19:11:39 +02:00
Paul Ferrand
9c17201c63
Avoid shared pointers and get a span "pointer" directly from the buffer pool
2020-03-30 15:14:33 +02:00
Paul Ferrand
f489b88df0
Merge pull request #140 from jpcima/vst-realtime
...
Vst realtime
2020-03-29 23:58:56 +02:00
Paul Ferrand
77acae7992
Merge pull request #131 from jpcima/new-effects
...
Add effects: limiter, rectifier, gain, width
2020-03-29 23:43:26 +02:00
Paul Ferrand
e54c27b1f2
Warning on gcc 4.9 for the array initializer
2020-03-29 23:35:43 +02:00
Paul Ferrand
e13456d41d
Try to solve windows builds
2020-03-29 23:35:22 +02:00
Paul Ferrand
3ceee27c0a
Move the modifiers in the midistate
2020-03-29 22:55:14 +02:00
Paul Ferrand
507ddc8e01
Reworking the modifiers separately
2020-03-29 20:35:15 +02:00
Jean Pierre Cimalando
03b9e19676
Oversample the limiter by 2x
2020-03-29 20:17:49 +02:00
Paul Ferrand
5d499fb563
Update tests
2020-03-29 19:34:45 +02:00
Paul Ferrand
9e824df346
Homogeneize the treatment of percentage defaults and values
2020-03-29 19:32:27 +02:00
Paul Ferrand
ca2ee8dc58
Voice cleanups
2020-03-29 19:26:08 +02:00