1
0
Fork 0
Commit graph

42 commits

Author SHA1 Message Date
Robbert van der Helm
d5d90e3e61 Add a ClapPlugin trait
Just like the Vst3Plugin trait
2022-02-28 14:45:07 +01:00
Robbert van der Helm
15f27e2746 Move features section in main Cargo.toml 2022-02-15 18:13:47 +01:00
Robbert van der Helm
4f08dce975 Remove now unused strum dependency 2022-02-14 15:36:31 +01:00
Robbert van der Helm
39e8dfc83c Add somewhat shady enum parameters 2022-02-14 02:04:17 +01:00
Robbert van der Helm
342aebee89 Add a plugin skeleton for a Diopser port 2022-02-12 16:29:23 +01:00
Robbert van der Helm
f645b6a92f Relicense under the ISC license 2022-02-12 16:04:46 +01:00
Robbert van der Helm
ed5e0f673b Use an updated vst3-sys for cross compilation 2022-02-10 19:59:36 +01:00
Robbert van der Helm
02115d5004 Use a patched {egui-,}baseview for X11 GL contexts 2022-02-07 21:58:59 +01:00
Robbert van der Helm
611c0a4c39 Update baseview dependencies
These got updated to use more recent dependencies.
2022-02-07 11:45:12 +01:00
Robbert van der Helm
0fb8ce6f7e Add part of a Windows event loop implementation 2022-02-07 00:33:41 +01:00
Robbert van der Helm
bad5d0ace6 Use a patched baseview with fixed window visual
Otherwise trying to embed the GUI in REAPER will panic.

https://github.com/RustAudio/baseview/pull/113
2022-02-06 13:33:28 +01:00
Robbert van der Helm
5017dad7d3 Add a semi-broken GUI example
This needs a lot of work. We need widgets that know how to deal with our
parameters, and also basic widgets for things like meters. Egui-baseview
also has a couple quirks left. Most notably it only updates when
actively moving over the GUI (which means VU meters look pretty janky)
and it randomly panics.
2022-02-06 13:16:28 +01:00
Robbert van der Helm
2486368d08 Use AtomicF32 for the smoothing
This should at least not have a big performance impact since we can use
relaxed memory ordering here. AtomicCell always uses acquire/release
ordering.
2022-02-06 03:43:59 +01:00
Robbert van der Helm
021c183331 Add an egui editor adapter 2022-02-06 00:22:33 +01:00
Robbert van der Helm
b1afe0b224 Downgrade raw-window-handle for baseview compat 2022-02-06 00:22:15 +01:00
Robbert van der Helm
5a84733e7e Add more metadata to the Cargo.toml file 2022-02-05 19:40:42 +01:00
Robbert van der Helm
7ac1df0d8d Add stubs for editor handling 2022-02-05 12:46:26 +01:00
Robbert van der Helm
10c306e035 Move example plugins into a subdirectory 2022-02-03 16:57:10 +01:00
Robbert van der Helm
dfedd7b2c4 Enable assert_no_alloc in debug builds 2022-02-03 15:58:00 +01:00
Robbert van der Helm
59b70eecae Add a sine test tone generator 2022-02-01 19:56:28 +01:00
Robbert van der Helm
49054b10f2 Break the workspace members array up in lines 2022-02-01 19:39:45 +01:00
Robbert van der Helm
4495064558 Redesign the wrapper's interiors for thread safety
There are a lot of locks needed now here, but none of them should be
contended. This is much better than potentially having RefCell's blow up
due to simultaneous mutable borrows, and the Arc is needed for the event
loop.
2022-01-31 19:44:02 +01:00
Robbert van der Helm
2f59adadcc Update vst3-sys to a version with atomic refcounts 2022-01-31 19:42:35 +01:00
Robbert van der Helm
b65158283a Support parking_lot mutexes and rwlocks 2022-01-31 19:42:35 +01:00
Robbert van der Helm
6494d1ed5f Store persistent fields as plain JSON strings
On second thought, this is much better. The resulting file size will be
much smaller because only double quotes need to be escaped. It's also
easier to read at a glance.
2022-01-30 18:23:13 +01:00
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
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
46cd75ec53 Add an xtask binary target for running tasks 2022-01-29 17:31:51 +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
d357add75a Implement most of the VST3 parameter handling 2022-01-27 00:19:50 +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
1a619c474b Use a vst3-sys fork with support for generics 2022-01-26 15:38:43 +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
52f80de5dc Add a dummy library for testing the macro 2022-01-25 22:18:55 +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
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
64f7dc8148 Add some of the building blocks for param handling 2022-01-24 21:00:37 +01:00
Robbert van der Helm
d748bd62ff Initial commit 2022-01-24 21:00:37 +01:00