Integrate DigiRadioFinale DSP program: exclusive source mux, real
Bass Boost1/SPhat1 enhancement blocks Replaces the 74-parameter ADAU1701 program with the new 224-parameter SigmaStudio export. The new netlist has no mixer -- MX1 is an exclusive selector (DC1) passing through exactly one of three stereo pairs (radio/bluetooth/beep) instead of blending them with independent gains. core::MixSource/MixerState are gone; core::ActiveSource plus IDsp::selectSource() replace applyMixer()/setInputVolume() throughout the driver/service/API stack. AudioProfile.mixer -> activeSource; the HTTP "mixer" JSON object -> a single "active_source" string. DC1 turned out to need a raw 32-bit integer (0/1/2), not the 5.23 fixpoint its compiled TYPE_DC1 macro implies -- confirmed live by writing both encodings and listening for which one actually switched sources. Documented in Adau1701Driver::selectSource() and adau1701::paramSourceIndex(). Bass Boost1 and SPhat1 are real ADI algorithm blocks in this revision, so core::applyEnhancementsToEq() (the old EQ-band-overwrite hack for bass/stereo enhancement) is deleted; IDsp::setBassBoostLevel()/ setStereoSpreadLevel() scale each block's compiled coefficients toward identity/unity instead. Confirmed live: Bass Boost audible on real program content (not a static test tone -- the algorithm is dynamics- based), Stereo Spread audible but subtle. The EQ "locked" flag from 2026-08-24 (enhancements silently overwriting manually-set bands) no longer applies to bands 1-5. A full sweep of all 223 non-DC1 named parameters (writing each back to its own compiled default) completed with zero failures, confirming the whole new address space is reachable. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -17,77 +17,125 @@
|
||||
<NetList>
|
||||
<IC name=" IC 1 " type="DSPSigma100">
|
||||
<Schematic>
|
||||
<Algorithm name="ICSigma100In1" friendlyname="170x\140x input " cell="Input1 " location="{X=-15, Y=104} " Growth="10 " GrowthB="0 " FS="48000">
|
||||
<Link pin="O_C33_A0_P3_out" dir="out" link="Link0" />
|
||||
<Link pin="O_C33_A0_P4_out" dir="out" link="Link1" />
|
||||
<Link pin="O_C33_A0_P5_out" dir="out" link="Link2" />
|
||||
<Link pin="O_C33_A0_P6_out" dir="out" link="Link3" />
|
||||
<Algorithm name="ICSigma100In1" friendlyname="170x\140x input " cell="Input1 " location="{X=-71, Y=184.3228} " Growth="10 " GrowthB="0 " FS="48000">
|
||||
<Link pin="O_C33_A0_P3_out" dir="out" link="Link4" />
|
||||
<Link pin="O_C33_A0_P4_out" dir="out" link="Link5" />
|
||||
<Link pin="O_C33_A0_P5_out" dir="out" link="Link6" />
|
||||
<Link pin="O_C33_A0_P6_out" dir="out" link="Link7" />
|
||||
</Algorithm>
|
||||
<Algorithm name="BeepAlg1" friendlyname="Beep - variable gain " cell="Beep1 " location="{X=30, Y=459} " Growth="0 " GrowthB="0 " FS="48000">
|
||||
<Link pin="O_C0_A0_P1_out" dir="out" link="Link15" />
|
||||
<Algorithm name="BeepAlg1" friendlyname="Beep - variable gain " cell="Beep1 " location="{X=136, Y=723.2243} " Growth="0 " GrowthB="0 " FS="48000">
|
||||
<Link pin="O_C0_A0_P1_out" dir="out" link="Link16" />
|
||||
</Algorithm>
|
||||
<Algorithm name="Gain1940AlgNS1" friendlyname="Gain (no slew) " cell="Si4674 " location="{X=168, Y=5} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C63_A0_P1_in" dir="in" link="Link0" />
|
||||
<Link pin="O_C63_A0_P2_out" dir="out" link="Link4" />
|
||||
<Algorithm name="DCInpAlg1" friendlyname="dc Input " cell="DC1 " location="{X=609, Y=89.22221} " Growth="0 " GrowthB="0 " FS="48000">
|
||||
<Link pin="O_C216_A0_P1_out" dir="out" link="Link19" />
|
||||
</Algorithm>
|
||||
<Algorithm name="Gain1940AlgNS2" friendlyname="Gain (no slew) " cell="Si4674 " location="{X=168, Y=5} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C63_A1_P1_in" dir="in" link="Link1" />
|
||||
<Link pin="O_C63_A1_P2_out" dir="out" link="Link5" />
|
||||
<Algorithm name="DCBlockAlgDoublePrec1" friendlyname="DC Blocking " cell="DCB1 " location="{X=101, Y=61.38417} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C67_A0_P1_in" dir="in" link="Link4" />
|
||||
<Link pin="O_C67_A0_P2_out" dir="out" link="Link2" />
|
||||
</Algorithm>
|
||||
<Algorithm name="Gain1940AlgNS3" friendlyname="Gain (no slew) " cell="ESP32 " location="{X=166, Y=196} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C75_A0_P1_in" dir="in" link="Link2" />
|
||||
<Link pin="O_C75_A0_P2_out" dir="out" link="Link6" />
|
||||
<Algorithm name="DCBlockAlgDoublePrec2" friendlyname="DC Blocking " cell="DCB2 " location="{X=104, Y=138.3348} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C72_A0_P1_in" dir="in" link="Link5" />
|
||||
<Link pin="O_C72_A0_P2_out" dir="out" link="Link3" />
|
||||
</Algorithm>
|
||||
<Algorithm name="Gain1940AlgNS4" friendlyname="Gain (no slew) " cell="ESP32 " location="{X=166, Y=196} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C75_A1_P1_in" dir="in" link="Link3" />
|
||||
<Link pin="O_C75_A1_P2_out" dir="out" link="Link7" />
|
||||
<Algorithm name="DCBlockAlgDoublePrec4" friendlyname="DC Blocking " cell="DCB4 " location="{X=103, Y=323.756} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C91_A0_P1_in" dir="in" link="Link6" />
|
||||
<Link pin="O_C91_A0_P2_out" dir="out" link="Link10" />
|
||||
</Algorithm>
|
||||
<Algorithm name="Gain1940AlgNS7" friendlyname="Gain (no slew) " cell="Single 1 " location="{X=188, Y=404} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C4_A0_P1_in" dir="in" link="Link15" />
|
||||
<Link pin="O_C4_A0_P2_out" dir="out" link="Link16" />
|
||||
<Algorithm name="DCBlockAlgDoublePrec3" friendlyname="DC Blocking " cell="DCB3 " location="{X=92, Y=505.472} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C81_A0_P1_in" dir="in" link="Link7" />
|
||||
<Link pin="O_C81_A0_P2_out" dir="out" link="Link11" />
|
||||
</Algorithm>
|
||||
<Algorithm name="SingleCtrlSplit1" friendlyname="Splitter Single " cell="S Splitter1 " location="{X=289, Y=440} " Growth="2 " GrowthB="0">
|
||||
<Algorithm name="SingleCtrlSplit1" friendlyname="Splitter Single " cell="S Splitter1 " location="{X=332, Y=704.3125} " Growth="2 " GrowthB="0">
|
||||
<Link pin="I_C9_A0_P1_in" dir="in" link="Link16" />
|
||||
<Link pin="O_C9_A0_P2_out" dir="out" link="Link17" />
|
||||
<Link pin="O_C9_A0_P3_out" dir="out" link="Link18" />
|
||||
</Algorithm>
|
||||
<Algorithm name="StereoMixerAlg1" friendlyname="Stereo Mixer " cell="St Mixer1 " location="{X=464, Y=112} " Growth="3 " GrowthB="0">
|
||||
<Link pin="I_C84_A0_P3_in" dir="in" link="Link4" />
|
||||
<Link pin="I_C84_A0_P4_in" dir="in" link="Link5" />
|
||||
<Link pin="I_C84_A0_P5_in" dir="in" link="Link6" />
|
||||
<Link pin="I_C84_A0_P6_in" dir="in" link="Link7" />
|
||||
<Link pin="I_C84_A0_P7_in" dir="in" link="Link17" />
|
||||
<Link pin="I_C84_A0_P8_in" dir="in" link="Link18" />
|
||||
<Link pin="O_C84_A0_P1_out" dir="out" link="Link8" />
|
||||
<Link pin="O_C84_A0_P2_out" dir="out" link="Link9" />
|
||||
<Algorithm name="TwoChannelSingleDetectAlgFix1" friendlyname="Stereo RMS (Post Gain) " cell="Compressor1 " location="{X=187, Y=-4.364594} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C106_A0_P1_in" dir="in" link="Link2" />
|
||||
<Link pin="I_C106_A0_P2_in" dir="in" link="Link3" />
|
||||
<Link pin="O_C106_A0_P3_out" dir="out" link="Link8" />
|
||||
<Link pin="O_C106_A0_P4_out" dir="out" link="Link9" />
|
||||
</Algorithm>
|
||||
<Algorithm name="PEQ1Chan1" friendlyname="PEQ1Chan - Double Precision " cell="Param EQ1 " location="{X=585, Y=153} " Growth="2 " GrowthB="0">
|
||||
<Link pin="I_C125_A0_P1_in" dir="in" link="Link8" />
|
||||
<Link pin="I_C125_A0_P3_in" dir="in" link="Link9" />
|
||||
<Link pin="O_C125_A0_P2_out" dir="out" link="Link10" />
|
||||
<Link pin="O_C125_A0_P4_out" dir="out" link="Link11" />
|
||||
<Algorithm name="SingleBandLevelDet3" friendlyname="Single Band " cell="1 X RTA3 " location="{X=352, Y=296} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C155_A0_P1_in" dir="in" link="Link10" />
|
||||
<Link pin="O_C155_A0_P2_out" dir="out" link="Link14" />
|
||||
</Algorithm>
|
||||
<Algorithm name="Gain1940AlgNS5" friendlyname="Gain (no slew) " cell="Multiple 1 " location="{X=711, Y=85} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C138_A0_P1_in" dir="in" link="Link10" />
|
||||
<Link pin="O_C138_A0_P2_out" dir="out" link="Link12" />
|
||||
<Algorithm name="SingleBandLevelDet4" friendlyname="Single Band " cell="1 X RTA4 " location="{X=355, Y=469} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C158_A0_P1_in" dir="in" link="Link11" />
|
||||
<Link pin="O_C158_A0_P2_out" dir="out" link="Link15" />
|
||||
</Algorithm>
|
||||
<Algorithm name="Gain1940AlgNS6" friendlyname="Gain (no slew) " cell="Multiple 1 " location="{X=711, Y=85} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C138_A1_P1_in" dir="in" link="Link11" />
|
||||
<Link pin="O_C138_A1_P2_out" dir="out" link="Link13" />
|
||||
<Algorithm name="SingleBandLevelDet1" friendlyname="Single Band " cell="1 X RTA1 " location="{X=350, Y=-73} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C149_A0_P1_in" dir="in" link="Link8" />
|
||||
<Link pin="O_C149_A0_P2_out" dir="out" link="Link12" />
|
||||
</Algorithm>
|
||||
<Algorithm name="limiterAlg1" friendlyname="Limiter with Indicator " cell="Limiter 1 " location="{X=844, Y=37} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C169_A0_P1_in" dir="in" link="Link12" />
|
||||
<Link pin="O_C169_A0_P2_out" dir="out" link="Link19" />
|
||||
<Algorithm name="SingleBandLevelDet2" friendlyname="Single Band " cell="1 X RTA2 " location="{X=344, Y=112} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C152_A0_P1_in" dir="in" link="Link9" />
|
||||
<Link pin="O_C152_A0_P2_out" dir="out" link="Link13" />
|
||||
</Algorithm>
|
||||
<Algorithm name="limiterAlg2" friendlyname="Limiter with Indicator " cell="Limiter 2 " location="{X=848, Y=186} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C174_A0_P1_in" dir="in" link="Link13" />
|
||||
<Link pin="O_C174_A0_P2_out" dir="out" link="Link14" />
|
||||
<Algorithm name="DCinputmux_stereo_Alg1" friendlyname="Stereo " cell="MX1 " location="{X=730, Y=222.1111} " Growth="3 " GrowthB="0">
|
||||
<Link pin="I_C174_A0_P3_in" dir="in" link="Link19" />
|
||||
<Link pin="I_C174_A0_P4_in" dir="in" link="Link12" />
|
||||
<Link pin="I_C174_A0_P5_in" dir="in" link="Link13" />
|
||||
<Link pin="I_C174_A0_P6_in" dir="in" link="Link14" />
|
||||
<Link pin="I_C174_A0_P7_in" dir="in" link="Link15" />
|
||||
<Link pin="I_C174_A0_P8_in" dir="in" link="Link17" />
|
||||
<Link pin="I_C174_A0_P9_in" dir="in" link="Link18" />
|
||||
<Link pin="O_C174_A0_P1_out" dir="out" link="Link20" />
|
||||
<Link pin="O_C174_A0_P2_out" dir="out" link="Link21" />
|
||||
</Algorithm>
|
||||
<Algorithm name="ICSigma100Out2" friendlyname="170x\140x output " cell="Output2 " location="{X=1003, Y=202} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C185_A0_P1_in" dir="in" link="Link14" />
|
||||
<Algorithm name="PEQ1Chan1" friendlyname="PEQ1Chan - Double Precision " cell="Param EQ1 " location="{X=820, Y=211.9035} " Growth="2 " GrowthB="0">
|
||||
<Link pin="I_C125_A0_P1_in" dir="in" link="Link20" />
|
||||
<Link pin="I_C125_A0_P3_in" dir="in" link="Link21" />
|
||||
<Link pin="O_C125_A0_P2_out" dir="out" link="Link22" />
|
||||
<Link pin="O_C125_A0_P4_out" dir="out" link="Link23" />
|
||||
</Algorithm>
|
||||
<Algorithm name="ICSigma100Out1" friendlyname="170x\140x output " cell="Output1 " location="{X=1009.037, Y=52} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C183_A0_P1_in" dir="in" link="Link19" />
|
||||
<Algorithm name="SuperPhatAlg1" friendlyname="Super Bass " cell="SPhat1 " location="{X=921, Y=196} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C227_A0_P1_in" dir="in" link="Link22" />
|
||||
<Link pin="I_C227_A0_P2_in" dir="in" link="Link23" />
|
||||
<Link pin="O_C227_A0_P3_out" dir="out" link="Link24" />
|
||||
<Link pin="O_C227_A0_P4_out" dir="out" link="Link25" />
|
||||
</Algorithm>
|
||||
<Algorithm name="EQ1940DualS1" friendlyname="2 Channel - Single Precision " cell="Gen Filter1 " location="{X=1037, Y=197} " Growth="1 " GrowthB="0">
|
||||
<Link pin="I_C232_A0_P1_in" dir="in" link="Link24" />
|
||||
<Link pin="I_C232_A0_P2_in" dir="in" link="Link25" />
|
||||
<Link pin="O_C232_A0_P3_out" dir="out" link="Link26" />
|
||||
<Link pin="O_C232_A0_P4_out" dir="out" link="Link27" />
|
||||
</Algorithm>
|
||||
<Algorithm name="Gain1940AlgNS5" friendlyname="Gain (no slew) " cell="Multiple 1 " location="{X=1214, Y=149.7451} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C138_A0_P1_in" dir="in" link="Link26" />
|
||||
<Link pin="O_C138_A0_P2_out" dir="out" link="Link33" />
|
||||
</Algorithm>
|
||||
<Algorithm name="Gain1940AlgNS6" friendlyname="Gain (no slew) " cell="Multiple 1 " location="{X=1214, Y=149.7451} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C138_A1_P1_in" dir="in" link="Link27" />
|
||||
<Link pin="O_C138_A1_P2_out" dir="out" link="Link32" />
|
||||
</Algorithm>
|
||||
<Algorithm name="BassBAlg_stereo1" friendlyname="Stereo Dynamic Bass Boost " cell="Bass Boost1 " location="{X=1394, Y=131.4268} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C263_A0_P1_in" dir="in" link="Link33" />
|
||||
<Link pin="I_C263_A0_P2_in" dir="in" link="Link32" />
|
||||
<Link pin="O_C263_A0_P3_out" dir="out" link="Link31" />
|
||||
<Link pin="O_C263_A0_P4_out" dir="out" link="Link30" />
|
||||
</Algorithm>
|
||||
<Algorithm name="SingleBandLevelDet6" friendlyname="Single Band " cell="1 X RTA2_2 " location="{X=1676, Y=243} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C252_A0_P1_in" dir="in" link="Link30" />
|
||||
<Link pin="O_C252_A0_P2_out" dir="out" link="Link28" />
|
||||
</Algorithm>
|
||||
<Algorithm name="SingleBandLevelDet5" friendlyname="Single Band " cell="1 X RTA1_2 " location="{X=1676, Y=68} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C249_A0_P1_in" dir="in" link="Link31" />
|
||||
<Link pin="O_C249_A0_P2_out" dir="out" link="Link29" />
|
||||
</Algorithm>
|
||||
<Algorithm name="limiterAlg2" friendlyname="Limiter with Indicator " cell="Limiter 2 " location="{X=1800, Y=269.5105} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C29_A0_P1_in" dir="in" link="Link28" />
|
||||
<Link pin="O_C29_A0_P2_out" dir="out" link="Link1" />
|
||||
</Algorithm>
|
||||
<Algorithm name="limiterAlg1" friendlyname="Limiter with Indicator " cell="Limiter 1 " location="{X=1803, Y=90.51053} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C169_A0_P1_in" dir="in" link="Link29" />
|
||||
<Link pin="O_C169_A0_P2_out" dir="out" link="Link0" />
|
||||
</Algorithm>
|
||||
<Algorithm name="ICSigma100Out1" friendlyname="170x\140x output " cell="Output1 " location="{X=1958, Y=107.0044} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C183_A0_P1_in" dir="in" link="Link0" />
|
||||
</Algorithm>
|
||||
<Algorithm name="ICSigma100Out2" friendlyname="170x\140x output " cell="Output2 " location="{X=1955, Y=285.5105} " Growth="0 " GrowthB="0">
|
||||
<Link pin="I_C48_A0_P1_in" dir="in" link="Link1" />
|
||||
</Algorithm>
|
||||
</Schematic>
|
||||
</IC>
|
||||
|
||||
Reference in New Issue
Block a user