A general-purpose spectrum analyzer for live and quick FFT analysis on device.
It captures audio from any input device and shows the waveform, FFT spectrum, and a scrolling waterfall in real time. You can record, play back, pick resonance peaks, and export the data for further analysis.
- Live waveform, FFT spectrum, and waterfall (spectrogram) views.
- Record, pause, and play back captured audio.
- Adjustable input gain and FFT size from 512 to 32768.
- Prominence-based peak detection with sub-bin parabolic refinement and frequency-to-note labels.
- Re-analyze a selected time region with a larger FFT for finer peak spacing.
- Peak resynthesis ("play peaks") and a reference tone for comparison.
- Load WAV/audio files, save recordings as WAV, and save/load
.sarecsessions. - Export waveform (CSV/NPY), spectrogram (NPZ), levels over time (CSV), and peaks (CSV).
git clone https://github.com/brokenwineglass/sas.git
cd sas
python3 -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python -m spectrumanalyzerRequires Python 3.11+. On first launch macOS asks for microphone access.
Tagged releases (v*) build unsigned macOS and Windows bundles via GitHub
Actions:
- macOS:
Spectrum-Analyzer-Software-macOS.zip(Spectrum Analyzer Software.app) - Windows:
Spectrum-Analyzer-Software-Windows.zip(Spectrum Analyzer Software.exe)
Because these builds are not yet signed or notarized, macOS may require right-click → Open, and Windows may show a SmartScreen warning.
To build locally:
pip install -r requirements.txt -r requirements-build.txt
pyinstaller --clean --noconfirm packaging/spectrum_analyzer_software.spec.sarec files are compressed NumPy archives holding the raw mono audio, FFT and
RMS history, sample rate, FFT size, gain, and the selected analysis window. Peak
detection averages the selected FFT frames in linear amplitude, converts back to
dB, then finds prominence-filtered local maxima with parabolic refinement.
Python, PyQt6, pyqtgraph, NumPy, sounddevice, and soundfile.
GPL-3.0-only. See LICENSE.