Hi,
Logic Pro X disables all plugins on a track, when there is no active region. Is there a way to prevent Logic from doing that? Pro tools is doing the same thing, but at least they provided a flag that can be set to turn it off for a plugin.
Hi,
Logic Pro X disables all plugins on a track, when there is no active region. Is there a way to prevent Logic from doing that? Pro tools is doing the same thing, but at least they provided a flag that can be set to turn it off for a plugin.
I didnāt notice a way to turn it off with Logic.
Wonder what flag Avid provides if you can elaborate.
In my specific product the āuglyā workaround was allowing it to be MIDI Controlled / Instrument so it can be inserted as Bus or Instrument where logic wouldnāt āoptimizeā your plug-in.
Iāve also made a value read by my AudioProcessorEditor running within the process call:
lastProcessRun = Time::getCurrentTime().toMilliseconds();
so I can do check if my process method didnāt get a chance to run.
There is a Juce macro to disable dynamic processing:
JucePlugin_AAXDisableDynamicProcessing
Just set it to 1 in the preprocssor definitions.
An Instrument slot doesnāt make sense for my plugin as itās only available on instrument tracks. What do you mean by inserted as bus? Inserting the plugin on a bus? I thought buses are never āoptimizedā in Logic.
@Jan_Schwers , I might mis-understand your workflow.
Iāve tested the following here with Logic X:
But Iāve not seen a way to make Logic always run the process callback within audio track where thereās no audio.
The user can enable recording and monitoring for a track to have the inserts always processed but I think thereās nothing the plugin developer can do programmatically.
This must be possible - see Logicās test oscillator.
Logicās Test Oscillator isnāt an AU plug-in. it might use different / private API.
If you have an AU based example that would be more proof-of-concept.
but Iāve tested few plug-ins including JUCE demo and NI Guitar Rig that has Tape Deck and Metronome (and isnāt JUCE based).
None provided audio without audio ON the track during playbackā¦
Until JUCE 4.1.0 there was a setting method called AudioProcessor::silenceInProducesSilenceOut(). It was to signal the host, if there is no Audio there is no point in calling the processing.
I think I remember a discussion in the forum, that it had no influence, so it got removed in 4.2.0.
Maybe something to investigateā¦
EDIT: here is the forum link:
Yes, you can actually use the plugin type kaudiounittype_generator, but then you wonāt get any inputs.
I may be crazyā¦ and I have no time to check right nowā¦ But I believe Iāve seen some odd behaviour in Logic with thisā¦ try adding an empty track below the track with your plugin and see if it changes the behaviour.
Rail
Sorry Rail, that doesnāt do the trick.
It was not used anywhere in the plugin wrappers. I think it was meant to be a method to be used by plugin host implementations.
Well, I guess Iām out of luck. Thx to everyone for trying to find a solution. This forum is really the best community for plugin developers.
I know. My thought was that it was probably used in the past but got lost during some refactoring or SDK change. So somebody with some knowledge about the AU sdk could check if the wrapper could signal this behaviour to the host i.e. Logic and reinstall that workflow to the wrapper.
I highly doubt that the silenceInProducesSilenceOut flag was introduced without being used in any wrapper.
Unfortunately I donāt have logic so I donāt target AU yet. So I canāt dig into that leadā¦
EDIT: did some research, I donāt know the meaning of the ioActionFlads in JuceAU::Render, but here the define silenceInputProducesSilenceOut IS used:
#if ! JucePlugin_SilenceInProducesSilenceOut
ioActionFlags &= (AudioUnitRenderActionFlags) ~kAudioUnitRenderAction_OutputIsSilence;
#else
ignoreUnused (ioActionFlags);
#endif
But itās gone now in 4.2.
Itās probably a dead spoor anyway, because itās set after the processing, and now that itās removed it isnāt set at allā¦
Not related to Logic specifically, but still related to this problem nonetheless: in Cubase 8.0.35, VST3 plugins donāt seem to get processed either when thereās no audio on the track. They are enabled when you enable audio monitoring though. And there is a flag in the Cubase preferences āSuspend VST3 plugins processing when no audio is receivedā which you can enable/disable.
I just did some more research and found out that melodyne is able to produce sound all the time in logic. It doesnāt matter if there is an active region on the track or if playback is stopped. As soon as youāve got a track transferred into the plugin you can delete the region and melodyne is playing back the transferred audio data. If you click on a blob it melodyne produces a sound, so you get an idea of the pitch. This is working all the time. even when playback is stopped. I donāt know how the guys at Celemony did that, but at least I know itās possible.
I just ran auval on melodyne. It has the type āaumfā which is the same type as the Juce Demo plugin. Only the Juce Demo plugin is not able to produce any sound when there is no region playing back.
Also, if I insert another plugin (Juce Demo Plugin for instance) after melodyne this plugin also stays active.
Could this have something to do tail time. Does Melodyne just report a super high processing tail time?
from my testing itās not the tailā¦
Iām reporting DBL_MAX for my tail and it does nothingā¦
Just got the same problem
May be someone got a solution?
Hi Buncker,
Let me summarize my findings:
So it would be interesting if anyone can find a plug-in that is an āaumfā but is able to produce audio even if Logic is playing. Someone mentioned melodyne above. Was this with the newest version of Logic?
Hi Fabian,
Yes, this CPU saving feature was introduced in Logix X somewhere about a year ago (or may be a half?)