lt all looks pretty straightforward.
Besides the attributes I’ve shown on the control here,
I also have included dependency properties to set brushes for the bars and their peaks,
as well as a dependency property for the linearity of displayed channel data.
Here’s the XAML for the Spectrum Analyzer control itself.