Commit
feat: add BPM, key, and loop detection using Essentia.js
Commit details
Commit notes
- Add LoopBpmEstimator and LoopBpmConfidence for loop detection - Enhanced EssentiaResult to include loop analysis: - isLoop: whether audio is a seamless loop - loopBpm: BPM detected specifically for loops - loopConfidence: confidence score for loop detection - bars: number of bars if beat-aligned - beatAligned: whether duration aligns with beat grid - Update hybrid-analyzer to use Essentia for all three: - BPM: Uses RhythmExtractor2013 or LoopBpmEstimator - Key: Uses KeyExtractor with EDMA/Krumhansl/Temperley profiles - Loop: Uses LoopBpmConfidence for loop quality assessment - Add loopBars, suggestedTrimMs, beatPositions to AudioFeatures interface - Update type declarations for essentia.js with new algorithms
Co-authored-by: armin.naimi <[email redacted]>
- Files changed
- 4
- Lines added
- +296
- Lines removed
- −72