Robbert van der Helm
7d0fce2f84
Implement audio processing
2022-01-28 17:58:40 +01:00
Robbert van der Helm
673180fb6b
Update vst3-sys dependency
...
So the VST3 macro works for types with lifetime bounds.
2022-01-28 16:29:09 +01:00
Robbert van der Helm
61d7905148
Add a todo for transport information in process
2022-01-28 15:18:55 +01:00
Robbert van der Helm
c518cc9ede
Add a note about licensing
2022-01-28 15:02:55 +01:00
Robbert van der Helm
38bcf33a50
Use the precalculated bypass parameter hash
2022-01-28 14:52:04 +01:00
Robbert van der Helm
3064132821
Improve and simplify token handling in macros
...
The standard library macros also use a `$($foo:tt)*` for this, so we
should probably too. Since eprinln!() already handles trailing commas we
don't need to do any special handling, and this fixes parsing with
complex expressions as arguments.
2022-01-28 14:47:26 +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
6439acad84
Use the correct vendor name
2022-01-28 14:20:16 +01:00
Robbert van der Helm
b14dc7eae9
Avoid duplicate units in VST3 parameter strings
2022-01-28 14:06:51 +01:00
Robbert van der Helm
47f84081dd
Use a macro for the null pointer checks
2022-01-28 13:45:17 +01:00
Robbert van der Helm
b9d38f5c39
Implement most of IAudioProcessor
...
Except for the process function itself.
2022-01-28 13:40:47 +01:00
Robbert van der Helm
a34293fbb4
Silence too_many_arguments Clippy lint in wrapper
...
Aside from wrapping everything in another struct we can't really do
anything about this since this is all generated by the VST3 macro.
2022-01-28 13:39:44 +01:00
Robbert van der Helm
fa13371c5f
Allow trailing commas in debug macros
2022-01-28 13:32:37 +01:00
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