JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1394
  • Score
    100M100P100Q121342F
  • License Apache-2.0

This dependency free library can analyze the BPM (Tempo) of an audio/video node or any stream in realtime on your browser

Package Exports

  • realtime-bpm-analyzer
  • realtime-bpm-analyzer/package.json
  • realtime-bpm-analyzer/processor

Readme

Realtime BPM Analyzer

XO code style npm npm CI Actions Status codecov

Realtime BPM Analyzer

A powerful TypeScript library for detecting beats-per-minute (BPM) in real-time.

📚 Documentation🎯 Examples🚀 Quick Start


Features

  • Zero dependencies - Uses native Web Audio API
  • Real-time analysis - Analyze audio/video as it plays
  • Multiple sources - Works with files, streams, microphone, or any audio node
  • Typed events - Full TypeScript support with autocomplete
  • Client-side only - 100% privacy-focused, no data collection
  • Supports MP3, FLAC, WAV formats

Installation

npm install realtime-bpm-analyzer

Quick Example

import { createRealtimeBpmAnalyzer } from 'realtime-bpm-analyzer';

// Create analyzer
const analyzer = await createRealtimeBpmAnalyzer(audioContext);

// Connect your audio source
audioSource.connect(analyzer.node);

// Listen for BPM detection
analyzer.on('bpm', (data) => {
  console.log('BPM detected:', data.bpm[0].tempo);
});

Documentation

📖 Full Documentation - Complete guides, API reference, and tutorials

Key sections:

Use Cases

  • Audio Players - Display BPM while playing tracks
  • Live Streams - Continuous BPM detection from radio/streaming
  • File Analysis - Offline BPM detection from uploaded files
  • Microphone Input - Real-time analysis from live audio
  • DJ Applications - Beat matching and tempo detection

Running Examples Locally

# Install dependencies
npm install

# Run a specific example
npm run dev --workspace=examples/01-vanilla-basic

# Available examples:
# - 01-vanilla-basic, 02-vanilla-streaming, 03-vanilla-microphone
# - 04-react-basic, 05-react-streaming, 06-react-microphone  
# - 07-vue-basic, 08-vue-streaming, 09-vue-microphone

Privacy & Security

  • 100% client-side processing
  • No data collection or transmission
  • No audio recording - real-time analysis only
  • Open source - fully auditable code

See privacy.md and security.md for details.

Contributing

Contributions are welcome! See contributing.md for guidelines.

License

Apache-2.0 License - See licence.md for details.

For commercial licensing inquiries, contact: d.lepaux@gmail.com

Credits

Inspired by Tornqvist's bpm-detective and Joe Sullivan's algorithm.