1
0
Fork 0
Commit graph

68 commits

Author SHA1 Message Date
Robbert van der Helm a9185dff21 Split finding and processing proc macro attributes
We're going to add another attribute that can't be combined with this
one.
2022-01-28 13:00:36 +01:00
Robbert van der Helm b91a02baa6 Add a todo and idea for non-parameter persistence 2022-01-28 01:34:36 +01:00
Robbert van der Helm 5e17b2190a Add null pointer checks to the VST3 wrapper 2022-01-27 22:51:49 +01:00
Robbert van der Helm 91e20f1230 Don't internally use param string IDs in wrapper
This avoids a layer of indirection for every parameter lookup using a
hash.
2022-01-27 22:36:46 +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 b5636ef556 Implement the rest of IEditController 2022-01-27 19:55:24 +01:00
Robbert van der Helm 9ff881b355 Add functions for previewing parameter conversions 2022-01-27 19:43:19 +01:00
Robbert van der Helm 1f0dbdbbec Clean up parameter access conditionals
I forgot this works as an else if
2022-01-27 19:36:36 +01:00
Robbert van der Helm 338abf7367 Implement IEditController::getParamValueByString() 2022-01-27 19:30:42 +01:00
Robbert van der Helm d357add75a Implement most of the VST3 parameter handling 2022-01-27 00:19:50 +01:00
Robbert van der Helm ad94b44b93 Add lookup functions between strings and values
For parameters.
2022-01-27 00:15:11 +01:00
Robbert van der Helm dfbfc657a8 Add a getter for parameter units from poitners 2022-01-26 23:37:41 +01:00
Robbert van der Helm 186a924104 Implement a JUCE-compatible Rabin fingerprint 2022-01-26 23:35:01 +01:00
Robbert van der Helm 22be850d9e Implement IPluginFactory2 and IPluginFactory3 2022-01-26 22:23:44 +01:00
Robbert van der Helm 9046cfbe3a Add a version string constant 2022-01-26 22:20:15 +01:00
Robbert van der Helm 0a67c8e5f4 Correct the VST3 categories string length 2022-01-26 21:40:49 +01:00
Robbert van der Helm 35cf7ffc1d Implement IComponent 2022-01-26 21:12:13 +01:00
Robbert van der Helm 4014d83a9b Allow creating VST3 plugin instances 2022-01-26 21:12:02 +01:00
Robbert van der Helm a959f7a2ad Add an UTF-16 equivalent for strlcpy() 2022-01-26 21:02:52 +01:00
Robbert van der Helm 2614be26ab Add an unconditional debug assertion failure macro 2022-01-26 20:55:01 +01:00
Robbert van der Helm 19b51df357 Implement IPluginFactory up to creating instances 2022-01-26 20:05:51 +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 bd2e0eca0c Add a strlcpy implementation 2022-01-26 19:18:31 +01:00
Robbert van der Helm fa782ff938 Add a stub plugin factory implementation 2022-01-26 18:14:54 +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 1a619c474b Use a vst3-sys fork with support for generics 2022-01-26 15:38:43 +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 41a0f234bd Fix rustdoc link to function 2022-01-26 12:43:09 +01:00
Robbert van der Helm 6edba6555e Generate VST3 entry point functions 2022-01-26 12:37:45 +01:00
Robbert van der Helm a1f0f822ec Add some sort of description to the readme 2022-01-26 12:07:37 +01:00
Robbert van der Helm e782fda3f6 Remove todo about params derive macro
Since we already have this.
2022-01-26 11:58:18 +01:00
Robbert van der Helm 71a910fa75 Add a gain to decibel conversion function 2022-01-26 11:57:47 +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 7fe47dfbbd Add a decibel to gain conversion function 2022-01-26 11:48:40 +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 922aa58a7a Export the debug assertion macros 2022-01-26 11:34:47 +01:00
Robbert van der Helm 97cdfd33dd Add more debug assertion macros 2022-01-26 11:30:48 +01:00
Robbert van der Helm 91518b82fd Add debug assertion macros 2022-01-26 11:26:30 +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 a53fbc11da Add a TODO for audio tail processing 2022-01-25 23:02:13 +01:00
Robbert van der Helm 6d70e30584 Add send and sync constraints to boxed callbacks
Otherwise the Sync constraint on Plugin cannot be satisfied.
2022-01-25 22:46:12 +01:00
Robbert van der Helm fba92cd333 Require a Default instance on plugins
Since that's how they're going to be initialized
2022-01-25 22:38:34 +01:00
Robbert van der Helm 5d0fbcd60d Clamp parameter values in (un)normalization
In case the host or the plugin does something weird.
2022-01-25 22:30:11 +01:00
Robbert van der Helm d7929920c9 Add rounding to integer ranges 2022-01-25 22:26:38 +01:00