1
0
Fork 0
Commit graph

135 commits

Author SHA1 Message Date
Robbert van der Helm a2f8a9bebf Add voice ID fields for all non-MIDI note events
This will be useful when adding polyphonic modulation.
2022-07-04 18:31:59 +02:00
Robbert van der Helm 7cd7294b22 Make CLAP descriptions and special URLs optional
This closes #14.
2022-07-04 12:46:34 +02:00
Robbert van der Helm 29e9d620ca Fix the sine test tone CLAP category 2022-06-29 01:32:39 +02:00
sonata-chen a284ba020f
fix typo 2022-06-28 19:42:46 +08:00
Robbert van der Helm b7bfa5f18e Update Vizia
With two months of breaking changes, hooray! But everything should still
work after some bug squashing in Vizia.
2022-06-18 01:59:57 +02:00
Robbert van der Helm abe7fec0db Fix channel layout check in sine example 2022-06-15 00:10:27 +02:00
Robbert van der Helm bfc472e49b Introduce a new enum for CLAP features
Based on the new CLAP 0.26 clap-features.h.
2022-06-02 01:16:30 +02:00
Robbert van der Helm 6996fdaed1 Update features names for CLAP 0.26 2022-06-02 00:52:13 +02:00
Robbert van der Helm ee900f74c2 Support auxiliary inputs and outputs for CLAP
This does not yet work for VST3. You'll always get empty slices there.
2022-05-27 02:30:57 +02:00
Robbert van der Helm b2e6bd5515 Create a separate InitContext
Only a couple of these functions would be needed during initialization.
In the next couple commits ProcessContext will get a way to access
auxiliary IO, so this really had to be separated.
2022-05-27 01:17:15 +02:00
Robbert van der Helm 535ae1260e Remove now unnecessary explicit dyn casts
Rust-analyzer used to not infer this, seems like now it does.
2022-05-24 23:55:48 +02:00
Robbert van der Helm 487ff3d566 Don't let the sine test tone plugin sleep 2022-05-24 13:17:40 +02:00
Robbert van der Helm f4f54029eb Add a deactivation callback
This is the equivalent of initialize()
2022-05-24 13:05:06 +02:00
Robbert van der Helm 596b04af0a Add preliminary support for auxiliary IO
The missing parts are allocating buffers for these busses, copying data
to those buffers, and adding methods to the ProcessContext to interact
with these inputs and outputs.
2022-05-23 17:13:49 +02:00
Robbert van der Helm 0459405ced Remove STFT example readme
This hasn't been using fftw for a while now so it's no longer relevant.
2022-05-20 03:23:57 +02:00
Robbert van der Helm c5841cbe33 Add missing latency compensation in STFT example
The latency introduced by the linear phase filter wasn't compensated
for.
2022-05-08 03:14:56 +02:00
Robbert van der Helm 6400e2d71d Fix gain compensation in new STFT example 2022-05-08 02:25:44 +02:00
Robbert van der Helm 3fe24e7dc6 Use more typical convolution FFT in STFT example 2022-05-08 02:22:36 +02:00
Robbert van der Helm 55eeb689dd Add a padding option to StftHelper 2022-05-08 02:12:37 +02:00
Robbert van der Helm 58d7dc034c Fix gain compensation in STFT examples 2022-04-28 17:24:35 +02:00
Robbert van der Helm e35886c216 Move window function handling out of StftHelper
And apply the window function only once at the end of the process
function for the plugins that used it.
2022-04-28 17:20:39 +02:00
Robbert van der Helm 9acd312768 Parmaeters are not real, they can't hurt you 2022-04-24 19:46:07 +02:00
Robbert van der Helm 96ec1da037 Export the standalone target for gain_gui_vizia 2022-04-24 15:48:05 +02:00
Robbert van der Helm 00fff75c5e Rename MIDI inverter example plugin directory
To match the package name.
2022-04-18 02:33:29 +02:00
Robbert van der Helm cab0af5153 Add explicit dyn trait casts
So Rust Analyzer stops complaining.
2022-04-15 19:31:38 +02:00
Robbert van der Helm c917114020 Rename the gain GUI examples to match package name 2022-04-14 23:53:14 +02:00
Robbert van der Helm bcc8453861 Update MIDI inverter comment 2022-04-11 20:55:43 +02:00
Robbert van der Helm 49f1a45b76 Add a MIDI effect that inverts all signals
To demonstrates the API. The CLAP version does not seem to be able to
output anything other than basic notes in Bitwig Studio 4.2.3.
2022-04-11 20:47:00 +02:00
Robbert van der Helm 97b2c9a2b1 Replace sine loop 2022-04-11 18:25:01 +02:00
Robbert van der Helm e4606918e7 Rename next_midi_event() to next_event() 2022-04-11 18:15:14 +02:00
Robbert van der Helm eb5b81fcac Remove MidiInput::None from nontrivial examples
Since it's the default, makes the examples a bit shorter.
2022-04-11 18:02:55 +02:00
Robbert van der Helm 25dd0d9bef Control sine level through velocity and aftertouch 2022-04-08 17:44:05 +02:00
Robbert van der Helm b9a10455bb Add polyphonic aftertouch support 2022-04-07 20:55:31 +02:00
Robbert van der Helm 1141616466 Replace ACCEPTS_MIDI bool with new enum
So we can gate future MIDI CC support behind an additional option since
this involves more work on the VST3 side.
2022-04-07 20:27:37 +02:00
Robbert van der Helm 56e9cd54c1 Pass the GuiContext to vizia editors
There's no clean way to expose the state save/restore functionality
through events.
2022-04-07 16:14:34 +02:00
Robbert van der Helm 083885a40c Rework Params trait API with Arc instead of Pin
This is a breaking change requiring a small change to plugin
implementations.

The reason why `Pin<&dyn Params>` was used was more as a hint to
indicate that the object must last for the plugin's lifetime, but `Pin`
doesn't enforce that. It also makes the APIs a lot more awkward.
Requiring the use of `Arc` fixes the following problems:

- When storing the params object in the wrapper, the `ParamPtr`s are
  guaranteed to be stable.
- This makes it possible to access the `Params` object without acquiring
  a lock on the plugin, this is very important for implementing
  plugin-side preset management.
- It enforces immutability on the `Params` object.
- And of course the API is much nicer without a bunch of unsafe code to
  work around Pin's limitations.
2022-04-07 15:31:46 +02:00
Robbert van der Helm 6dd11561c5 Add resize handles to all vizia GUIs 2022-03-29 00:49:31 +02:00
Robbert van der Helm b4ff09ca33 Get rid of unnecessary RustFFT scratch buffer 2022-03-28 17:45:46 +02:00
Robbert van der Helm 80c3fb8d51 Swap fftw in the stft example out for realfft
The FFTW bindings can't statically link on Windows.
2022-03-28 17:13:23 +02:00
Robbert van der Helm f37974448d Change naming convention for formatters
This still isn't idea, but at least it's less ambiguous than it was
before this.
2022-03-27 03:43:39 +02:00
Robbert van der Helm d35276437d Patch vizia to not require pub for lenses 2022-03-23 23:29:49 +01:00
Robbert van der Helm f85c9c8d82 Remove unused param from vizia gain GUI example 2022-03-21 23:57:12 +01:00
Robbert van der Helm fe3ed360a3 Revert Gain GUI slider to the Centered style 2022-03-21 23:47:00 +01:00
Robbert van der Helm d84b456edb Draw ticks for the vizia PeakMeter
They are just slightly blurry.
2022-03-21 23:45:55 +01:00
Robbert van der Helm b8ff936b21 Add part of a simple peak meter widget for vizia 2022-03-21 22:28:54 +01:00
Robbert van der Helm 5b2f8a417b Use the f32_hz_then_khz formatter 2022-03-21 14:44:26 +01:00
Robbert van der Helm 30b913e159 Don't use direct Param initialization in exmaples
Since you now also need to specify the default field you probably
shouldn't use this anymore.
2022-03-21 13:29:03 +01:00
Robbert van der Helm f084f14095 Refactor GUIs to use param's own default value
This removes the need to pass a lot of these `ParamSetter`s and
`GuiContext`s around. We also don't need explicit events to reset a
parameter anymore since you can get this information from the parameter
itself.
2022-03-21 13:11:36 +01:00
Robbert van der Helm a844051054 Store defaults on Param objects
And add methods for querying them.
2022-03-21 12:49:59 +01:00
Robbert van der Helm 1a9db3ab8e Temporarily add more widgets to vizia Gain GUI 2022-03-20 01:23:44 +01:00