1
0
Fork 0
Commit graph

285 commits

Author SHA1 Message Date
Robbert van der Helm
ce37ec288e Don't store a GUID in the factory
This isn't actually needed.
2022-02-07 00:19:05 +01:00
Robbert van der Helm
c9a5818cb4 Fix Windows entry point names 2022-02-06 23:37:40 +01:00
Robbert van der Helm
02614e4a5a Use absolute values for the peak meter gain
I guess I wasn't thinking too clearly when I wrote this.
2022-02-06 19:20:03 +01:00
Robbert van der Helm
df76047419 Move the process context to its own module 2022-02-06 18:51:46 +01:00
Robbert van der Helm
37a8f529b0 Move WrapperView to its own module 2022-02-06 18:46:16 +01:00
Robbert van der Helm
e99311097b Mention the current status in the readme 2022-02-06 18:31:49 +01:00
Robbert van der Helm
9db4c0d691 Move inner wrapper to its own module
We'll need to do this with the other parts as well. Navigating this
module has become practically impossible
2022-02-06 17:50:15 +01:00
Robbert van der Helm
427c7674b9 Move VST3 pointer check macros to a module 2022-02-06 17:40:35 +01:00
Robbert van der Helm
556bec7c0b Move editor handling to its own struct
This makes the API much, much nicer (especially consuming the egui
wrapper), and it also avoids having to lock the plugin instance which is
obviously very bad if the plugin is also supposed to be processing audio
on another thread.
2022-02-06 17:12:57 +01:00
Robbert van der Helm
3ede5ed751 Move the TODO on GUI opening xruns 2022-02-06 15:32:54 +01:00
Robbert van der Helm
3bd3696abe Put the no_alloc guard around entire process call 2022-02-06 15:24:18 +01:00
Robbert van der Helm
f644ae8df8 Don't require a write lock to create an editor 2022-02-06 15:22:30 +01:00
Robbert van der Helm
67e9cae37b Explicitly close the egui-baseview window
It's supposed to do this on drop, but it doesn't seem to work.
2022-02-06 15:09:35 +01:00
Robbert van der Helm
92c090766a Add TODOs for things that need fixing 2022-02-06 15:01:19 +01:00
Robbert van der Helm
eefb5e604c Actually, adjust the peak meter range to -60 dBFS
This is the same range Bitwig shows in their tiny VU meters in between
devices.
2022-02-06 14:59:13 +01:00
Robbert van der Helm
0943d54404 Adjust the peak meter normalization to -40 dBFS 2022-02-06 14:58:14 +01:00
Robbert van der Helm
a95b25cd06 Tweak the peak meter display 2022-02-06 14:18:47 +01:00
Robbert van der Helm
7000e9d42e Don't propagate parameter changes while processing
Let the host do this, this would solve all unsoundness issues and
potential collisions.
2022-02-06 14:15:43 +01:00
Robbert van der Helm
ea18f62d02 Always redraw egui GUIs 2022-02-06 14:09:11 +01:00
Robbert van der Helm
40d7799df9 Don't handle context in create_egui_editor
There's no need for special handling here, just let the plugin do its
own thing.
2022-02-06 14:02:55 +01:00
Robbert van der Helm
a10e1e1152 Rename the VU meter to generic digital peak meter
Before I get a visit from the VU police.
2022-02-06 13:36:55 +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
33ad2d0b15 Fix typo in buffer iterator 2022-02-06 12:59:29 +01:00
Robbert van der Helm
c4b983baf8 Implement ExactSizeIterator for the buffer adapter 2022-02-06 12:45:13 +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
5e2086e1ee Add even more dependencies 2022-02-06 03:14:41 +01:00
Robbert van der Helm
4fb79c208e Add more dependencies 2022-02-06 03:00:45 +01:00
Robbert van der Helm
0514d2de96 Increase the gain smoothing time 2022-02-06 02:36:31 +01:00
Robbert van der Helm
f22f1364ac Fix name of xcb package 2022-02-06 02:26:59 +01:00
Robbert van der Helm
3e29548608 Install missing dependencies on CI 2022-02-06 02:23:01 +01:00
Robbert van der Helm
53f802b295 Fix accidental gain smoothing style change 2022-02-06 02:08:58 +01:00
Robbert van der Helm
6db85c535f Move ParamSetter creation to its own struct
This cannot be called from the trait object.
2022-02-06 01:52:16 +01:00
Robbert van der Helm
f1b12e747c Remove unused import 2022-02-06 01:40:25 +01:00
Robbert van der Helm
df1bc2b429 Fix the printed VST3 bundle path 2022-02-06 01:35:12 +01:00
Robbert van der Helm
bf070fce5a Use atomics in the smoother
This is needed so we can share the params with the editor, but it isn't
great, is there a better alternative?
2022-02-06 01:33:19 +01:00
Robbert van der Helm
47b6631283 Revert "Initialize the egui GUI using the update function"
This reverts commit 5c9ac31408.
2022-02-06 01:02:26 +01:00
Robbert van der Helm
cc3d2bcba0 Re-export egui 2022-02-06 00:54:13 +01:00
Robbert van der Helm
29a9c41389 Delay the process_wrapper() use
The other parts also don't allocate, but parking_lot doesn't play nicely
when spawning an editor thread. In that case its hashmap may get resized
on the audio thread which is not what we want, but it won't cause any
real problems.
2022-02-06 00:51:18 +01:00
Robbert van der Helm
5c9ac31408 Initialize the egui GUI using the update function 2022-02-06 00:51:02 +01:00
Robbert van der Helm
021c183331 Add an egui editor adapter 2022-02-06 00:22:33 +01:00
Robbert van der Helm
d35957db65 Require static lifetimes on GUI contexts 2022-02-06 00:22:15 +01:00
Robbert van der Helm
3c867f9305 Allow all platform constants to be unused 2022-02-06 00:22:15 +01:00
Robbert van der Helm
7a6bfa4573 Add a HasRawWindowHandle wrapper struct 2022-02-06 00:22:15 +01:00
Robbert van der Helm
4021b28155 Fix rustdoc links 2022-02-06 00:22:15 +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
7b14106505 Update local parameters when changing from GUI 2022-02-05 22:26:42 +01:00
Robbert van der Helm
83c3410736 Don't require Send+Sync on the editor 2022-02-05 20:48:21 +01:00
Robbert van der Helm
75435ecb4a Don't require a Drop bound on Editor
On second thought, unless you're implementing something completely from
scratch this will already be part of the library you're using.
2022-02-05 20:15:09 +01:00
Robbert van der Helm
5a84733e7e Add more metadata to the Cargo.toml file 2022-02-05 19:40:42 +01:00