Frequency Domain Analysis
Spectrogram plots
Calculating volume from DFT coefficients using Parseval's Thereom
Processing the Signal in the Frequency Domain
Normalization of each time-step's DFT
Equalizes volume across audio
Thresholding DFT to identify prominent frequencies
Linear Systems
Moving Noise filter
Attenuated noise filter
Low-Pass Filters, High Pass Filters, Notch Filters
Harmonic rejection algorithm is adaptive notch filtering
Notches at integer multiples of detected note frequencies.
Bass-boosting is an ideal low-pass filter, but with nonzero gain in the stopped regions.
Detection
Prominent frequencies classified as notes based on proximity to piano notes
Detected notes are used with open-source PyChord API to detect chords