graphName "builtin_speaker_out" ; macros ; Uncomment the fs definition below if you want to process the graph offline ; [def fs 48000] ; All products use 48kHz by default [def spp3FixedBlockSize 512] [def numChansIn 2] [def numChansOut 6] ; rdar://46105807; Mapping Ch 0 - Ch 5; Left woofer 1, left woofer 2, left tweeter, right woofer 1, right woofer 2, right tweeter as of 12/03/18 [def numRefChans 6] ; ports in in in telemetry out out out ref ; boxes box SplitMain split 1 2 box LeftGain dbgn 1 1 box RightGain dbgn 1 1 box LeftBalance dbgn 1 1 box RightBalance dbgn 1 1 box EQSplit split 1 2 box ToneSplit split 1 6 box FreakSplitLF split 1 4 box FreakSplitHF split 1 2 box ToneJoin join 6 1 box EQJoinLF join 4 1 box EQJoinHF join 2 1 box FreakJoin join 6 1 box Join join 2 1 box NFP nfnp 1 1 ; Non Finite Protection box XTC (aufx axtc) 1 1 box SpeakerProtect (aufx spp3) 2 1 box Tone1 (aufx tmst) 1 1 box Norm (aufx ldnm) 1 1 box Comp (aufx mstk) 1 1 box Tone2 (aufx tmst) 1 1 box VirtBass (aufx vben) 1 1 box VarEQ (aufx vrq2) 1 1 box analytical (aufx tmst) 1 1 box ControlFreakLF (aufx cfrk) 1 1 box ControlFreakHF (aufx cfrk) 1 1 box Ramp dbgn 1 1; For ramping at start/stop to avoid pop box PreSpp3Reblocker reblocker 1 1 box TelemetryReblocker reblocker 1 1 box PostSpp3Reblocker reblocker 1 1 box DeinterleavedFC srlconverter 1 1 box InterleavedFC srlconverter 1 1 ; format format inputTelemetryFormatFixedChannelCount12Interleaved ([fs] 12i) format inputTelemetryFormatFixedChannelCount12Deinterleaved ([fs] 12) format inputTelemetryFormatFixedChannelCount12FixedBlockSizeInterleaved ([fs] 12i [spp3FixedBlockSize]) format inputTelemetryFormatFixedChannelCount12FixedBlockSizeDeinterleaved ([fs] 12 [spp3FixedBlockSize]) format spp3FormatFixedBlockSize ([fs] [numChansOut] [spp3FixedBlockSize]) ; wires wire in NFP ([fs] [numChansIn]) wire NFP Norm ([fs] [numChansIn]) wire Norm VirtBass ([fs] [numChansIn]) wire VirtBass Tone1 ([fs] [numChansIn]) wire Tone1 SplitMain ([fs] [numChansIn]) wire (SplitMain 0) LeftGain ([fs] 1) wire (SplitMain 1) RightGain ([fs] 1) wire LeftGain LeftBalance ([fs] 1) wire RightGain RightBalance ([fs] 1) wire LeftBalance (Join 0) ([fs] 1) wire RightBalance (Join 1) ([fs] 1) wire Join XTC ([fs] [numChansIn]) wire XTC Tone2 ([fs] [numChansIn]) wire Tone2 VarEQ ([fs] [numChansIn]) wire VarEQ Comp ([fs] [numChansIn]) wire Comp EQSplit ([fs] [numChansIn]) wire (EQSplit 0) (ToneJoin 0) ([fs] 1) ;left woofer 1 wire (EQSplit 0) (ToneJoin 1) ([fs] 1) ;left woofer 2 wire (EQSplit 0) (ToneJoin 2) ([fs] 1) ;left tweeter wire (EQSplit 1) (ToneJoin 3) ([fs] 1) ;right woofer 1 wire (EQSplit 1) (ToneJoin 4) ([fs] 1) ;right woofer 2 wire (EQSplit 1) (ToneJoin 5) ([fs] 1) ;right tweeter wire ToneJoin analytical ([fs] [numChansOut]) wire analytical ToneSplit ([fs] [numChansOut]) wire (ToneSplit 0) (EQJoinLF 0) ([fs] 1) wire (ToneSplit 1) (EQJoinLF 1) ([fs] 1) wire (ToneSplit 3) (EQJoinLF 2) ([fs] 1) wire (ToneSplit 4) (EQJoinLF 3) ([fs] 1) wire (ToneSplit 2) (EQJoinHF 0) ([fs] 1) wire (ToneSplit 5) (EQJoinHF 1) ([fs] 1) wire EQJoinLF ControlFreakLF ([fs] 4) wire EQJoinHF ControlFreakHF ([fs] 2) wire ControlFreakLF FreakSplitLF ([fs] 4) wire ControlFreakHF FreakSplitHF ([fs] 2) wire (FreakSplitLF 0) (FreakJoin 0) ([fs] 1) ;left woofer 1 wire (FreakSplitLF 2) (FreakJoin 1) ([fs] 1) ;right woofer 1 wire (FreakSplitLF 1) (FreakJoin 2) ([fs] 1) ;left woofer 2 wire (FreakSplitLF 3) (FreakJoin 3) ([fs] 1) ;right woofer 2 wire (FreakSplitHF 0) (FreakJoin 4) ([fs] 1) ;left tweeter wire (FreakSplitHF 1) (FreakJoin 5) ([fs] 1) ;right tweeter wire FreakJoin PreSpp3Reblocker ([fs] [numChansOut]) wire PreSpp3Reblocker (SpeakerProtect 0) spp3FormatFixedBlockSize wire telemetry DeinterleavedFC inputTelemetryFormatFixedChannelCount12Interleaved wire DeinterleavedFC TelemetryReblocker inputTelemetryFormatFixedChannelCount12Deinterleaved wire TelemetryReblocker InterleavedFC inputTelemetryFormatFixedChannelCount12FixedBlockSizeDeinterleaved wire InterleavedFC (SpeakerProtect 1) inputTelemetryFormatFixedChannelCount12FixedBlockSizeInterleaved wire SpeakerProtect PostSpp3Reblocker spp3FormatFixedBlockSize wire PostSpp3Reblocker Ramp ([fs] [numChansOut]) wire Ramp ref ([fs] [numRefChans]) wire Ramp out ([fs] [numChansOut]) ; graph-level parameters param mvsc 0 wireGraphParam mvsc (VarEQ 5) ; 5 = currentGain param mvol 0 wireGraphParam mvol (LeftGain 0) wireGraphParam mvol (RightGain 0) param mmut 0 wireGraphParam mmut (LeftGain 1) wireGraphParam mmut (RightGain 1) param rpss 0 wireGraphParam rpss (Ramp 1) ;TMVarEQ wireGraphParam mvsc (Tone1 3) wireGraphParam mvsc (Tone2 3) wireGraphParam mvsc (analytical 3) param lbal 0 wireGraphParam lbal (LeftBalance 0) param rbal 0 wireGraphParam rbal (RightBalance 0) [def kGraphParameter_SpkMeasuredPwr mspw] [def kGraphParameter_SpkModelPwr mdpw] [def kAUSpeakerProtectionV3Param_SpkMeasuredPwr 16] [def kAUSpeakerProtectionV3Param_SpkModelPwr 15] param [kGraphParameter_SpkMeasuredPwr] 0 out wireGraphParam [kGraphParameter_SpkMeasuredPwr] (SpeakerProtect [kAUSpeakerProtectionV3Param_SpkMeasuredPwr] global 0) param [kGraphParameter_SpkModelPwr] 0 out wireGraphParam [kGraphParameter_SpkModelPwr] (SpeakerProtect [kAUSpeakerProtectionV3Param_SpkModelPwr] global 0) ; Graph property 4CC definitions [def kAUSpeakerProtectionV3Property_SpeakerInputDataSourceOrder 64005] [def kAUSpeakerProtectionV3Property_TransducerCalibrationCF 64009] [def kAUSpeakerProtectionV3Property_TransducerCalibration 64001] [def kAUSpeakerProtectionV3Property_CPMSPowerBudget 64008] ; Graph property connections property tdso in wireGraphProperty tdso (SpeakerProtect [kAUSpeakerProtectionV3Property_SpeakerInputDataSourceOrder] 0 0) property spts in wireGraphProperty spts (SpeakerProtect [kAUSpeakerProtectionV3Property_TransducerCalibrationCF] 0 0) property spcl in wireGraphProperty spcl (SpeakerProtect [kAUSpeakerProtectionV3Property_TransducerCalibration] 0 0) property cpms in wireGraphProperty cpms (SpeakerProtect [kAUSpeakerProtectionV3Property_CPMSPowerBudget] 0 0)