{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy, scipy, matplotlib.pyplot as plt, IPython.display, essentia\n", "import essentia.standard as ess\n", "plt.rcParams['figure.figsize'] = (14,5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[← Back to Index](index.html)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Beat Tracking in Essentia" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## `essentia.standard.RhythmExtractor2013`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Load a signal:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(789120,)\n" ] } ], "source": [ "x = ess.MonoLoader(filename='1_bar_funk_groove.mp3')()\n", "fs = 44100\n", "print x.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Essentia algorithm that we'll use is called [RhythmExtractor2013](http://essentia.upf.edu/documentation/reference/std_RhythmExtractor2013.html)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "avg_bpm, beat_start, confidence, tempo, beat_duration = ess.RhythmExtractor2013(method='multifeature')(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tempo in average beats per minute (BPM):" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "112.17662811279297" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "avg_bpm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot the signal along with the locations of each estimated beat:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nb7W1CwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t = numpy.arange(len(x))/float(fs)\n", "plt.plot(t, x, alpha=0.5)\n", "plt.xlabel('Time (seconds)')\n", "for t0 in beat_start:\n", " plt.axvline(t0, color='r')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Add a beep to each beat:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [], "source": [ "onsets_marker = ess.AudioOnsetsMarker(onsets=beat_start, type='beep')\n", "x_beeps = onsets_marker(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Listen to the beats:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IPython.display.Audio(x_beeps, rate=fs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot the tempo vs. time:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(tempo)\n", "plt.axhline(avg_bpm, color='r', linestyle='--')\n", "plt.ylim(0, 160)\n", "plt.ylabel('Tempo (beats per minute)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[← Back to Index](index.html)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 0 }