Add stereo and bass enhance APIs via PEQ overlay.

Expose POST /api/audio/stereo-enhance and bass-enhance with 0–100 levels,
persist enhancements in AudioProfile, and document the virtual EQ mapping in
the manual and SigmaStudio chapter.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-06 17:00:12 +02:00
co-authored by Cursor
parent 6c350f5c48
commit fa532e068f
22 changed files with 826 additions and 19 deletions
+20
View File
@@ -213,6 +213,26 @@ SigmaStudio export (Section~\ref{sec:ss-export}).
\label{tab:ss-runtime}
\end{table}
\section{Virtual enhancements (stereo depth and bass boost)}
\label{sec:ss-enhancements}
The SigmaStudio export does not include dedicated stereo widener or bass
boost blocks. Firmware~0.5.0 maps enhancement levels (0--100) onto the
existing Param EQ1 bands at runtime:
\begin{itemize}
\item \textbf{Bass enhance} --- peaking boost at 100\,Hz (+9\,dB max)
and 400\,Hz (+3\,dB max).
\item \textbf{Stereo enhance} --- slight 1\,kHz cut, plus 3\,kHz and
8\,kHz lift for a wider, more present image. This is a
psychoacoustic curve, not mid/side processing.
\end{itemize}
Enhancement levels are stored in \texttt{AudioProfile::enhancements} and
applied by \texttt{core::applyEnhancementsToEq()} before safeload. Base EQ
band settings in NVS are preserved; overlays replace affected bands only
while the corresponding level is greater than zero.
\begin{drcaution}[Use safeload for live changes]
All runtime updates to the volume, source levels, and EQ bands must go
through the ADAU1701 safeload mechanism. Writing parameter cells directly