# Audio Spectrum Visualizer with FFT

Use FFT thinking to turn microphone, file, game-audio, or sensor samples into frequency bars without pretending the display proves more than it does.

## Outcome
Build a first-pass spectrum visualizer plan: source signal, sample rate, FFT bins, bar display, peak clue, and uncertainty note.

## Safe first step
Write the audio or sensor source, sample rate, window length, units, display goal, and what the bars should not claim.

## Ladder steps
### 1. Name the source
The signal might be a microphone, WAV file, game audio bus, vibration sensor, or SDR audio output.

Check: Your note names the source, units, sample rate, and whether it is live or recorded.

### 2. Choose a display window
FFT bars depend on how much signal you analyze at once.

Check: Your note states window length, update rate, and whether fast changes may smear.

### 3. Map bins to bars
A visualizer groups frequency bins into readable bars.

Check: You can explain what each bar roughly represents and why low/high ranges may need different scaling.

### 4. Write the claim boundary
A good visualizer shows clues; it does not prove exact cause, quality, or source identity by itself.

Check: The page note includes peak, second peak, noise floor, and next repeat test.

## Examples
### Build an audio display path
```sh
microphone -> samples -> FFT bins
```
Expected signal: Bars rise where repeated audio energy is strongest

Caution: Room noise and microphone placement change the display.

### Make audio move a visual
```sh
game bus -> spectrum analyzer -> shader bars
```
Expected signal: Godot audio magnitudes can drive a simple equalizer-style display

Caution: A pretty display is not a measurement certificate.

### Know the trust boundary
```sh
sample rate 800 Hz -> 400 Hz Nyquist
```
Expected signal: Peaks above half the sample rate are outside the first-pass range

Caution: Aliasing can draw a convincing but false bar.

## Common traps
- Building a beautiful visualizer before writing sample rate and window length.
- Treating a live audio display as proof of exact frequency content.
- Comparing two displays with different smoothing, averaging, scaling, or microphone placement.
- Forgetting that bins, bars, and pixels are summaries of the original time signal.
- Letting one loud room tone or handling noise become the whole conclusion.

## Practice task
Use the widget to make two tones and one noise note. Copy the visualizer note, then sketch a Godot, Python, or microcontroller display path with source, sample rate, bars, peak clue, and next repeat test.

## Next steps
- Save the Obsidian note with [[FFT]], [[Spectrum Analyzer]], [[Audio]], [[Sample Rate]], [[Nyquist Limit]], [[Frequency Bin]], [[Noise Floor]], [[Godot]], [[Python]], and [[Microcontroller]] backlinks.
- Use the frequency peaks lesson when the display needs a slower interpretation pass.
- Use statistics when the time signal is too noisy before FFT.
- Use SDR flight tracking when radio receive paths become the source signal.
- Use Godot tilemap or sprite lessons when the visualizer becomes part of a game scene.

## Related
- [FFT frequency peaks first pass](/learn/data/frequency-peaks-first-pass/)
- [Basic statistics for sensor logs](/learn/data/basic-statistics-for-sensor-logs/)
- [Sprite-animated 2D game loop](/learn/games/sprite-animated-2d-game-loop/)
- [Tilemap level layout math](/learn/games/tilemap-level-layout-math/)
- [SDR flight tracking first pass](/learn/rf/sdr-flight-tracking-adsb-first-pass/)
- [Build a first Godot game loop](/projects/build-first-godot-game-loop/)
- [Turn a source video into notes](/video-notes/)
- [Review Anki-compatible decks](/decks/)

## Obsidian backlinks

Use these wiki links to connect this note inside a local maker vault:

- [[TopicLadder]]
- [[Maker Learning]]
- [[Audio Spectrum Visualizer with FFT]]
- [[Applied Data]]
- [[data]]
- [[signal-analysis]]
- [[Name the source]]
- [[Choose a display window]]
- [[Map bins to bars]]
- [[Write the claim boundary]]
- [[FFT frequency peaks first pass]]
- [[Basic statistics for sensor logs]]

## Source and next routes

Source: https://topicladder.com/learn/data/audio-spectrum-visualizer-fft/

- [FFT frequency peaks first pass](/learn/data/frequency-peaks-first-pass/)
- [Basic statistics for sensor logs](/learn/data/basic-statistics-for-sensor-logs/)
- [Sprite-animated 2D game loop](/learn/games/sprite-animated-2d-game-loop/)
- [Tilemap level layout math](/learn/games/tilemap-level-layout-math/)
- [SDR flight tracking first pass](/learn/rf/sdr-flight-tracking-adsb-first-pass/)
- [Build a first Godot game loop](/projects/build-first-godot-game-loop/)
- [Turn a source video into notes](/video-notes/)
- [Review Anki-compatible decks](/decks/)
