Wave Analyzer
pendingby Luciano Azzigotti
Visualize audio files with waveform and spectrogram playback, seeking, looping, and optional spectral analysis.
Wave Analyzer
Wave Analyzer is an Obsidian community plugin for previewing audio files as interactive waveforms and spectrograms inside notes.

Repository: zzigo/obsidian-waveanalyzer
Features
- Waveform and spectrogram views
- Play, stop, seek, and draggable playhead
- Loop-region selection in waveform view
- Variable spectrum resolution with 6 FFT sizes
- Optional audio-descriptors centroid and harmonicity overlays
- Timeline ruler with second and 10-second markers
Usage
Embed an audio file in a note with a wa code block:
```wa
[[my-audio-file.mp3]]
```
The plugin renders the analyzer directly in reading view.
Controls
Play / Stop: start or stop playbackW / S: switch between waveform and spectrumAnalysis: toggle centroid and harmonicity overlaysResolution: cycle through 6 spectrum resolutionsDrag: move the playhead anywhere on the timelineShift + dragin waveform mode: create a loop region
Audio-Descriptor's roadmap
[x] Spectral Centroid
Indicates brightness by computing the spectrum’s center of mass.
[x] Harmonicity
Measures degree of periodic structure versus noise in the signal.
[ ] Spectral Flux
Quantifies frame-to-frame spectral change, capturing timbral and onset activity.
[ ] Spectral Rolloff
Frequency below which a fixed percentage of spectral energy accumulates.
[ ] Zero-Crossing Rate
Counts sign changes per frame; correlates with noisiness and high-frequency content.
[ ] RMS Energy
Computes signal power per frame, reflecting perceived loudness dynamics.
[ ] Spectral Flatness
Ratio of geometric to arithmetic mean; indicates tonality versus noise-like spectra.
Development
This plugin currently uses plain JavaScript and esbuild.
Install dependencies:
npm install
Build:
npm run build
Development watch:
npm run dev
Road Map
License
MIT
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.