1
0
Fork 0
Commit graph

135 commits

Author SHA1 Message Date
Robbert van der Helm
f2d3d987a0 Update the current MIDI support status 2022-02-04 22:31:43 +01:00
Robbert van der Helm
a93ad650be Remove old todo 2022-02-04 19:04:36 +01:00
Robbert van der Helm
366deda83c Add MIDI support to the sine example 2022-02-04 15:17:42 +01:00
Robbert van der Helm
0e67c61be0 Store timing along with the note events 2022-02-04 15:17:42 +01:00
Robbert van der Helm
02cf16e9c0 Accept incoming note events 2022-02-04 15:17:42 +01:00
Robbert van der Helm
aee3775c10 Add default implementations for most trait methods
Except for process()
2022-02-04 15:17:42 +01:00
Robbert van der Helm
74e0fa5964 Add defaults for some of the plugin constants 2022-02-04 15:17:42 +01:00
Robbert van der Helm
f69fdcef5f Add another plugin constant for MIDI support 2022-02-04 15:17:42 +01:00
Robbert van der Helm
82dfee9313 Document the FTZ flags in the process function 2022-02-03 16:22:32 +01:00
Robbert van der Helm
e642fb5ff8 Make sure FTZ is always enabled 2022-02-03 16:18:24 +01:00
Robbert van der Helm
13369e4085 Reinitialize the plugin after restoring state
This lets you use the parameters to set fields on the plugin struct
during `initialize()`.
2022-02-02 15:39:55 +01:00
Robbert van der Helm
c8cc6bd26b Re-export all user facing includes 2022-02-02 15:16:10 +01:00
Robbert van der Helm
f44597df7c Move the buffer adapter to its own module 2022-02-02 15:01:41 +01:00
Robbert van der Helm
048d69213e Make the buffer own the output slices
This gets rid of a lot of lifetime casting and other unsoundness.
2022-02-02 14:41:35 +01:00
Robbert van der Helm
58736f5cc8 Add a super unsafe channel buffer adapter
To avoid having to perform lifetime magic here, this buffer needs to own
the slices and be stored as part of the RwLock.
2022-02-02 13:02:28 +01:00
Robbert van der Helm
1202b2b9d6 Update unimplemented features list
These things are now all implemented.
2022-02-01 23:39:13 +01:00
Robbert van der Helm
6bb83061dd Rename the params module to param
It's a heterogeneous module, and splitting the ranges to their own
module will be a bit weird otherwise.
2022-02-01 20:51:22 +01:00
Robbert van der Helm
e2e2c59d34 Pass the process context to the plugin 2022-02-01 17:09:23 +01:00
Robbert van der Helm
4734a51440 Move wrapper data to an inner struct
This fixes the soundness issue with the use of Arc. Moving a `Box` to an
`Arc` frees the old boxed data, and the internal reference counting
would also try to free that. As an added benefit, we no longer need the
unsafe Send+Sync implementation for the event loop.
2022-01-31 20:18:12 +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
edab467538 Mention all channel lengths being equal 2022-01-29 16:45:33 +01:00
Robbert van der Helm
59b1132d3b Mark hyperlinks in doc comments 2022-01-28 18:10:28 +01:00
Robbert van der Helm
61d7905148 Add a todo for transport information in process 2022-01-28 15:18:55 +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
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
c11abdc77d Add a processing status for handling reverb tails 2022-01-27 21:03:49 +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
9046cfbe3a Add a version string constant 2022-01-26 22:20:15 +01:00
Robbert van der Helm
0a67c8e5f4 Correct the VST3 categories string length 2022-01-26 21:40:49 +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
031407754b Add name, vendor, and other constants to plugins 2022-01-26 18:14:13 +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
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