Files
DigiRadio/Software/Firmware/ADAU1701-Firmware/DigiRadio_NetList.xml
micheleandClaude Sonnet 5 3e5cfe814d 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>
2026-08-25 21:53:00 +02:00

142 lines
10 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- *
* This software is distributed in the hope that it will be useful,
* but is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* This software may only be used to program products purchased from
* Analog Devices for incorporation by you into audio products that
* are intended for resale to audio product end users. This software
* may not be distributed whole or in any part to third parties.
*
* Copyright © 2026 Analog Devices, Inc. All rights reserved.
*/
-->
<!--NetList XML file-->
<NetList>
<IC name=" IC 1 " type="DSPSigma100">
<Schematic>
<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=136, Y=723.2243} " Growth="0 " GrowthB="0 " FS="48000">
<Link pin="O_C0_A0_P1_out" dir="out" link="Link16" />
</Algorithm>
<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="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="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="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="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=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="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="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="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="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="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="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="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="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>
</NetList>