Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
logic_pro.hpp File Reference

Per-host quirks for Apple Logic Pro + GarageBand (macOS plan item 5.10). More...

Go to the source code of this file.

Namespaces

namespace  pulp
namespace  pulp::format
 What the product grants a device: the quota table indexed by capability tier and live thermal state.
namespace  pulp::format::host_quirks

Functions

void pulp::format::host_quirks::apply_logic_pro (HostQuirks &q, HostVersion)
 Populate Logic Pro (and GarageBand-as-Logic) AU host-gated flags onto q.

Detailed Description

Per-host quirks for Apple Logic Pro + GarageBand (macOS plan item 5.10).

DAW-quirks rows 19 + 20 (AU v1 / v2):

  • row 19: Logic hangs when the AU plugin probes for more than 8 channels during channel-count enumeration. The AU v2 adapter hard-caps maxChannelsToProbeFor at 8 when Logic (or GarageBand, which inherits Logic's AU host stack) is detected; the default stays at 64 for other AU hosts.
  • row 20: getTailLengthSeconds() is documented as NSTimeInterval (seconds, wall-clock), not a pre-computed sample count. The AU v2 adapter keeps a cached sample rate fresh across prepareToPlay events and converts Processor::tail_seconds() into AU's expected wall-clock units on demand.

Version handling: both rows are present across every Logic / GarageBand vintage Pulp targets — the channel-probe hang has been observed from Logic 8 through Logic 11, and the tail-time unit convention is part of the AU v2 contract. apply_logic_pro fires both regardless of HostVersion. GarageBand is treated as Logic by the dispatch table (make_quirks_for maps HostType::GarageBand here) — same AU host stack, same accommodations.

Reference-Lineage: independent reproducer=macos-plan-item-5.10 docs=https://developer.apple.com/library/archive/documentation/MusicAudio/Conceptual/AudioUnitProgrammingGuide/Introduction/Introduction.html