1
0
Fork 0
nih-plug/plugins/diopser
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
..
src Rework Params trait API with Arc instead of Pin 2022-04-07 15:31:46 +02:00
Cargo.toml Replace FFTW in Diopser with realfft 2022-03-28 18:02:26 +02:00
COPYING Add a plugin skeleton for a Diopser port 2022-02-12 16:29:23 +01:00
README.md Fix building instructions in readmes 2022-03-07 22:07:57 +01:00

Diopser

You were expecting Disperser¹, but it was me, Diopser!

Diopser lets you rotate the phase of a signal around a specific frequency without affecting its spectral content. This effect can be used to emphasize transients and other parts of a sound that in a way that isn't possible with regular equalizers or dynamics processors, especially when applied to low pitched or wide band sounds. More extreme settings will make everything sound like a cartoon laser beam, or a psytrance kickdrum. If you are experimenting with those kinds of settings, then you may want to consider temporarily placing a peak limiter after the plugin in case loud resonances start building up.

This is a port from https://github.com/robbert-vdh/diopser with more features and much better performance.

*Disperser is a trademark of Kilohearts AB. Diopser is in no way related to Disperser or Kilohearts AB.

Download

You can download the development binaries for Linux, Windows and macOS from the automated builds page. If you're not signed in on GitHub, then you can also find the last nightly build here.

The macOS version has not been tested and may not work correctly. You may also have to disable Gatekeeper to use the VST3 version as Apple has recently made it more difficult to run unsigned code on macOS.

Building

After installing Rust with the nightly toolchain (because of the use of SIMD), you can compile Diopser as follows:

cargo +nightly xtask bundle diopser --release