pulse.js - :musical_score: Beats per minute (BPM) automatic detection with Web Audio API

  •        271

This library aims to get the BPM (beat per minute) automatically with Web Audio API. This is a screenshot of a game based on rhythms like "Dance Dance Revolution". It show one of the several possibilities of Pulse.

https://github.com/srchea/pulse.js

Tags
Implementation
License
Platform

   




Related Projects

clubber - Application of music theory in audio reactive visualizations

  •    Javascript

This small js library listens to audio sources and extracts the underlying rhythmic information. The linear frequency energies are converted into midi notes which music theory suggests to be a better segregation for music audio. A set of meaningful measurements are produced in a form suitable for direct use in webgl shaders, or any other context. This simple flow provides a powerful framework for the rapid development of awesome audio reactive visualisations.

party-mode - An experimental music visualizer using d3.js and the web audio api.

  •    Javascript

Using the web audio api, I can get an array of numbers which corresponds to the waveform of the sound an html5 audio element is producing. There's a good tutorial on how to do this. Then, using requestAnimationFrame (with a little frame limiting for performance reasons) I'm updating that array as the music changes. I then normalize the data a bit (or transform it slightly depending on the visualization) and redraw the screen based on the updated array. I'm using d3.js to draw and redraw SVG based on this normalized data. Each visualization uses the data a bit differently -- it was mostly trial and error to get some stuff I liked looking at. Since I'm using D3 -- which is just drawing SVG -- I was able to style everything in CSS (no images are used at all, including icons). There are a handful of differently colored themes for each visualization, and I do some rudimentary CSS namespacing by updating a class applied to the html element. eg. <html class='theme_1'>. This lets me override or substitute CSS rules pretty trivially. I can add some additional variation to each theme by messing with pseudo selectors. For example, I can use :nth-of-type to hide every nth SVG rectangle or making every odd child have a different stroke-dasharray, etc.

beats - A command-line drum machine, written in Ruby

  •    Ruby

Note that if you are installing using the default version of Ruby that comes with MacOS X, you might get a file permission error. If that happens, use sudo gem install beats instead. If you are using RVM, plain gem install beats should work fine. Once installed, you can then run Beats from the command-line using the beats command.

x-gif - A custom element for flexible GIF playback

  •    HTML

<x-gif> is a web component for flexible GIF playback. Speed them up, slow them down, play them in reverse, synch multiple beats to a rhythm, synch them to audio, whatever you like. speed="1.0" (default mode) Plays back the GIF at its natural framerate multiplied by the value of the attribute. Can be updated and will have immediate effect.

LMMS - Cross-platform music production software

  •    C++

LMMS is a free cross-platform software which allows you to produce music with your computer. This covers creating melodies and beats, synthesizing and mixing sounds and arranging samples. You can have fun with your MIDI keyboard and much more – all in a user-friendly and modern interface. Furthermore LMMS comes with many ready-to-use instrument and effect plugins, presets and samples.


Tone.js - A Web Audio framework for making interactive music in the browser

  •    Javascript

Tone.js is a Web Audio framework for creating interactive music in the browser. The architecture of Tone.js aims to be familiar to both musicians and audio programmers creating web-based audio applications. On the high-level, Tone offers common DAW (digital audio workstation) features like a global transport for synchronizing and scheduling events as well as prebuilt synths and effects. Additionally, Tone provides high-performance building blocks to create your own synthesizers, effects, and complex control signals.

node-speaker - Output PCM audio data to the speakers

  •    Javascript

A Writable stream instance that accepts PCM audio data and outputs it to the speakers. The output is backed by mpg123's audio output modules, which in turn use any number of audio backends commonly found on Operating Systems these days.Here's an example of piping stdin to the speaker, which should be 2 channel, 16-bit audio at 44,100 samples per second (a.k.a CD quality audio).

aubio - a library for audio and music analysis

  •    C

aubio is a library to label music and sounds. It listens to audio signals and attempts to detect events. For instance, when a drum is hit, at which frequency is a note, or at what tempo is a rhythmic melody. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio.

PlayJoom - Web based Audio Streaming Server

  •    PHP

PlayJoom is a web based audio streaming server. It is written in php and save the data about the audio files like mp3 music in a MySQL database. You can stream your music files, manage covers, and additional informations about the music band, the tracks or the albums. You manage your own playlists with your favorite songs and listen it everywhere in your local network on each device. You can play the audio files direct in the most web browsers on a PC and mobile devices.

p5-music-viz - Workshop on music visualization with p5

  •    Javascript

This session is for anyone who would like to explore music, visuals and creative coding for the web. We'll demonstrate types of data we can get from digital signal processing using interactive sketches in p5.js and the p5.sound library that builds upon the Web Audio API. We'll explore various methods to map this data onto meaningful visuals that enhance our experience of music.

BPM Calculator

  •    

BPM Calculator is a small program that can be used to calculate the BPM (Beats Per Minute) of a song, by simply click a button at each beat, it can be used along a metronome to precisely let it play along a song.

Navidrome Music Server - Modern Music Server and Streamer compatible with Subsonic/Airsonic

  •    Go

Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device. It's like your personal Spotify. It streams virtually any audio format available and handles very large music collections. It is compatible with all Subsonic/Madsonic/Airsonic clients.

chrome-music-lab - A collection of experiments for exploring how music works, all built with the Web Audio API

  •    Javascript

Chrome Music Lab is a website that makes learning music more accessible through fun, hands-on experiments. We’re sharing open-source code here so that others can build new experiments based on what we’ve started. The experiments use a variety of tools – Web Audio API, WebRTC, WebMIDI, Tone.js, and more. We hope they’re useful as inspiration or reference for anyone who wants to create their own music projects on the web. Consult the README in each experiment's folder for more information on building and running that experiment. Thanks to our collaborators @tambien, @ericrosenbaum, @theceremony, @marklundin, @alexanderchen, @borismus, @bretmorris, @gdenisov, @jasonfarrell, @jennicheung. If you'd like to share something with us, post it with #chromemusiclab or drop us a line at chromemusiclab-support@google.com.

koel - A personal music streaming server that works.

  •    PHP

Koel (also stylized as koel, with a lowercase k) is a simple web-based personal audio streaming service written in Vue on the client side and Laravel on the server side. Targeting web developers, Koel embraces some of the more modern web technologies – flexbox, audio, and drag-and-drop API to name a few – to do its job.

howler.js - Javascript audio library for the modern web

  •    Javascript

howler.js is an audio library for the modern web. It defaults to Web Audio API and falls back to HTML5 Audio. This makes working with audio in JavaScript easy and reliable across all platforms.

waud - Web Audio Library

  •    Haxe

Web Audio Library with HTML5 audio fallback. Waud is a simple and powerful web audio library that allows you to go beyond HTML5's <audio> tag and easily take advantage of Web Audio API. It abstracts Web Audio API making it consistent and reliable across multiple platforms and browsers. It also falls back to HTML5 Audio on non-modern browsers where Web Audio API is not supported.

web-audio-api - Node.js implementation of Web audio API

  •    Javascript

This library implements the Web Audio API specification (also know as WAA) on Node.js. By default, web-audio-api doesn't play back the sound it generates. In fact, an AudioContext has no default output, and you need to give it a writable node stream to which it can write raw PCM audio. After creating an AudioContext, set its output stream like this : audioContext.outStream = writableStream.

ampache - A web based audio/video streaming application and file manager allowing you to access your music & videos from anywhere, using almost any internet enabled device

  •    PHP

Ampache is a web based audio/video streaming application and file manager allowing you to access your music & videos from anywhere, using almost any internet enabled device. Ampache's usefulness is heavily dependent on being able to extract correct metadata from embedded tags in your files and/or the file name. Ampache is not a media organiser; it is meant to be a tool which presents an already organised collection in a useful way. It assumes that you know best how to manage your files and are capable of choosing a suitable method for doing so.

Alcatech BPM-Studio Archive Manager

  •    DotNet

The Alcatech BPM-Studio Archive Manager is a tool for automatic building the archive of BPM-Studio. It allows you to quickly load all your music into your archive and order it without having the music duplicated in multiple folders on your computer.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.