1
0
Fork 0
Commit graph

489 commits

Author SHA1 Message Date
Robbert van der Helm
72d3b61a42 Mention standalone inputs not auto connecting 2022-08-21 17:59:44 +02:00
Robbert van der Helm
9cd440231e Print message about MIDI IO not being implemented 2022-08-21 17:59:44 +02:00
Robbert van der Helm
1bee7f5333 Add audio input to the CPAL standalone backend 2022-08-21 17:55:09 +02:00
Robbert van der Helm
c46a044cb4 Add audio output for the CPAL backend 2022-08-21 17:07:02 +02:00
Robbert van der Helm
c47f2139a3 Use a Parker instead of a channel in JACK backend 2022-08-21 15:26:49 +02:00
Robbert van der Helm
559d835878 Print system backend init errors in auto mode
Since this may fail due to incompatible default sample rates or period
sizes.
2022-08-21 15:26:48 +02:00
Robbert van der Helm
1fc437068a Compute device configs for cpal 2022-08-21 15:26:48 +02:00
Robbert van der Helm
a011eaa07c Add most of a CPAL standalone backend
For ALSA, CoreAudio, and WASAPI.
2022-08-21 15:26:48 +02:00
Robbert van der Helm
ca2e318551 Clean up JACK MIDI handling #23 2022-08-20 23:56:18 +02:00
Sean Bolton
7a10d58a58 Fix program change and channel pressure receipt in standalone jack backend 2022-08-20 23:48:55 +02:00
Robbert van der Helm
8a9c98943e Store plugin version in the state
This may later be used to allow migrations between breaking plugin
versions.
2022-08-20 15:10:34 +02:00
Robbert van der Helm
ee62a45d0d Remove now unused argument 2022-08-19 14:54:48 +02:00
Robbert van der Helm
a5c05b22fb Use the plugin's default channels for standalones 2022-08-19 14:52:57 +02:00
Robbert van der Helm
1a706ea1c7 Rename DEFAULT_NUM_INPUTS and DEFAULT_NUM_OUTPUTS 2022-08-19 14:34:21 +02:00
Robbert van der Helm
b19e6afa6c Remove unused import 2022-08-18 16:41:51 +02:00
Robbert van der Helm
56a12db1e6 Reuse MIDI conversion function for CLAP events 2022-08-18 16:39:07 +02:00
Robbert van der Helm
17a90cca9b Rearrange note events 2022-08-18 16:38:44 +02:00
Sean Bolton
2447344dab Add program change events 2022-08-18 16:26:32 +02:00
Robbert van der Helm
1bb1cde913 Add optional Zstandard compression for state
This can be particularly useful when using the persistent fields feature
to store JSON or other large textual documents.
2022-08-18 13:55:48 +02:00
Robbert van der Helm
7f12c9f362 Fix group->unit conversion with missing parents
This caused Spectral Compressor's VST3 version to not work because the
compressor group didn't contain any parameters.
2022-07-24 23:37:45 +02:00
Robbert van der Helm
9844d9c490 Change match &self to match self
This is equivalent when taking a reference to self, and you can't do the
same thing with &mut self.
2022-07-19 20:21:52 +02:00
Robbert van der Helm
0395fd91b1 Only connect JACK ports after activating client
Otherwise JACK2 will hate us. Forever!

The AtomicRefCell now needs to be a mutex because the process call may
be called while this connection function is still running.
2022-07-13 19:19:17 +02:00
Robbert van der Helm
1f3d2f9a66 Fix typo in standalone documentation example 2022-07-13 17:06:22 +02:00
Robbert van der Helm
d828e697a3 Actually expose the CLAP render extension
Oops.
2022-07-11 15:00:10 +02:00
Robbert van der Helm
16077101b2 Gate NoteEvent::VoiceTerminated behind MIDI_INPUT 2022-07-06 17:16:19 +02:00
Robbert van der Helm
4ad4f8f76d Add more basic fields for PolyModSynth 2022-07-06 17:16:19 +02:00
Robbert van der Helm
1424b98e38 Break PolyModulation into that and MonoAutomation
This is needed to properly support polyphonic modulation, since the
modulated value may still be automated in the meantime and the
polyphonic modulation must act as an offset for that value. This does
mean that the plugin must add the normalized value and normaliezd offset
by itself. The `PolyModulation` event now also contains a description of
how this can be used. It would have been nicer to be able to send
polyphonic automation-style events instead (like the PolyModulation was
doing before), but that's sadly not feasible without NIH-plug being
involved in the voice management.
2022-07-06 13:40:12 +02:00
Robbert van der Helm
9520234b57 Pass poly modulation events through to the plugin 2022-07-06 00:09:53 +02:00
Robbert van der Helm
af4314b581 Mark poly mod parameters as such 2022-07-05 23:41:35 +02:00
Robbert van der Helm
54b47ecf71 Keep track of poly mod parameter IDs 2022-07-05 23:41:08 +02:00
Robbert van der Helm
cdee721e9c Allow the plugin to change current voice capacity 2022-07-05 23:26:23 +02:00
Robbert van der Helm
f828761677 Implement the CLAP voice info extension 2022-07-05 23:26:23 +02:00
Robbert van der Helm
1466358e14 Support Plugin::HARD_REALTIME_ONLY for VST3 2022-07-05 22:24:52 +02:00
Robbert van der Helm
905925e032 Move the hard realtime constant to Plugin
Since we could indeed just add the `|OnlyRT` category to the VST3
plugin.
2022-07-05 22:20:07 +02:00
Robbert van der Helm
7ea2851775 Clarify the input event timing handling in VST3 2022-07-04 22:45:52 +02:00
Robbert van der Helm
1bbb56151d Remove duplication in CLAP note timing handling 2022-07-04 22:43:48 +02:00
Robbert van der Helm
5b264179d4 Add note choke events 2022-07-04 22:42:04 +02:00
Robbert van der Helm
d027a6319f Add VoiceTerminated events
These need to be output by a plugin when using polyphonic
modulation (which is currently not yet supported by NIH-plug).
2022-07-04 19:31:40 +02:00
Robbert van der Helm
a2f8a9bebf Add voice ID fields for all non-MIDI note events
This will be useful when adding polyphonic modulation.
2022-07-04 18:31:59 +02:00
Robbert van der Helm
7cd7294b22 Make CLAP descriptions and special URLs optional
This closes #14.
2022-07-04 12:46:34 +02:00
Robbert van der Helm
5cbd8827e9 Update clap-sys with optional function pointers
None of these function pointers are allowed to be null, yet even the
official `clap-helpers` do this. This new `clap_call!()` macro asserts
that a pointer is non-null before calling it.
2022-07-04 00:07:06 +02:00
Robbert van der Helm
97baa9d55c Remove duplicate comment 2022-07-03 17:04:33 +02:00
Robbert van der Helm
c91b74355f Let rustfmt handle string wrapping 2022-07-03 16:52:38 +02:00
Robbert van der Helm
ed880f5297 Handle buffered CLAP stream reads and writes
`clap-validator` now tests this.
2022-07-03 16:51:15 +02:00
Robbert van der Helm
5e6e920418 Use BTreeMaps in the state
This ensures that the order is consistent when saving the same state
file multiple times.
2022-07-02 19:13:18 +02:00
Robbert van der Helm
0599780030 Remove unnecessary reborrows 2022-07-01 15:50:16 +02:00
Robbert van der Helm
1d7cbe4c4d Suppress unused_unit more locally 2022-07-01 14:58:31 +02:00
Robbert van der Helm
f309f39982 More defensively check for >0 inputs and outputs
Noticed this through a bug in clapval.
2022-06-29 01:32:39 +02:00
Robbert van der Helm
4247c229ec Fix in-place pairs for output-only plugins
https://github.com/robbert-vdh/clapval reminded me of this.
2022-06-29 01:32:39 +02:00
Robbert van der Helm
05fd7fa075 Revert "Fix audio port in-place pair indices"
This reverts commit 791dc44650.

This was actually correct, this should use stable indices instead of
list indices.
2022-06-27 18:33:13 +02:00