Skip to content

cpo/GBD

 
 

Repository files navigation

Generic Beat Detector (GBD)

The Generic Beat Detector (GBD) strives to deliver an industrial strength library and IoT framework for realtime beat detection (and soon other DSP analysis operations) for live music streams.

Description

GBD primarily consists of a library for music DSP analysis, and support plugins for audio signal routing between hosts.

GBD IoT Framework

This GBD release (v0.21) offers low-latency and realtime beat detection for live/playing music streams:

  • Bass beat (e.g. kick drum) detection (below 200Hz)
  • Detection of snare-like hits (between 3KHz and 10KHz)
  • Detection of cymbals-like sounds (above 15KHz)

Targeted Users

The GBD framework is primarily designed for the IoT maker industry and community. The target is to supply robust, industrial-strength realtime music beat detection (and soon other music DSP analysis) engines for makers working with commodity hardware and developing setups or products similar to, for example, the Philips Hue Disco framework.

Operation

The Raspberry Pi computer is used as the platform of choice for the GBD core given the board's popularity with the IoT maker community. The GBD core (PCM routing server and DSP library) is GNU/Linux based. The GBD client and/or audio applications may execute on a remote host which need not be a GNU/Linux system. This is discussed at greater depth in GBD Architecture.

Generalized GBD Arch

With realtime beat detection, as an audio stream is routed through the GBD framework, the GBD music DSP analysis library delivers beat counts to Linux POSIX SHM. The IoT maker can then use this information to synchronize the control of light bulbs/leds to the music's beats. Check this OpenGL LED emulation on Youtube. This beat detection mode is referred to as GBD Standard.

Bear in mind that while GBD's realtime beat detection is sturdy, it still requires some "compliance" on the part of the user if it is to function in the most generic manner possible, i.e. across the variety of music genres. For the best results, the quality of the music should be that of professional studio CD recordings: preferably WAV uncompressed PCM or, at least, an encoding by an industry-standard audio format converter. For example, pirated .mp3 downloads from the Internet (i.e. poorly encoded or transcoded formats) or amateur recordings are likely to produce unsatisfactory results. These issues are discussed more fully here.

Licenses

GBD

Released under the MIT license, GBD is partially open sourced. It is available as either freeware or in commercial package. See GBD Releases and Directions.

Attribution/Infrastructure

  • GBD Server

    Freeware versions of the GBD server are statically linked against the following libraries to enable secure communication with an external authentication service on the Internet.

    Commercial releases of the GBD server are neither statically nor dynamically linked against libcurl or OpenSSL. Their authentication keys are stored locally on disk and no connection is made to an external service on the Internet.

  • GBD Library

    The binaries for both the freeware and commercial versions of the GBD DSP library incorporate the KISS (Keep It Simple Stupid) FFT source code which, by default, is released under a revised BSD license.

    Nevertheless, if you intend to incorporate GBD in your commercial application and don't want to make mention of KISS FFT, a commercial license is available from the author of the KISS FFT library which removes the requirement for attribution. Check this out.

Documentation and Tutorials

Check the GBD wiki for resources on the GBD IoT framework, GBD HowTos, GBD maker guides, etc.

About

IoT Framework for Generic and Realtime Music Beat Detection

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 100.0%