1
0
Fork 0
Commit graph

1011 commits

Author SHA1 Message Date
Robbert van der Helm
700a15f528 Merge branch 'maxjvh/master' #48
native macOS event loop: https://github.com/robbert-vdh/nih-plug/pull/48
2023-01-06 15:14:29 +01:00
Robbert van der Helm
300e112ede Rename Block::len() to Block::samples()
For the same reason mentioned in the last commit.
2023-01-05 16:13:58 +01:00
Robbert van der Helm
cb2824021b Fix buffer adapter size hints for zero channels
And the SamplesIter one was simply not correct when yielded by the block
iterator.
2023-01-05 16:12:09 +01:00
Robbert van der Helm
cb827d18dd Rename Buffer::len() to Buffer::samples()
To reduce ambiguity.
2023-01-05 16:04:38 +01:00
Robbert van der Helm
9e1a888b38 Store sample count in Buffer
This fixes the sample count not being correct for MIDI-only plugins.
2023-01-05 15:58:55 +01:00
Robbert van der Helm
19be530ba3 Rename Buffer::with_raw_vec to set_slices 2023-01-05 15:36:04 +01:00
Robbert van der Helm
11d9476a5f Use db_to_gain_fast() in plugins 2023-01-04 17:05:13 +01:00
Robbert van der Helm
3b57ebe895 Add test for fast decibel<->gain functions 2023-01-04 17:01:25 +01:00
Robbert van der Helm
c55fb02982 Add faster decibel<->gain conversion functions 2023-01-04 16:58:28 +01:00
Robbert van der Helm
74a9e294b1 Make gain_to_db() branchless 2023-01-04 16:45:11 +01:00
max
1e83730ba9 rename variable 2023-01-02 19:30:31 +02:00
max
edca84a42c address comments 2023-01-02 19:29:13 +02:00
max
1fbe3efb79 update comment 2023-01-01 20:22:17 +02:00
max
9fd88ffd48 initial event loop implementation for macOS 2023-01-01 20:14:55 +02:00
Robbert van der Helm
069053ca50 Also defer latency change for CLAP plugins
In case a future host does the same thing Ardour does right now for VST3
plugins.
2022-12-28 01:34:42 +01:00
Robbert van der Helm
5cbef6ec03 Fix alloc failures in VST3 with many events
Or well, work around. We should use a different non-allocating sorting
implementation here. This only crept up in Ardour because they for some
reason send all parameter values after loading a VST3 plugin.
2022-12-28 01:30:26 +01:00
Robbert van der Helm
fd28a95231 Defer set_latency_samples() in VST3 plugin init
The host might otherwise restart the plugin while the `Plugin::init()`
call is still active, resulting in a deadlock because the plugin mutex
is still locked. This was causing issues when loading state in Ardour7.
The new approach also removes the need for a previous hack added for
Ardour6.
2022-12-28 01:28:33 +01:00
Robbert van der Helm
46752fc7f0 Make the definition of buffer length more explicit
This is the standard definition, but apparently it's still confusing.
Resolves #47.
2022-12-23 20:34:57 +01:00
Robbert van der Helm
2747714640 Silence warning for standalone config on macOS 2022-12-02 19:42:51 +01:00
Robbert van der Helm
ec34e54bfe Update dependencies, allow resizing on Win/macOS
This was implemented for Linux in March, but it should now also work on
Windows and macOS.
2022-12-01 20:21:56 +01:00
Robbert van der Helm
50fa1008c0 Allow assert_process_allocs+mingw-w64 in release
This causes the application to halt in debug builds, but it shouldn't be
an issue in release builds.
2022-12-01 20:18:30 +01:00
Robbert van der Helm
1d9e7e6256 Implement Debug for parameters 2022-11-26 12:58:32 +01:00
Robbert van der Helm
9a77bd2918 Remove old comment 2022-11-22 21:29:06 +01:00
Robbert van der Helm
d9284ef0b7 Add debug assertion for custom feature namespaces 2022-11-22 21:19:17 +01:00
Robbert van der Helm
7c732e594c Document that custom features must be namespaced 2022-11-22 21:09:35 +01:00
Robbert van der Helm
26535a099d Seal the Params trait
This avoids situations like #41 where people try to implement the trait
only to find out that you simply can't.
2022-11-22 17:43:26 +01:00
Robbert van der Helm
753ca201a6 Support #[nested] prefixes/suffixes w/ #[persist]
This makes nested fields behave the same as nested parameters, allowing
multiple copies of a persistent field to exist.
2022-11-19 00:17:13 +01:00
Robbert van der Helm
c947d6c232 Handle shaprs in s2v_i32_note_formatter() 2022-11-18 17:26:42 +01:00
Robbert van der Helm
230ed90745 Parse XXX Hz, C4 as XXX Hz
This can happen if the user edits the output of
`v2s_f32_hz_then_khz_with_note_name()`.
2022-11-18 17:12:52 +01:00
Robbert van der Helm
4dbc0c1a87 Mark the utils functions as inlnie
So the compiler can decide what to do with them.
2022-11-18 16:09:32 +01:00
Robbert van der Helm
6d0c1eebbe Move frequency to note number conversion to utils 2022-11-18 16:09:18 +01:00
Robbert van der Helm
6966d00dd7 Fix cents in s2v_f32_hz_then_khz()
The trimming was not done correctly, and cents were treated as partial
octaves.
2022-11-12 01:32:09 +01:00
Robbert van der Helm
79f5bd8659 Add a formatter for frequencies with note name
This is the same as the 'Hz then kHz' formatter but it also appends the
note name and optionally the number of cents.
2022-11-12 01:26:27 +01:00
Robbert van der Helm
c3cd2fb0dd Fix v2s_i32_note_formatter() for negative numbers
Otherwise this would wrap around or panic in debug builds.
2022-11-12 01:25:33 +01:00
Robbert van der Helm
59456a2973 Remove 128 note MIDI limit in frequency parser
This is useful when the value->string function can go outside of the
standard 128 note range.
2022-11-12 01:25:33 +01:00
Robbert van der Helm
5330a7d938 Add a version of util::midi_note_to_freq for f32 2022-11-12 01:25:33 +01:00
Robbert van der Helm
761f0b0a80 Add cents support to s2v_f32_hz_then_khz() 2022-11-12 01:25:33 +01:00
Robbert van der Helm
b93cd08dfa Default cpal backend to 48 kHz sample rate
This is probably a safer default for most regular computers.
2022-11-11 03:15:05 +01:00
Robbert van der Helm
5b3c327e29 Handle -inf dB in gain<->decibel formatters 2022-11-11 03:15:05 +01:00
Robbert van der Helm
e583b8e777 Add finer step sizes to parameters 2022-11-11 03:15:05 +01:00
Robbert van der Helm
8885713ea1 Take largest step out of 100 steps and step_size
For floating point ranges. This otherwise feels very janky.
2022-11-11 03:15:05 +01:00
Robbert van der Helm
b2da26ecd7 Add prefix to plain_value() and normalized_value()
To make it clearer that these functions include monophonic modulation.
When creating GUI widgets, you should be using the unmodulated variants.
2022-11-11 03:15:05 +01:00
Robbert van der Helm
841ec96d2d Use Rust range notation for NoteEvent docs #42
Apparently `from x to y` is ambiguous, so we now use the Rust `x..y`
syntax instead.
2022-11-08 19:36:07 +01:00
Robbert van der Helm
4f16fa3998 Fix typos in NoteEvent documentation 2022-11-08 19:33:40 +01:00
Robbert van der Helm
4893479485 Clarify integer range conventions in docs
This resolves #42.
2022-11-07 22:47:17 +01:00
Robbert van der Helm
69f9880fe5 Use consistent real interval syntax in docs 2022-11-07 22:45:36 +01:00
Robbert van der Helm
5851bc5a27 Add missing ranges in note enum documentation 2022-11-07 22:45:22 +01:00
Robbert van der Helm
542b3052f2 Support running status MIDI events 2022-11-05 14:19:47 +01:00
Robbert van der Helm
e8002730a0 Fix clippy lints 2022-11-05 14:19:47 +01:00
Robbert van der Helm
8f91ecf247 Silence bool_to_int_with_if clippy lint 2022-11-05 14:19:47 +01:00