All Projects β†’ adamstark β†’ Btrack

adamstark / Btrack

Licence: gpl-3.0
A Real-Time Beat Tracker

Projects that are alternatives of or similar to Btrack

Gwion
🎡 strongly-timed musical programming language
Stars: ✭ 235 (+15.2%)
Mutual labels:  audio, real-time
Soundpusher
Virtual audio device, real-time encoder and SPDIF forwarder for macOS
Stars: ✭ 91 (-55.39%)
Mutual labels:  audio, real-time
Skylinkjs
SkylinkJS Javascript WebRTC SDK
Stars: ✭ 269 (+31.86%)
Mutual labels:  audio, real-time
Webrtc Cli
WebRTC command-line peer.
Stars: ✭ 135 (-33.82%)
Mutual labels:  audio, real-time
Roc Toolkit
Real-time audio streaming over the network.
Stars: ✭ 673 (+229.9%)
Mutual labels:  audio, real-time
Opentok Ios Sdk Samples
Example applications that use the OpenTok iOS SDK
Stars: ✭ 186 (-8.82%)
Mutual labels:  audio, real-time
Symphonia
Pure Rust multimedia format demuxing, tag reading, and audio decoding library
Stars: ✭ 191 (-6.37%)
Mutual labels:  audio
Ableton Live Tools
A collection of useful additions to @Ableton Live, including better @Git integration.
Stars: ✭ 198 (-2.94%)
Mutual labels:  audio
Mwengine
Audio engine and DSP for Android, written in C++ providing low latency performance in a musical context, supporting both OpenSL and AAudio.
Stars: ✭ 190 (-6.86%)
Mutual labels:  audio
Libvlc Go
Go bindings for libVLC and high-level media player interface
Stars: ✭ 188 (-7.84%)
Mutual labels:  audio
Heart Rate Measurement Using Camera
real time application to measure heart rate
Stars: ✭ 202 (-0.98%)
Mutual labels:  real-time
Autobahn Python
WebSocket and WAMP in Python for Twisted and asyncio
Stars: ✭ 2,305 (+1029.9%)
Mutual labels:  real-time
Vudio.js
ιŸ³ι’‘ε―θ§†εŒ–ε±•η€Ίζ¨‘ε—
Stars: ✭ 194 (-4.9%)
Mutual labels:  audio
Javascriptmusic
Live coding music and synthesis in Javascript / AssemblyScript (WebAssembly)
Stars: ✭ 193 (-5.39%)
Mutual labels:  audio
Mocapnet
We present MocapNET2, a real-time method that estimates the 3D human pose directly in the popular Bio Vision Hierarchy (BVH) format, given estimations of the 2D body joints originating from monocular color images. Our contributions include: (a) A novel and compact 2D pose NSRM representation. (b) A human body orientation classifier and an ensemble of orientation-tuned neural networks that regress the 3D human pose by also allowing for the decomposition of the body to an upper and lower kinematic hierarchy. This permits the recovery of the human pose even in the case of significant occlusions. (c) An efficient Inverse Kinematics solver that refines the neural-network-based solution providing 3D human pose estimations that are consistent with the limb sizes of a target person (if known). All the above yield a 33% accuracy improvement on the Human 3.6 Million (H3.6M) dataset compared to the baseline method (MocapNET) while maintaining real-time performance (70 fps in CPU-only execution).
Stars: ✭ 194 (-4.9%)
Mutual labels:  real-time
Youtag
iOS music player app that downloads music from the internet, even YouTube
Stars: ✭ 193 (-5.39%)
Mutual labels:  audio
Otto
Sampler, Sequencer, Multi-engine synth and effects - in a box! [WIP]
Stars: ✭ 2,390 (+1071.57%)
Mutual labels:  audio
Rf24audio
Arduino library for streaming data/audio from analog inputs via NRF24L01 modules
Stars: ✭ 190 (-6.86%)
Mutual labels:  audio
Playx
Search and play any song from terminal
Stars: ✭ 194 (-4.9%)
Mutual labels:  audio
Openl3
OpenL3: Open-source deep audio and image embeddings
Stars: ✭ 200 (-1.96%)
Mutual labels:  audio

BTrack - A Real-Time Beat Tracker

** Version 1.0.4 **

by Adam Stark, Matthew Davies and Mark Plumbley.

About BTrack

BTrack is a causal beat tracking algorithm intended for real-time use. It is implemented in C++ with wrappers for Python and the Vamp plug-in framework.

Full details of the working of the algorithm can be found in:

  • Musicians and Machines: Bridging the Semantic Gap in Live Performance, Chapter 3, A. M. Stark, PhD Thesis, Queen Mary, University of London, 2011.

  • Real-Time Beat-Synchronous Analysis of Musical Audio, A. M. Stark, M. E. P. Davies and M. D. Plumbley. In Proceedings of the 12th International Conference on Digital Audio Effects (DAFx-09), Como, Italy, September 1-4, 2009.

BTrack is made available under the GNU General Public License, version 3. Please see the included LICENSE.txt for more details.

Versions

==== 1.0.4 ==== (18th June 2016)

  • Added option of using Kiss FFT
  • Implementation changes to improve efficiency

==== 1.0.3 ==== (10th January 2016)

  • Fixed implementation error in complex spectral difference (thanks to @zbanks for pointing it out)
  • Small change to python module build script

==== 1.0.2 ==== (25th November 2014)

  • Added updated Max external project and associated files
  • Fixed a couple of bugs

==== 1.0.1 ==== (21st November 2014)

  • Moved to git & updated README
  • No implementation changes

==== 1.0.0 ==== (8th July 2014)

  • Many updates to stability and improvements to implementation

==== 0.9.0 ==== (circa 2008/2009)

  • This is the original version of the BTrack algorithm

Usage - C++

STEP 1

Include the BTrack header file as follows:

#include "BTrack.h"

STEP 2

Instantiate the algorithm by one of the following:

// to use the default 512 hop size and 1024 frame size
BTrack b; 

or:

// to specify a hop size (e.g. 512) and have a frame size of 2 x the hop size
BTrack b(512); 

or:

// to specify both the hop size and frame size
BTrack b(512,1024);

STEP 3.1 - Audio Input

In the processing loop, fill a double precision array with one frame of audio samples (as determined in step 2):

double *frame; 

// !
// do something here to fill the frame with audio samples
// !

and then call:

b.processAudioFrame(frame);

and to check for beats, simply call:

if (b.beatDueInCurrentFrame())
{
	// do something on the beat
}

STEP 3.2 - Onset Detection Function Input

The algorithm can process onset detection function samples. Given a double precision onset detection function sample called 'newSample', at each step, call:

b.processOnsetDetectionFunctionSample(newSample);

and then check for beats with:

if (b.beatDueInCurrentFrame())
{
	// do something on the beat
}

Requirements

To compile BTrack, you will require the following libraries:

  • libsamplerate

And either:

  • FFTW (add the flag -DUSE_FFTW)

or:

  • Kiss FFT (included with project, use the flag -DUSE_KISS_FFT)

License

Copyright (c) 2014 Queen Mary University of London

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

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].