{
 "metadata": {
  "name": "",
  "signature": "sha256:eb3f3dc0cf3cc402f762c79ff4e0f9595bf1e88b1a72520267bb7b97b1b246fa"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Beat Tracking"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Here's how to do beat tracking using Essentia."
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Basic imports and settings:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import essentia.standard as ess\n",
      "from IPython.display import Audio\n",
      "rcParams['figure.figsize'] = (13, 5)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 1
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Load a signal:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "x = ess.MonoLoader(filename='./1 Bar funk groove.mp3')()\n",
      "fs = 44100\n",
      "print x.shape"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "(789120,)\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "`essentia.standard.RhythmExtractor2013`"
     ]
    },
    {
     "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",
     "collapsed": false,
     "input": [
      "avg_bpm, beat_start, confidence, tempo, beat_duration = ess.RhythmExtractor2013(method='multifeature')(x)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 3
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Tempo in average beats per minute (BPM):"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "avg_bpm"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 4,
       "text": [
        "112.86062622070312"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Plot the signal along with the locations of each estimated beat:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "t = arange(len(x))/float(fs)\n",
      "plot(t, x)\n",
      "xlabel('Time (seconds)')\n",
      "for t0 in beat_start:\n",
      "    axvline(t0, color='r')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nny5ZsmQREdGmTZs6Jicnj4+Li8to27bt9j///POBs2fP1tq6desTI0aMmFeiRIn7RESVKlW6dvz4\n8QZ16tTJqlev3ikioiFDhizesWPH40L7vXr1WkNEFB8fn56dnR1BRLRz587WgwYN+oqIqGvXrqmV\nKlW6JsSyefPmDuPHj0/+8ccfH3vooYduCu3UrFnzvLA+AAAoE8Q6AAAAUKZUqVL5REQlSpS4Hxwc\nXCA8X6JEifuFhYVBHMc5GjdufHT37t2P+GtL6JZDRLR+/fpuO3bseHzdunXdp0yZ8uaRI0eaEhGt\nWbOmV2Rk5Elf6xLxiYr778XPPfDAA38SEZUsWbJI6M7kqR0iosjIyJMZGRlx69ev7/bWW2+9/8QT\nT2x9++23JwvLC0kIAAAogysDAAAW5OnA2V2DBg2OX758ueqePXtaEREVFBQEZ2ZmNnJfrnbt2meE\nsQQcxznOnj1bKzExMS05OXn8jRs3Kty+fbtcp06dvhcP1s3IyIgjIurQocPmefPmjSgqKipJRHTt\n2rVK9evXP5GdnR1x+vTpukREX3755d/btGnzg69YH3/88R1ff/31QCKiDRs2dLl27VolIqILFy7U\nKF269L2nn3566dixY2ekp6fHC+tcuHChRu3atc/431sAAOANkgEAAJMTzqo7HA7O033xMuLHwcHB\nBatWreozbty4abGxsQfj4uIyfvrpp4fd23/sscd+3L9/fwIRUWFhYdDf//73L6Ojow/Hx8env/zy\ny7MqVKhw4+23355cUFAQHB0dfbhJkya/vPvuu5OIiJ555pkvatWqdTY6OvpwbGzswWXLlg0oXbr0\nvYULFw7929/+9k10dPThoKCgwueff/5T9zjFf8O77747aceOHY83adLkl2+//bancJB/5MiRpi1b\nttwbFxeXMXny5LeFqwIFBQXBubm5YVFRUb9qu7cBAOwFpUUBAGxOKC26d+/elkLXI7PbtGlTx/Xr\n13ebNWvWy6xjAQCwMlwZAACwOYfDwT377LOfL1269GnWsUj1xRdfPPPKK6/MZB0HAIDV4coAAAAA\nAIBN4coAAAAAAIBNIRkAAAAAALApJAMAAAAAADaFZAAAAAAAwKaQDAAAAAAA2BSSAQAAAAAAm/p/\nzzuGvFAQMAwAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x3f88790>"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Add a beep to each beat:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "onsets_marker = ess.AudioOnsetsMarker(onsets=beat_start, type='beep')\n",
      "x_beeps = onsets_marker(x)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 6
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Listen to the beats:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "Audio(x_beeps, rate=fs)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "html": [
        "\n",
        "                <audio controls=\"controls\" >\n",
        "                    <source src=\"data:audio/wav;base64,[encoded data, 2104380 characters]\" type=\"audio/wav\" />\n",
        "                    Your browser does not support the audio element.\n",
        "                </audio>\n",
        "              "
       ],
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 7,
       "text": [
        "<IPython.lib.display.Audio at 0x481f590>"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Plot the tempo vs. time:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "plot(tempo)\n",
      "axhline(avg_bpm, color='r', linestyle='--')\n",
      "ylim(0, 160)\n",
      "ylabel('Tempo (beats per minute)')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 8,
       "text": [
        "<matplotlib.text.Text at 0x526d0d0>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n/wFpwzYCtp174gAAAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x3f9e190>"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Let's try another signal:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "x = ess.MonoLoader(filename='./1 bar jangle pop.mp3')()\n",
      "avg_bpm, beat_start, confidence, tempo, beat_duration = ess.RhythmExtractor2013(method='multifeature')(x)\n",
      "onsets_marker = ess.AudioOnsetsMarker(onsets=beat_start, type='beep')\n",
      "x_beeps = onsets_marker(x)\n",
      "Audio(x_beeps, rate=fs)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "html": [
        "\n",
        "                <audio controls=\"controls\" >\n",
        "                    <source src=\"data:audio/wav;base64,[encoded data, 1889340 characters]\" type=\"audio/wav\" />\n",
        "                    Your browser does not support the audio element.\n",
        "                </audio>\n",
        "              "
       ],
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 9,
       "text": [
        "<IPython.lib.display.Audio at 0x48230d0>"
       ]
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "One more:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "x = ess.MonoLoader(filename='./1 bar latin groove.mp3')()\n",
      "avg_bpm, beat_start, confidence, tempo, beat_duration = ess.RhythmExtractor2013(method='multifeature')(x)\n",
      "onsets_marker = ess.AudioOnsetsMarker(onsets=beat_start, type='beep')\n",
      "x_beeps = onsets_marker(x)\n",
      "Audio(x_beeps, rate=fs)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "html": [
        "\n",
        "                <audio controls=\"controls\" >\n",
        "                    <source src=\"data:audio/wav;base64,[encoded data, 2098236 characters]\" type=\"audio/wav\" />\n",
        "                    Your browser does not support the audio element.\n",
        "                </audio>\n",
        "              "
       ],
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 10,
       "text": [
        "<IPython.lib.display.Audio at 0x4823b50>"
       ]
      }
     ],
     "prompt_number": 10
    }
   ],
   "metadata": {}
  }
 ]
}