OpenRoadCode
Public API reference for OpenRoadCode
Loading...
Searching...
No Matches
audio.music_analysis.music_analyzer.MusicAnalyzer Class Reference

Analyze normalized mono PCM using a Hann-windowed real FFT. More...

Inheritance diagram for audio.music_analysis.music_analyzer.MusicAnalyzer:
audio.music_analysis.music_analyzer_if.MusicAnalyzerIf

Public Member Functions

bool is_zeroized (self)
 Return whether an ambient-noise calibration is active.
 
None start_zeroize (self)
 Begin collecting ambient-noise calibration blocks.
 
None finish_zeroize (self)
 Commit the collected ambient-noise calibration.
 
None clear_zeroize (self)
 Discard the current ambient-noise calibration.
 
MusicAnalysisState analyze (self, Sequence[float] samples, int sample_rate_hz)
 Analyze one block of normalized mono PCM samples.
 

Protected Member Functions

np.ndarray _gate_spectral_leakage (self, np.ndarray magnitude)
 Suppress bins far below the strongest spectral component.
 

Detailed Description

Analyze normalized mono PCM using a Hann-windowed real FFT.

Member Function Documentation

◆ _gate_spectral_leakage()

np.ndarray audio.music_analysis.music_analyzer.MusicAnalyzer._gate_spectral_leakage (   self,
np.ndarray  magnitude 
)
protected

Suppress bins far below the strongest spectral component.

A Hann window greatly reduces FFT leakage, but it does not eliminate it. Without a floor, adaptive per-band normalization can promote tiny leakage in an otherwise empty band to full-scale activity on the first frame.

◆ analyze()

MusicAnalysisState audio.music_analysis.music_analyzer.MusicAnalyzer.analyze (   self,
Sequence[float]  samples,
int  sample_rate_hz 
)

Analyze one block of normalized mono PCM samples.

Parameters
samplesNormalized mono PCM samples.
sample_rate_hzSource sample rate in hertz.
Returns
Complete analysis state for the block.

Reimplemented from audio.music_analysis.music_analyzer_if.MusicAnalyzerIf.

◆ is_zeroized()

bool audio.music_analysis.music_analyzer.MusicAnalyzer.is_zeroized (   self)

Return whether an ambient-noise calibration is active.

Returns
True when zeroization has been committed.

Reimplemented from audio.music_analysis.music_analyzer_if.MusicAnalyzerIf.


The documentation for this class was generated from the following file: