All Projects → tornqvist → bpm-detective

tornqvist / bpm-detective

Licence: other
Detects the BPM of a song or audio sample

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to bpm-detective

Atrial-Fibrillation-Detection-Blood-Pressure-Monitor-Oscillometric-Method-
Atrial Fibrillation Detection Blood Pressure Monitor (Oscillometric Method)
Stars: ✭ 28 (-71.72%)
Mutual labels:  bpm
corebos
core Business Operating System. An OPEN SOURCE business application that helps small and medium business handle all the day to day tasks.
Stars: ✭ 128 (+29.29%)
Mutual labels:  bpm
jbpm-spring-boot
Sample of a jbpm service with spring boot. It runs on OpenShift and it has prometheus metrics and a grafana dashboard
Stars: ✭ 16 (-83.84%)
Mutual labels:  bpm
activiti-examples
Alfresco Process Services powered by Activiti Examples.
Stars: ✭ 58 (-41.41%)
Mutual labels:  bpm
music-tempo
Finding out tempo of the music
Stars: ✭ 99 (+0%)
Mutual labels:  bpm
workflower-bundle
A Symfony bundle for Workflower
Stars: ✭ 23 (-76.77%)
Mutual labels:  bpm
micronaut-camunda-external-client
This open source project allows you to easily integrate Camunda's External Task Clients into Micronaut projects: simply add a dependency in your Micronaut project
Stars: ✭ 19 (-80.81%)
Mutual labels:  bpm
DWKit
DWKit is a Business Process Management System based on .NET Core and React
Stars: ✭ 121 (+22.22%)
Mutual labels:  bpm
micronaut-camunda-bpm
Integration between Micronaut and Camunda (Workflow Engine). We configure Camunda with sensible defaults, so that you can get started with minimum configuration: simply add a dependency in your Micronaut project to embed the workflow engine!
Stars: ✭ 73 (-26.26%)
Mutual labels:  bpm
bonita-engine
Deploy, execute, manage process-based applications made with Bonita studio or through Engine APIs
Stars: ✭ 123 (+24.24%)
Mutual labels:  bpm
plg
A Business Processes and Logs Generator
Stars: ✭ 30 (-69.7%)
Mutual labels:  bpm
awesome-integration
A curated list of awesome system integration software and resources.
Stars: ✭ 117 (+18.18%)
Mutual labels:  bpm
SonogramView
Audio visualisation of song
Stars: ✭ 65 (-34.34%)
Mutual labels:  bpm
awesome-camunda
a curated list of awesome Camunda BPM projects, libraries, tools, documentations, forum posts, etc.
Stars: ✭ 93 (-6.06%)
Mutual labels:  bpm
unify-flowret
A lightweight Java based orchestration engine
Stars: ✭ 57 (-42.42%)
Mutual labels:  bpm
activiti-examples
This repository contains Activiti 7.x Examples
Stars: ✭ 367 (+270.71%)
Mutual labels:  bpm
theeye-of-sauron
TheEye Dockers and QuickStart
Stars: ✭ 27 (-72.73%)
Mutual labels:  bpm
tumbleweed
Lightweight workflow engine microservice implement BPMN 2.0
Stars: ✭ 23 (-76.77%)
Mutual labels:  bpm
laravel workflower
Implementation of phpmentors-jp/workflower for laravel application
Stars: ✭ 26 (-73.74%)
Mutual labels:  bpm
camunda-prometheus-process-engine-plugin
Monitor your KPIs!!! Camunda BPM Process Engine Plugin providing Prometheus Monitoring, Metric classes for various BPMN use, Grafana Annotations, and HTTPServer data export: Used to generate Prometheus metrics anywhere in the Engine, including BPMN, CMN, and DMN engines and instances.
Stars: ✭ 48 (-51.52%)
Mutual labels:  bpm

bpm-detective

Detects the BPM of a song or audio sample

This module uses the Web Audio API to try and detect the BPM of a given sound. You can find more on the implementation and how it works by reading the blog post Beat Detection Using JavaScript and the Web Audio API which happens to be where I got most of the code.

Install

$ npm install --save bpm-detective

Usage

The module exports one function. The function takes an AudioBuffer as its only argument. It returns the detected BPM. If the sample was too short or if, for any other reason, the detection failed, the method throws an error.

import detect from 'bpm-detective'

const AudioContext = window.AudioContext || window.webkitAudioContext
const context = new AudioContext()

// Fetch some audio file
fetch('some/audio/file.wav').then(async function (response) {
  // Get response as ArrayBuffer
  const buffer = await response.arrayBuffer()

  // Decode audio into an AudioBuffer
  const data = await new Promise(function (resolve, reject) {
    context.decodeAudioData(buffer, resolve, reject)
  });

  // Run detection
  const bpm = detect(data)
  alert(`Detected BPM: ${bpm}`)
}).catch(console.error)

Disclaimer

The detection presumes you are working with dance(-ish) kind of music and as so looks only in the 90-180 BPM spectrum.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].