- May 18, 2021
- May 17, 2021
- May 15, 2021
- May 14, 2021
- May 13, 2021
- May 12, 2021
-
-
reuk authored
-
reuk authored
-
reuk authored
-
reuk authored
The old design had us checking isActive inside our audio callbacks, and also modifying isActive from prepareToPlay(), and releaseResources(). To avoid race conditions, and to ensure that isActive actually reflects the activation state of our plugin, we need to lock in these places. If we don't lock, there's a chance that other threads will observe isActive to be true while the plugin is not actually active (for example). If you're not convinced, imagine this scenario: - The message thread calls prepareToPlay. The plugin is activated. - The audio thread starts calling processBlock, and gets as far as the isActive check. The plugin appears active, so we continue into processBlock. - At the same time, the message thread calls releaseResources(). The processBlock call is still in progress, but the message thread is simultaneously making calls to setProcessing() and setActive(), which is a race. Normally, it'd be up to the host of the AudioProcessor to ensure that prepareToPlay() isn't called at the same time as processBlock(). However, VST3 plugins can request a restart at any time from the UI thread, requiring us to call prepareToPlay() even while processBlock() is running.
-
ed authored
-
- May 11, 2021
- May 10, 2021
-
-
ed authored
-
ed authored
Projucer: Fixed an assertion caused by the project content component trying to grab keyboard focus when not visible
-
Tom Poole authored
-
ed authored
-
ed authored
-
ed authored
-
ed authored
Accessibility: Added VoiceOver (macOS) and Narrator (Windows) accessibility screen reader support to juce_gui_basics
-
- May 07, 2021
-
-
reuk authored
-
- May 06, 2021
-
-
reuk authored
Previously, IEditController parameter indices were being used to index into the AudioProcessor parameter array, but these parameter indices are not guaranteed to point to the same parameter (parameter groups may cause reordering on JUCE's side). Now, we use the IEditController indices universally.
-
reuk authored
-
reuk authored
Previously, the following plugins were causing issues when hosting their editors: - Softube plugins. I used Saturation Knob for testing, which crashed when deleting the temporary parent view. - KORG Gadget series, which displayed a black screen after the temporary parent view was deleted. - FabFilter Pro-C, which displayed at the wrong scale when opened on a retina display.
-
- May 05, 2021
- May 04, 2021
-
-
reuk authored
This change ensures that popup menus will be dismissed when hosted plugin windows are moved, even when these plugin views are themselves hosted inside JUCE views, like those used in the AudioPluginHost.
-