1
0
Fork 0
Commit graph

1516 commits

Author SHA1 Message Date
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
Robbert van der Helm 21078bcae0 Fix Vizia resize handle for HiDPI windows 2022-09-22 19:48:08 +02:00
Robbert van der Helm d3fe4c0d06 Use upstream egui-baseview
Now that all patches have been merged.
2022-09-22 19:42:03 +02:00
Robbert van der Helm fff713d066 Fix resizing with HiDPI standalones 2022-09-22 19:36:43 +02:00
Robbert van der Helm e4d1ad39ab Remove old todo 2022-09-22 17:39:22 +02:00
Robbert van der Helm 347cbae430 Use egui's own redraw forcing function 2022-09-22 17:08:17 +02:00
Robbert van der Helm 51b8f64092 Update nih_plug_egui from egui 0.17 to egui 0.19 2022-09-22 15:35:51 +02:00
Robbert van der Helm b008f129f2
Merge pull request #33 from geom3trik/param-slider-update
Move ParamSliderInternal variables to ParamSlider [vizia]
2022-09-21 19:23:25 +02:00
George Atkinson ec79bb36be Fix some spelling errors 2022-09-21 17:32:24 +01:00
George Atkinson eb33a55fcc Move ParamSliderInternal variables to ParamSlider 2022-09-21 17:30:02 +01:00
Robbert van der Helm 269c2a51e1 Re-enable assert_process_allocs for gain_gui_egui 2022-09-21 16:25:07 +02:00
Robbert van der Helm eb11da731d Enable the standalone for gain_gui_egui 2022-09-21 16:11:17 +02:00
Robbert van der Helm 16010c076c Target macOS 10.13 on the CI 2022-09-15 14:27:51 +02:00
Robbert van der Helm 45b609791d Create bundle metadata for universal binaries 2022-09-15 13:28:26 +02:00
Robbert van der Helm 0475c7000b Add support for building universal macOS binaries
This resolves #17.
2022-09-15 03:48:12 +02:00
Robbert van der Helm a51c359c0b Fix Spectral Compressor high frequency rolloff 2022-09-15 01:39:16 +02:00
Robbert van der Helm 5ac9c32c19 Fix SC high freq rolloff at 22.05 kHz
This prevents the effect from getting brighter as you increase the
sample rate.
2022-09-14 17:47:07 +02:00
Robbert van der Helm 374dfc9052 Clarify you can pass other options to xtask 2022-09-14 15:11:04 +02:00
Robbert van der Helm 963d1bd14f Fix bar start position calculation 2022-09-12 14:17:06 +02:00
Robbert van der Helm 5fa2382c8c Add a Spectral Compressor todo for rolloff 2022-09-12 02:42:43 +02:00
Robbert van der Helm b883a611ab Fix resizing aux input storage on buffer size
This nested `resize_with()` of course wouldn't resize the inner vectors
of the outer ones were already the correct size.
2022-09-11 16:41:31 +02:00
Robbert van der Helm 4c9a2726f3 Fix s2v_bool_bypass() 2022-09-07 20:43:47 +02:00
Robbert van der Helm c980fe2b4b Add backtraces for allocation failures #30 2022-09-07 20:02:35 +02:00
Robbert van der Helm cf72a796f4 Fix GUI context state loading in standalones 2022-09-07 18:38:07 +02:00
Robbert van der Helm 910a90d47a Respect assert_process_allocs in standalones
This fixes #29.
2022-09-07 18:29:58 +02:00
Robbert van der Helm 591f3710bd Add missing reset call to standalone init
The plugin versions also do this, and the docs mention that this always
happens.
2022-09-07 18:23:36 +02:00
Robbert van der Helm 997249a293 Notify about unsupported aux IO in standalones
None of the backends support this at the moment.
2022-09-07 15:58:09 +02:00
Robbert van der Helm 9536842a15 Only show CPAL MIDI support warning if applicable 2022-09-07 15:55:36 +02:00
Robbert van der Helm c566888fa3 💥 Use interior mutability for parameters
Instead of the previous technically-unsound approach. While it wouldn't
cause any issues in practice, it did break Rust's guarantees. That was a
design choice after adding support for editors in NIH-plug, but this is
probably the better long term solution.

The downside is that all uses of `param.value` now need to be changed to
`param.value()`.
2022-09-06 21:57:24 +02:00
Robbert van der Helm 5966e353da Use only interior mutability for smoothers
This is needed in preparation for removing the need to have `*mut`
pointers to parameters.
2022-09-06 21:21:46 +02:00
Robbert van der Helm 7f33f172cb Clean up optimized block smoothing
This is easier to follow and avoids computing and subsequently
overwriting the last smoothed value.
2022-09-05 14:00:56 +02:00
Robbert van der Helm a21daef96b Redesign mapped block smoothing
The non-mapped version is now split off and the mapped version is much
better suited for array based modulation. Check the breaking changes
document and the new docstring for more information.
2022-09-04 20:17:06 +02:00
Robbert van der Helm 99437c6011 Optimize block smoothing 2022-09-04 19:52:17 +02:00
Robbert van der Helm cd02ebb839 Use less arbitrary decay weights for the gain GUIs
This solves the same problem as #27 but in a cleaner way. The previous
commits refactored the smoothing to make it possible to use the
calculations in plugin code to do the same thing as #27, but then I
realized that that doesn't make much sense since the time to decay into
complete silence isn't very meaningful for this kind of computation.
2022-09-04 19:09:22 +02:00
Robbert van der Helm 3a9d56e956 Rename step_size() current parameter to start 2022-09-04 18:40:18 +02:00
Robbert van der Helm 8e17972da5 Also move num steps computation to SmoothingStyle 2022-09-04 18:26:36 +02:00
Robbert van der Helm bb6e9c237f Add equivalence tests for next() and next_step() 2022-09-04 18:20:51 +02:00
Robbert van der Helm 9f990cc3b9 Rename step_size() parameter for SmoothingStyle 2022-09-04 18:20:28 +02:00
Robbert van der Helm 17a928647e Optimize single step Smoother::next()
By not having to take multiple steps into account.
2022-09-04 18:08:31 +02:00
Robbert van der Helm dd320c4c1f Add dedicated single step next() to SmoothingStyle
This avoids some computations for single stepping. And we can use this
for block smoothing later.
2022-09-04 18:08:19 +02:00
Robbert van der Helm e47899d421 Move calculation in next_step() to SmoothingStyle 2022-09-04 18:04:31 +02:00
Robbert van der Helm a6d9972924 Move the smoothing step size to a function 2022-09-04 17:57:21 +02:00
Robbert van der Helm 67496f9c79 Default sidechain channel link to 80% 2022-09-04 15:50:49 +02:00
Robbert van der Helm 7cb189b8ef Disable downwards hi-freq rolloff by default 2022-09-04 15:50:20 +02:00
follower 8e624af3f4 Small typo fixes. 2022-09-04 15:19:17 +02:00