We have a product where Logic Pro's "process effects only when needed" optimisation blocks the core use case, and we would like to ask for the opt-in that some third-party plug-ins already have. Filed as FB25426476.
The plug-in
ACENTAUR (Audio Unit v2, type aumf, subtype Acnt, manufacturer EINX; EINAUX, Germany) is an AI music generator that lives in the Audio FX slot of an audio track. It renders its own material from the host's tempo, time signature and transport, so the natural workflow is: empty audio track, insert ACENTAUR, press Play, generate. There is no region and no input signal. The plug-in is the source.
What happens
On an empty audio track Logic never calls the render callback, so the plug-in never receives the host clock through the HostCallbacks: tempo and transport stay unknown and our UI stays locked. Everything else works: the same build renders in the instrument slot, in other hosts, and on a Logic audio track as soon as a region or live input is present. Inserting Logic's Test Oscillator (bypassed) in the same strip also makes it work, which shows the strip is simply not scheduled.
Logic engineering described this optimisation on coreaudio-api in February 2024 (https://www.mail-archive.com/coreaudio-api@lists.apple.com/msg01859.html).
What we observed
A number of third-party effects (Celemony Melodyne, Antares, Synchro Arts, Waves and others) are processed on an empty track. We verified on Logic Pro 12.4 (6707) / macOS 26.6.2 that this is tied to the plug-in's identity plus a private global property Logic queries when the plug-in is loaded: with a listed manufacturer code and that property answered, our plug-in is rendered immediately on an empty track and the host clock arrives. We are of course not going to ship under another vendor's identity; this was a one-off local test to make sure we understand the mechanism before asking.
Log excerpt from that test (plug-in log, out-of-process hosting, empty audio track, 48 kHz):
09:19:38 host asked property 101000 → 0
09:19:38 host asked property 101001 → 1
09:19:38 Initialize → 0 · in 2 ch @ 48000 Hz · out 2 ch
09:19:39 First render after 0s · input callback · tempo 120.00
Same build under our own manufacturer code EINX: "No render after 30s · host clock tempo+transport · flags 0".
The request
Could ACENTAUR (aumf / Acnt / EINX) be added to the set of plug-ins Logic keeps processing without input? The plug-in already answers the property in question; the only missing piece is on Logic's side. If there is a different or public mechanism you would prefer third parties to adopt (a component tag, an AU property, an AUv3 property), we will implement it right away.
Happy to provide a build, a demo project and whatever else helps.
Christoph Kahse, EINAUX