JUCE 5.4.0 Released


Whoops. Yes, that one slipped through the net!


Oh yeah, thanks for the hard work! :cool:

Cheers, WilliamK


Hi! Really excited for this update. Awesome job!
I cannot wait to test the Unity integration.
Question: does this mean we can use audio from a Unity AudioSource(/Mic) to do processing using JUCE and use that data to drive games?


Just wanted to mention that this update is really great. Just sent a 5.4 built plug to all our testers, and no reports of troubles; iOS version passed all reviews. Way fewer problems this time than in previous point updates.


You can add your JUCE plug-in to the audio mixer in Unity, so if it takes an input then you will get the audio data from Unity to be processed.


This is great, I think this is doing what I had created a wrapper class to achieve, if so I’ll be looking to refactor to remove those wrappers. Basically the idea is to get a parameter class which has.

  • getters and setters(with optional notify) for User and Normal values.
  • subscription to normal or user values.
  • getting the underlying parameter name / id.
  • to have different User Domain Parameter value types (boolean, choice, int, float)

Previously we had to have access to the APVTS to interact with user values, so the wrapper just held a reference to that and the parameter ID and had methods which accessed the APVTS( to get raw parameter value or add listener, etc. ). Then there would be a wrapper subclass for each type, to compatibilise with the underlying float value.

Now that there are ranged parameters is it possible to do all that without a wrapper class, and without having to hold onto the reference to the APVTS?


Yes. You will be able to do all of that from your own parameter class derived from RangedAudioParameter.


Does Steinberg allow releasing a VST2-compatible VST3 with the VST3 license?
Do you have a clearer list of which hosts do support this kind of VST?


I would imagine so (you would need to check the license conditions yourself) as it’s only a particular form of saved state. However, the only reason you would need to do this is if you have already released a VST3 that you need to maintain compatibility with, or if you have also released a VST2 (in which case you’ll need a VST2 license).

See this post for more detail:

I only know of Cubase at the moment, but this may change as people migrate towards VST3.


Ok. I get it now. Thanks.


Also SONAR (now “Cakewalk by Bandlab”) did support that and I bet it still does


Hey guys,

I just updated to 5.4.0 and have an issue.

I have not created any parameterGroups, but I have added Parameters (I subclassed AudioParameters a long time ago, and simply hand the array items to the AudioProcessor with addParameter()).

That has worked fine for months, but clearly something has changed. I’ll keep working through it, but let me know if the trace makes more sense to you :slight_smile:


Ahhhh … I see the issue, hadn’t noticed that addparameter now takes a unique_ptr. I was using a custom object that happened to also be reference counted, so there is the problem. Onward!