We develop Donuts, an AUv2 MIDI processor (aumi), using JUCE 8.0.12 on Apple
Silicon. Test environment: Logic Pro 12.4 (6707), macOS 27.0.1 (26A434).
Instances within one Logic project need to share an editable chord chart
automatically, while retaining independent voicing/output settings. Instances
in different open projects must keep separate charts, without manual pairing.
Is there a supported Logic/AU API that supplies a project-scoped identity or
ownership context to an AU MIDI FX instance?
If not, does Logic guarantee that an AUHostingService process cannot contain
live instances from different projects, including during project switching,
loading and recovery? Can one project's instances be distributed across more
than one hosting process? Do these guarantees depend on Logic version or
hosting configuration?
We completed labelled native captures on 18 October 2026 using a diagnostic
observer at the AudioUnitSDK AUMethodSetProperty entry dispatcher, after the
original setter returns. This includes properties handled by AUBase before
the JUCE SetProperty override. It records status, selected property metadata
and top-level restored state key names/types; it does not dereference opaque
host client data. Automatic AU sharing remains disabled.
Observed in the corrected 0.2.40 probe:
Original track and duplicate in project A were both in PID 27015. Each
received a different HostCallbackInfo.hostUserData value and a different
ContextName. We compare process-local hashes, not dereferenced pointers.
Both received all four transport callback functions; AUHostIdentifier
matched within the process. No NickName assignment was observed before
the captures. There were no recorded capture losses.
Keeping A's project window open and opening a separate project B unloaded
both A processors at 18:12:27, reaching a live count of zero. B's fresh
instance loaded in PID 27146 at 18:12:50.
A previous labelled project-switch test also unloaded the original
processors and loaded the new project's instance in a different process.
These observations do not establish a general isolation guarantee.
Restored state in A contained data, jucePluginState, manufacturer, name,
subtype, type and version. B was a fresh insertion with no state restore.
Payload contents were not recorded. Saved plug-in IDs alone cannot
distinguish ownership when tracks, presets or projects are duplicated.
ContextName and hostUserData equality do not group the original and duplicate
in this test. We have not established a project-ownership contract for either.
The application identity also does not distinguish projects.
Please advise on the supported mechanism or hosting-process ownership and
lifetime guarantees for this use case. Our aim is automatic discovery without
ever combining charts from different projects.
Local evidence: context-evidence-0.2.40/01-original-and-duplicate and
context-evidence-0.2.40/02-separate-project contain raw captures, lifecycle logs,
SHA-256 hashes and observations. Nothing has been submitted externally.
0
0
16