- Multi-format audio support (M4A, MP3, WAV, etc.) via FFmpeg
- Advanced frequency scales (Linear, Log, Mel, Bark, ERB)
- Multiple color schemes (Gray, Inverted Gray, Heat, Inferno)
- Intensity mapping options (Linear, Log, Power, Sqrt, Sigmoid)
- Window functions (Hanning, Hamming, Blackman, Rectangular)
- Configurable FFT parameters (FFT size, hop size)
- Long audio handling (automatic splitting and stitching)
- Metadata extraction (timestamps, location, device info)
npm install
# Basic usage
npm run start "audio-file.m4a"
# With options
npm run start "audio-file.m4a" -- --max-freq 8000 --color heat --scale mel
--max-freq <hz>
- Maximum frequency to display--min-freq <hz>
- Minimum frequency to display--color <preset>
- Color scheme (gray, invgray, heat, inferno)--scale <type>
- Frequency scale (linear, log, mel, bark, erb)--mapping <type>
- Intensity mapping (linear, log, power, sqrt, sigmoid)--window <type>
- Window function (hanning, hamming, blackman, rectangular)--fft-size <size>
- FFT size in samples (default: 2048)--hop-size <size>
- Hop size in samples (default: 512)--height <height>
- Spectrogram height in pixels (default: 768)--pixels-per-second <pps>
- Pixels per second for width (default: 96)--min-db <db>
- Minimum dB for color mapping (default: auto)--max-db <db>
- Maximum dB for color mapping (default: auto)-o, --output <file>
- Output PNG file path
The src/constants.ts
file contains all default parameters and configuration values:
- DB_CONSTANTS: Decibel ranges and thresholds for visualization
- FFT_CONSTANTS: FFT analysis parameters (size, hop size)
- WINDOW_CONSTANTS: Window function coefficients
- RENDERING_CONSTANTS: Canvas and rendering limits
- DEFAULTS: Default values for all command-line options
- VALID_OPTIONS: Available choices for enum-based options
Modify these constants to customize default behavior without changing the source code.
filename.png
- Single spectrogram (short audio)filename_overview.png
- Overview of entire audiofilename_part1.png
,filename_part2.png
- Detailed parts (long audio)filename_stitched.png
- Combined detailed partsfilename.meta.json
- Extracted audio metadata