Robbert van der Helm
3111d75b29
Serialize custom persistent fields as base64
...
This still takes up more space than plain JSON would, but I don't know
if serde_json would allow inlining that JSON. Presumably not. It would
get hairy quickly as a regular embedded JSON string due to the encoding.
2022-01-30 18:15:01 +01:00
Robbert van der Helm
29a0f83163
Add a TODO on packing stored state
2022-01-30 17:29:25 +01:00
Robbert van der Helm
f0ea9e9451
Fix broken rustdoc links
2022-01-30 17:17:34 +01:00
Robbert van der Helm
486fc67a4b
Serialize persistent fields for VST3 plugins
2022-01-30 17:09:18 +01:00
Robbert van der Helm
b76b6e4a9b
Add boolean parameters
2022-01-30 02:17:40 +01:00
Robbert van der Helm
7feb8006ef
Persist the bypass parameter
2022-01-30 02:04:35 +01:00
Robbert van der Helm
16238f1e00
Support VST3 parameter flushes
2022-01-30 01:50:22 +01:00
Robbert van der Helm
6ddae6a506
Handle the output channel map
...
I apparently committed this a bit too early.
2022-01-30 01:43:40 +01:00
Robbert van der Helm
0c24398234
Target vst3-sys fork with better pointer semantics
2022-01-30 01:37:10 +01:00
Robbert van der Helm
902c3b2bf6
Upgrade vst3-sys dependency
2022-01-29 20:54:52 +01:00
Robbert van der Helm
3019f7aea6
Add a way to create VST3 bundles after building
2022-01-29 18:38:09 +01:00
Robbert van der Helm
47d102f2ba
Implement restoring parameter values
2022-01-29 16:42:20 +01:00
Robbert van der Helm
ebb74a737c
Use plain instead of unnormalized in the APIs
...
It takes more effort than what should be needed to tell normalized and
unnormalized apart at a glance.
2022-01-29 14:54:48 +01:00
Robbert van der Helm
97a88e0db2
Implement saving parameter state
...
Restoring is next.
2022-01-29 14:20:14 +01:00
Robbert van der Helm
f5f143b4f0
Read updated parmater values from the process data
2022-01-29 01:01:14 +01:00
Robbert van der Helm
59b1132d3b
Mark hyperlinks in doc comments
2022-01-28 18:10:28 +01:00
Robbert van der Helm
6b7acb7cb5
Add TODO for wrapping parameter access in a mutex
2022-01-28 17:58:40 +01:00
Robbert van der Helm
e393b3e268
Add a todo for handling incoming parameter changes
2022-01-28 17:58:40 +01:00
Robbert van der Helm
7d0fce2f84
Implement audio processing
2022-01-28 17:58:40 +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
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
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
b5636ef556
Implement the rest of IEditController
2022-01-27 19:55:24 +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
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
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
19b51df357
Implement IPluginFactory up to creating instances
2022-01-26 20:05:51 +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
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