Robbert van der Helm
5ea2377c18
Replace AsyncExecutor with simple closure
...
This makes everything much simpler. The task type is now defined
directly on `Plugin`.
2022-10-22 02:01:03 +02:00
Robbert van der Helm
84f834abb6
Add AsyncExecutor support to ProcessContext
2022-10-22 02:01:03 +02:00
Robbert van der Helm
ec8e99cf44
Require AsyncExecutor tasks to be Send
2022-10-22 00:55:04 +02:00
Robbert van der Helm
6ffa23971e
Add AsyncExecutor support to InitContext
2022-10-22 00:21:08 +02:00
Robbert van der Helm
0d90969566
Remove unnecessary deref
2022-10-22 00:14:13 +02:00
Robbert van der Helm
297ad2a83e
Add an AsyncExecutor associated type to Plugin
...
This will make it possible to run background tasks in a type safe way.
Sadly, this does mean that every plugin now needs to define the type
alias and constructor function since Rust does not yet support defaults
for associated types.
2022-10-21 23:52:46 +02:00
Robbert van der Helm
25d20f1950
Add an AsyncExecutor trait for background tasks
2022-10-21 23:52:29 +02:00
Robbert van der Helm
558922c9a9
Add missing doc comments in Plugin
2022-10-21 23:34:59 +02:00
Robbert van der Helm
71d46b42e9
Mention state migrations in readme
2022-10-21 23:23:13 +02:00
Robbert van der Helm
6ee3aafa91
Move Editor and ParentWindowHandle to a new module
2022-10-21 23:12:05 +02:00
Robbert van der Helm
34cc1ba30b
Use a vst3-sys fork to fix unused Box::from_raw
...
https://github.com/RustAudio/vst3-sys/pull/52
2022-10-20 16:31:13 +02:00
Robbert van der Helm
46094e5249
Explicitly drop Arc::from_raw
2022-10-20 16:28:58 +02:00
Robbert van der Helm
f9bdaffc62
Don't require Sync for Plugin
...
In hindsight there's really no reason to, because process() requires
exclusive access and the other functions won't be called during
processing.
2022-10-20 16:12:50 +02:00
Robbert van der Helm
8765717793
Allow opting out of egui's default features
...
Since I don't think there's a way to opt out of features from another
Cargo.toml file. You'll still need to enable `nih_plug_egui`'s `opengl`
feature if you disable its default features.
2022-10-20 15:58:20 +02:00
Robbert van der Helm
34fd3a1c2a
Add PayPal and Liberapay links
...
By popular demand. But definitely don't feel obliged to donate anything!
2022-10-20 15:47:48 +02:00
Robbert van der Helm
375262aaa3
Also drop Sync requirement for editor handles
2022-10-20 14:41:53 +02:00
Robbert van der Helm
a2a52e0ff1
Drop Sync requirement for Editor
2022-10-20 14:31:48 +02:00
Robbert van der Helm
eed5a62abb
Add build closure parameter to create_egui_editor
2022-10-20 14:04:08 +02:00
Robbert van der Helm
a9b1dd61fd
Add state filter method for performing migrations
...
This allows plugins to migrate old state, for instance when parameter
meanings change, new parameters are introduced, or parameter IDs have
been changed.
2022-10-20 12:45:53 +02:00
Robbert van der Helm
bd295b7380
Move nih_plug::param to nih_plug::params
2022-10-20 12:26:12 +02:00
Robbert van der Helm
e1269d07b1
Fix references in docs
2022-10-20 12:21:24 +02:00
Robbert van der Helm
ee38566d74
Remove unused DPI scale function in standalone
2022-10-20 12:14:26 +02:00
Robbert van der Helm
2a0ed0c5ec
Move PersistentField and helpers to dedicated mod
...
As mentioned in the previous commit's breaking changes entry.
2022-10-20 12:11:04 +02:00
Robbert van der Helm
fb71d0fcce
Move the Params trait out of params::internals
...
This makes much more sense, since this trait is a cornerstone of
NIH-plug.
2022-10-20 12:10:35 +02:00
Robbert van der Helm
4f74b4b4cc
Mention saving Crossover setup as default preset
2022-10-19 16:00:20 +02:00
Robbert van der Helm
21a83ccfe3
Set a MSRV #40
2022-10-19 12:50:09 +02:00
Robbert van der Helm
3f007c8a68
Enable the Eq and Debug traits for syn
...
Temporary workaround for #38 .
2022-10-13 11:18:35 +02:00
Robbert van der Helm
81bdad87b5
Replace custom Params in SC with #[nested]
...
Using the new `id_prefix` attribute. This doesn't break backwards
compatibility.
2022-10-13 01:32:48 +02:00
Robbert van der Helm
727d88c4d7
Add ID renaming superpowers to #[nested(...)]
...
This can now be used for most common use cases where you previously had
to do a manual `Params` implementation, like arrays of parameter objects
and duplicate parameter objects.
2022-10-13 01:28:05 +02:00
Robbert van der Helm
d57003a0e9
Update macOS instructions in plugin readmes
2022-10-09 21:35:25 +02:00
Robbert van der Helm
3ba62c4aab
Treat triple clicks in Vizia ParamSlider as click
2022-10-08 15:52:36 +02:00
Robbert van der Helm
fc55a519fa
Consume vizia ParamSlider events as appropriate
2022-10-08 15:48:18 +02:00
Robbert van der Helm
57258672ce
Actually update Vizia
...
Forgot to force push this branch.
2022-10-08 15:21:43 +02:00
Robbert van der Helm
33d956a96b
Update Vizia
2022-10-08 15:21:01 +02:00
Robbert van der Helm
71c7e00f2b
Prevent assert_process_allocs on x86_64-pc-windows-gnu
...
This will result in plugins that hang during their first allocation.
2022-10-05 17:22:29 +02:00
Robbert van der Helm
417a810936
Always use a hyphen in realtime-safe
2022-09-29 16:50:53 +02:00
Robbert van der Helm
b8593b03f4
Inline the nih_plug::debug macro docstrings
...
This makes it easier to browse the module in rustdoc.
2022-09-29 16:50:13 +02:00
Robbert van der Helm
cba0bdc21d
Document the logging module
2022-09-29 16:46:33 +02:00
Simon Leiner
0bb5662770
Remove dead code
2022-09-29 15:13:43 +02:00
Simon Leiner
2402eada05
Fix typos in productive cod
2022-09-29 15:13:43 +02:00
Simon Leiner
67808fd9ae
Fix typos in test names
2022-09-29 15:13:43 +02:00
Simon Leiner
0caef90b1a
Fix typos in comments
2022-09-29 15:13:43 +02:00
Simon Leiner
f4995abf88
Fix typos in documentation
2022-09-29 15:13:43 +02:00
joshnatis
d1600a9dce
Fix link to disabling Gatekeeper in README.md
...
Not sure what happened with the Markdown here :P
2022-09-29 03:37:19 +02:00
Simon Leiner
958767acf2
Fix off-by-1 error in VST3 parameter range
...
Running the VST3 SDK Validator [1] for the midi_inverter plugin shows
one failing test:
[Scan Parameters]
Info: ===Scan Parameters ====================================
Info: This component exports 2080 parameter(s)
Info: Parameter 000 (id=2147481569): [title="MIDI Ch. 1 CC 0"] [unit=""] [type = F, default = 0.000000, unit = 0]
Info: Parameter 001 (id=2147481570): [title="MIDI Ch. 1 CC 1"] [unit=""] [type = F, default = 0.000000, unit = 0]
Info: Parameter 002 (id=2147481571): [title="MIDI Ch. 1 CC 2"] [unit=""] [type = F, default = 0.000000, unit = 0]
[...]
Info: Parameter 2077 (id=2147483646): [title="MIDI Ch. 16 CC 127"] [unit=""] [type = F, default = 0.000000, unit = 0]
Info: Parameter 2078 (id=2147483647): [title="MIDI Ch. 16 Channel Pressure"] [unit=""] [type = F, default = 0.000000, unit = 0]
ERROR: =>Parameter 2079 (id=-2147483648): Invalid Id!!!
[XXXXXXX Failed]
The relevant part of the test code [2] looks like this:
int32 paramId = paramInfo.id;
if (paramId < 0)
{
// Error
}
This shows that the parameter ID must be INT32_MAX = (1 << 31) - 1 at
most. As far as I see, even Steinberg's own documentation [3] gets
this wrong.
[1]: 55d7ed3c6a/samples/vst-hosting/validator
[2]: 55d7ed3c6a/source/vst/testsuite/general/scanparameters.cpp (L100)
[3]: https://steinbergmedia.github.io/vst3_dev_portal/pages/Technical+Documentation/Parameters+Automation/Index.html
2022-09-29 00:24:41 +02:00
Robbert van der Helm
fae7050113
Add helper to compensate smoother for oversampling
2022-09-25 17:37:25 +02:00
Robbert van der Helm
ccff4f1444
Change macOS test runner to macOS 11
...
They're disabling the macOS 10.15 runner:
https://github.com/actions/runner-images/issues/5583
2022-09-23 16:35:34 +02:00
Robbert van der Helm
6ffdfc009f
Update readme
2022-09-23 16:11:17 +02:00
Robbert van der Helm
ca22806f8c
Fix double click handling after Vizia update
2022-09-22 20:07:04 +02:00
Robbert van der Helm
85543e1668
Update Vizia
2022-09-22 19:53:21 +02:00