graphName "builtin_speaker_out" ; macros ; Uncomment the fs definition below if you want to process the graph offline ; [def fs 48000] [def spp3FixedBlockSize 512] [def numChansIn 2] [def numChansOut 4] [def numRefChans 4] ; boxes in in in telemetry out out out ref box XTC (aufx axtc) 1 1 box NFP nfnp 1 1 ; Non Finite Protection box VirtBass (aufx vben) 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 VarEQ (aufx vrq2) 1 1 box AULowFlow (aufx flow) 1 1 box split split 1 2 box leftGain dbgn 1 1 box rightGain dbgn 1 1 box leftBalance dbgn 1 1 box rightBalance dbgn 1 1 box join join 2 1 box EQSplit split 1 2 box toneSplit split 1 4 box Tone3 (aufx tmst) 1 1 box toneJoin join 4 1 box EQJoinLF join 2 1 box EQJoinHF join 2 1 ; box Buzz (aufx buzk) 1 1 ; box Delay (aufx cdly) 1 1 box freakJoin join 4 1 box ControlFreakLF (aufx cfrk) 1 1 box ControlFreakHF (aufx cfrk) 1 1 box freakSplitLF split 1 2 box freakSplitHF split 1 2 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 inputTelemetryFormatFixedChannelCount8Interleaved ([fs] 8i) format inputTelemetryFormatFixedChannelCount8Deinterleaved ([fs] 8) format inputTelemetryFormatFixedChannelCount8FixedBlockSizeInterleaved ([fs] 8i [spp3FixedBlockSize]) format inputTelemetryFormatFixedChannelCount8FixedBlockSizeDeinterleaved ([fs] 8 [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 split ([fs] [numChansIn]) wire (split 0) leftGain ([fs] 1) wire leftGain leftBalance ([fs] 1) wire leftBalance (join 0) ([fs] 1) wire (split 1) rightGain ([fs] 1) wire rightGain rightBalance ([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 Comp AULowFlow ([fs] [numChansIn]) ; wire AULowFlow EQSplit ([fs] [numChansIn]) wire (EQSplit 0) (toneJoin 0) ([fs] 1) ;left woofer wire (EQSplit 0) (toneJoin 2) ([fs] 1) ;left tweeter wire (EQSplit 1) (toneJoin 1) ([fs] 1) ;right woofer wire (EQSplit 1) (toneJoin 3) ([fs] 1) ;right tweeter wire toneJoin Tone3 ([fs] [numChansOut]) wire Tone3 toneSplit ([fs] [numChansOut]) wire (toneSplit 0) (EQJoinLF 0) ([fs] 1) ;left woofer wire (toneSplit 1) (EQJoinLF 1) ([fs] 1) ;right woofer wire (toneSplit 2) (EQJoinHF 0) ([fs] 1) ;left tweeter wire (toneSplit 3) (EQJoinHF 1) ([fs] 1) ;right tweeter ; wire EQJoinLF Buzz ([fs] 2) ; wire EQJoinHF Delay ([fs] 2) ; wire Buzz ControlFreakLF ([fs] 2) ; wire Delay ControlFreakHF ([fs] 2) wire EQJoinLF ControlFreakLF ([fs] 2) wire EQJoinHF ControlFreakHF ([fs] 2) wire ControlFreakLF freakSplitLF ([fs] 2) wire ControlFreakHF freakSplitHF ([fs] 2) wire (freakSplitLF 0) (freakJoin 0) ([fs] 1) ;left woofer wire (freakSplitLF 1) (freakJoin 1) ([fs] 1) ;right woofer wire (freakSplitHF 0) (freakJoin 2) ([fs] 1) ;left tweeter wire (freakSplitHF 1) (freakJoin 3) ([fs] 1) ;right tweeter wire freakJoin AULowFlow ([fs] [numChansOut]) wire AULowFlow PreSpp3Reblocker ([fs] [numChansOut]) ; wire freakJoin PreSpp3Reblocker ([fs] [numChansOut]) wire PreSpp3Reblocker (SpeakerProtect 0) spp3FormatFixedBlockSize wire telemetry DeinterleavedFC inputTelemetryFormatFixedChannelCount8Interleaved wire DeinterleavedFC TelemetryReblocker inputTelemetryFormatFixedChannelCount8Deinterleaved wire TelemetryReblocker InterleavedFC inputTelemetryFormatFixedChannelCount8FixedBlockSizeDeinterleaved wire InterleavedFC (SpeakerProtect 1) inputTelemetryFormatFixedChannelCount8FixedBlockSizeInterleaved wire SpeakerProtect PostSpp3Reblocker spp3FormatFixedBlockSize wire PostSpp3Reblocker Ramp ([fs] [numChansOut]) wire Ramp out ([fs] [numChansOut]) wire Ramp ref ([fs] [numRefChans]) ; graph-level parameters param mvsc 1 wireGraphParam mvsc (VarEQ 5) ; 5 = currentGain param mvol 0 wireGraphParam mvol (AULowFlow 4) 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) 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)