Robbert van der Helm
5ea2377c18
Replace AsyncExecutor with simple closure
...
This makes everything much simpler. The task type is now defined
directly on `Plugin`.
2022-10-22 02:01:03 +02:00
Robbert van der Helm
84f834abb6
Add AsyncExecutor support to ProcessContext
2022-10-22 02:01:03 +02:00
Robbert van der Helm
297ad2a83e
Add an AsyncExecutor associated type to Plugin
...
This will make it possible to run background tasks in a type safe way.
Sadly, this does mean that every plugin now needs to define the type
alias and constructor function since Rust does not yet support defaults
for associated types.
2022-10-21 23:52:46 +02:00
Robbert van der Helm
e4d1ad39ab
Remove old todo
2022-09-22 17:39:22 +02:00
Robbert van der Helm
c566888fa3
💥 Use interior mutability for parameters
...
Instead of the previous technically-unsound approach. While it wouldn't
cause any issues in practice, it did break Rust's guarantees. That was a
design choice after adding support for editors in NIH-plug, but this is
probably the better long term solution.
The downside is that all uses of `param.value` now need to be changed to
`param.value()`.
2022-09-06 21:57:24 +02:00
Robbert van der Helm
1a706ea1c7
Rename DEFAULT_NUM_INPUTS and DEFAULT_NUM_OUTPUTS
2022-08-19 14:34:21 +02:00
Robbert van der Helm
3ffc2f0604
Change single branch match to if let
2022-07-25 16:33:24 +02:00
Robbert van der Helm
ba7b5a3b32
Fix examples for out of order events
...
This would be a host bug, but in theory CLAP hosts could provide out of
order events this way.
2022-07-14 12:50:16 +02:00
Robbert van der Helm
c24d4062e4
Add an attack-release amp envelope to PolyModSynth
2022-07-06 20:49:21 +02:00
Robbert van der Helm
1510cbb884
Remove assertion failure on polymod voice mismatch
2022-07-06 19:30:48 +02:00
Robbert van der Helm
35e584b3c8
Add a poly mod gain parameter to PolyModSynth
2022-07-06 19:18:49 +02:00
Robbert van der Helm
097d6c9fc4
Terminate all matches voices in PolyModSynth
...
This is needed for a single NoteOff followed by multiple NoteOns for the
same key/channel with different note IDs.
2022-07-06 18:03:53 +02:00
Robbert van der Helm
95b4d9785e
Remove the MIDI output from PolyModSynth
2022-07-06 17:16:19 +02:00
Robbert van der Helm
efc32f3944
Add a basic aliasing sawtooth wave to PolyModSynth
2022-07-06 17:16:19 +02:00
Robbert van der Helm
4ad4f8f76d
Add more basic fields for PolyModSynth
2022-07-06 17:16:19 +02:00
Robbert van der Helm
c36f29e3ca
Add basic voice management for PolyModSynth
...
This of course still misses important things like amplitude envelopes,
so notes will never end on their own. Those will be added as part of
audio processing.
2022-07-06 17:16:19 +02:00
Robbert van der Helm
69aa8433fa
Configure the voice capacity for PolyModSynth
2022-07-06 14:40:27 +02:00
Robbert van der Helm
89b2d0a66c
Add a stub for poly_mod_synth
...
This will serve as an example implementation for polyphonic modulation.
2022-07-06 13:55:59 +02:00