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
Robbert van der Helm
3c950d98d4
Move implementation details to the module's end
2022-01-25 22:23:57 +01:00
Robbert van der Helm
52f80de5dc
Add a dummy library for testing the macro
2022-01-25 22:18:55 +01:00
Robbert van der Helm
7065e900a7
Make ParamPtr debug printable
2022-01-25 22:18:10 +01:00
Robbert van der Helm
11c4112361
Mention that this won't implement parameter groups
2022-01-25 20:36:43 +01:00
Robbert van der Helm
5cc9931de6
Not all structs are called Foo
2022-01-25 20:02:58 +01:00
Robbert van der Helm
571dd1f2d4
Implement the Params derive proc macro
2022-01-25 19:55:01 +01:00
Robbert van der Helm
3f2f932a55
Add a function for getting pointers from params
...
So we don't need to implement this ad-hoc. That would even be impossible
to do correctly inside of the proc macro.
2022-01-25 19:54:27 +01:00
Robbert van der Helm
4cd9c6d3d3
Rename packages to snake case
...
I much prefer kebab case, but snake case is better here since Rust would
convert it to snake case when used as an identifier anyways and you also
can't use snake case modules without explicit module path attributes.
2022-01-25 12:35:13 +01:00
Robbert van der Helm
6357711783
Add another crate for a proc macro
2022-01-25 12:35:13 +01:00
Robbert van der Helm
736468a510
Move nih-plug to a workspace
2022-01-25 12:23:19 +01:00
Robbert van der Helm
2df0d7453d
Fix library name in copyright headers
2022-01-25 02:19:53 +01:00
Robbert van der Helm
2598e97494
Add the basic plugin API
2022-01-25 02:19:31 +01:00
Robbert van der Helm
e8697d9a74
Redo the parameters without atomics
...
These atomics make things more difficult and they don't solve the main
problem: storing the parameter objects in an easy to use struct while
still allowing hash based access to them from the plugin wrapper. Going
through this new Params trait makes a lot more sense, and with pinning
this should be safe.
2022-01-25 02:17:30 +01:00
Robbert van der Helm
b1415a36da
Rename library to nih-plug
...
Makes more sense that way.
2022-01-24 21:34:08 +01:00
Robbert van der Helm
4f501f539e
Implement the rest of the basic parameter UI
2022-01-24 21:12:02 +01:00
Robbert van der Helm
edf9e96975
Rename Normalize to NormalizebleRange
...
To hopefully make the use of trait a bit clearer. This is where higher
kinded types would have been nice.
2022-01-24 21:00:37 +01:00
Robbert van der Helm
64f7dc8148
Add some of the building blocks for param handling
2022-01-24 21:00:37 +01:00