Robbert van der Helm
bbc190c67f
Hold the RwLock guard in the process context
...
This avoids having to constantly acquire a new lock.
2022-02-04 23:03:11 +01:00
Robbert van der Helm
cbd51b0c3a
Monomorphize the context variables
...
For the parameter setting context functions we don't be able to use
trait objects.
2022-02-04 22:34:53 +01:00
Robbert van der Helm
2c0b797c40
Avoid clicks in the MIDI sine example
2022-02-04 15:26:37 +01:00
Robbert van der Helm
15d0e69d46
Remove TODO about adding MIDI support
...
Since we did just that.
2022-02-04 15:17:42 +01:00
Robbert van der Helm
366deda83c
Add MIDI support to the sine example
2022-02-04 15:17:42 +01:00
Robbert van der Helm
f69fdcef5f
Add another plugin constant for MIDI support
2022-02-04 15:17:42 +01:00
Robbert van der Helm
295ecc94ee
Shorten frequency parameter name
...
Since it would overflow otherwise.
2022-02-03 17:01:20 +01:00
Robbert van der Helm
10c306e035
Move example plugins into a subdirectory
2022-02-03 16:57:10 +01:00
Robbert van der Helm
e642fb5ff8
Make sure FTZ is always enabled
2022-02-03 16:18:24 +01:00
Robbert van der Helm
dfedd7b2c4
Enable assert_no_alloc in debug builds
2022-02-03 15:58:00 +01:00
Robbert van der Helm
2ca54d220d
Add logarithmic smoothing
2022-02-02 23:00:17 +01:00
Robbert van der Helm
da291175d1
Rename SmoothLinear to Linear
...
We'll rethink this when we get to sample accurate automation.
2022-02-02 22:00:00 +01:00
Robbert van der Helm
f8eb0e4ea6
Make gain smoothing slower in examples
2022-02-02 21:35:18 +01:00
Robbert van der Helm
8f89754ba5
Add simple linear parameter smoothing
2022-02-02 21:26:13 +01:00
Robbert van der Helm
c8cc6bd26b
Re-export all user facing includes
2022-02-02 15:16:10 +01:00
Robbert van der Helm
f44597df7c
Move the buffer adapter to its own module
2022-02-02 15:01:41 +01:00
Robbert van der Helm
048d69213e
Make the buffer own the output slices
...
This gets rid of a lot of lifetime casting and other unsoundness.
2022-02-02 14:41:35 +01:00
Robbert van der Helm
58736f5cc8
Add a super unsafe channel buffer adapter
...
To avoid having to perform lifetime magic here, this buffer needs to own
the slices and be stored as part of the RwLock.
2022-02-02 13:02:28 +01:00
Robbert van der Helm
d5fde24854
Use skewed range for frequency parmater
2022-02-01 23:38:27 +01:00
Robbert van der Helm
6bb83061dd
Rename the params module to param
...
It's a heterogeneous module, and splitting the ranges to their own
module will be a bit weird otherwise.
2022-02-01 20:51:22 +01:00
Robbert van der Helm
31481c406b
Use Default::default() in the parameter examples
...
Makes it a bit easier to change between types if needed.
2022-02-01 20:15:33 +01:00
Robbert van der Helm
59b70eecae
Add a sine test tone generator
2022-02-01 19:56:28 +01:00
Robbert van der Helm
85bb37e037
Add a license to the gain example
2022-02-01 19:41:03 +01:00
Robbert van der Helm
e2e2c59d34
Pass the process context to the plugin
2022-02-01 17:09:23 +01:00
Robbert van der Helm
6f67235c15
Show off the Default shorthand
2022-01-31 21:24:26 +01:00
Robbert van der Helm
6fc733e029
Add callbacks for parameter changes
2022-01-31 21:02:47 +01:00
Robbert van der Helm
4495064558
Redesign the wrapper's interiors for thread safety
...
There are a lot of locks needed now here, but none of them should be
contended. This is much better than potentially having RefCell's blow up
due to simultaneous mutable borrows, and the Arc is needed for the event
loop.
2022-01-31 19:44:02 +01:00
Robbert van der Helm
b65158283a
Support parking_lot mutexes and rwlocks
2022-01-31 19:42:35 +01:00
Robbert van der Helm
221e424f78
Use thread safe interior mutability for persist
...
Sadly there's not really a safe way to do this otherwise, but if you
really want to have persistence this way and absolutely need it to be
lock-free (because you're going to use it from the GUI thread), then you
can implement your own PersistentField.
2022-01-30 17:07:50 +01:00
Robbert van der Helm
c1ea1e429f
Use the persist attribute in the gain example
2022-01-30 16:16:15 +01:00
Robbert van der Helm
6fc4d80483
Change the id attribute to be a key value pair
2022-01-29 20:40:14 +01:00
Robbert van der Helm
ef021915e5
Move the PlainParam functions to a trait
...
We can use this for setting parameter values, as a &Param can be turned
into a pointer which can then later be mapped to a parameter ID to
handle outputting parameter values.
2022-01-29 13:39:01 +01:00
Robbert van der Helm
71dc144c73
Add a simple formatters library
...
We can add common formats here so you don't need to repeat them all the
time.
2022-01-28 14:33:29 +01:00
Robbert van der Helm
217b28fdca
Move VST3 categories and class ID to a new trait
...
Makes more sense than having this in either the general plugin trait or
as part of the macro.
2022-01-27 22:13:13 +01:00
Robbert van der Helm
c11abdc77d
Add a processing status for handling reverb tails
2022-01-27 21:03:49 +01:00
Robbert van der Helm
9046cfbe3a
Add a version string constant
2022-01-26 22:20:15 +01:00
Robbert van der Helm
a13263051a
Add a VST3 categories constant for plugins
2022-01-26 19:49:22 +01:00
Robbert van der Helm
dc6db232ed
Pass a CID to the VST3 export macro
...
Seems much less prone to breakage than generating them, since this way
the programmer has full control.
2022-01-26 19:20:39 +01:00
Robbert van der Helm
031407754b
Add name, vendor, and other constants to plugins
2022-01-26 18:14:13 +01:00
Robbert van der Helm
04ad429e57
Fix gain plugin parameter ranges
2022-01-26 15:11:23 +01:00
Robbert van der Helm
070e68c084
Move nih_plug to the repo's root
...
Makes more sense to have this be on the same level as the workspace
since technically this crate can be used separately.
2022-01-26 12:52:57 +01:00
Robbert van der Helm
c3f8b8fb8c
Re-export the nih_plug_derive macro
...
No need to have to use this crate separately.
2022-01-26 12:50:30 +01:00
Robbert van der Helm
6edba6555e
Generate VST3 entry point functions
2022-01-26 12:37:45 +01:00
Robbert van der Helm
5cd14492ea
Use the new decibel to gain function
2022-01-26 11:49:32 +01:00
Robbert van der Helm
98e326d390
Implement Plugin::params()
...
I somehow forgot to add this.
2022-01-26 11:41:07 +01:00
Robbert van der Helm
d8db0e64cf
Use the debug assert macros
2022-01-26 11:38:26 +01:00
Robbert van der Helm
a40bf1f4f5
Add missing copyright header in gain plugin
2022-01-26 10:56:02 +01:00
Robbert van der Helm
05ae8fd428
Add a very basic gain plugin with some todos
2022-01-25 23:02:15 +01:00
Robbert van der Helm
52f80de5dc
Add a dummy library for testing the macro
2022-01-25 22:18:55 +01:00