{
 "metadata": {
  "name": "",
  "signature": "sha256:43a13ceb38a9caf31a84fb8d9855ad2161713795774983d6f6d7e74fbd66c727"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Feature Extraction"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Load, plot, and play `simpleLoop.wav`:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from essentia.standard import MonoLoader\n",
      "x = MonoLoader(filename='simpleLoop.wav')()\n",
      "print x.shape"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "(132300,)\n"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "t = arange(len(x))/44100.0\n",
      "plot(t, x)\n",
      "xlabel('Time (seconds)')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 7,
       "text": [
        "<matplotlib.text.Text at 0x4181290>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\ngg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x411f910>"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from IPython.display import Audio\n",
      "Audio(x, rate=44100)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "html": [
        "\n",
        "                <audio controls=\"controls\" >\n",
        "                    <source src=\"data:audio/wav;base64,[encoded data, 352860 characters]\" type=\"audio/wav\" />\n",
        "                    Your browser does not support the audio element.\n",
        "                </audio>\n",
        "              "
       ],
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 8,
       "text": [
        "<IPython.lib.display.Audio at 0x411d810>"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Windowing"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "MFCCs"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from essentia.standard import MFCC, Spectrum, Windowing, FrameGenerator\n",
      "hamming_window = Windowing(type='hamming')\n",
      "spectrum = Spectrum()  # we just want the magnitude spectrum\n",
      "mfcc = MFCC()\n",
      "\n",
      "mfccs = array([mfcc(spectrum(hamming_window(frame)))[1]\n",
      "               for frame in FrameGenerator(x, frameSize=1024, hopSize=512)])\n",
      "\n",
      "imshow(mfccs[:,1:].T, origin='lower', aspect='auto', interpolation='nearest') # Ignore the 0th MFCC\n",
      "yticks(range(12), range(1,13)) # Ignore the 0th MFCC\n",
      "ylabel('MFCC Coefficient Index')\n",
      "xlabel('Frame Index')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 16,
       "text": [
        "<matplotlib.text.Text at 0x63b1b90>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAEGCAYAAACAd+UpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8VPWd//HX5EICSUiUQAKEGpaAARKSQCquPzHxJ4F6\nF4VaVEQui9Xtqq1r1XYvWa+46lawdb20oBWqbVlRVKTIrijCDxUBq6IiNLMSIYFAAwkhhITz++Oc\n78yZwDAkTCZh8n4+HnlkzpnvOd/PufhlnJxz3h7LsixERCQqxXR2ASIi0nE0yIuIRDEN8iIiUUyD\nvIhIFNMgLyISxeI6uwDD4/F0dgkiIqelE10k2WUGeQAK/xWKy+3XyUAl0NiqTSOQ47z2AmlOW4Ba\n5/1EINeZtxlodn4A0p32jU57gGzsPZGIv+/1zrTpq9G1bvd0mjNd7/SR2KpNsqufX+8F+tivS101\nJwOZwJZy+E65v8Ztrvq+BIpdfTU6v802NTptrmq1Lyqd6USn1nTXPLMvs53pDc4800+N0x78+6/Z\n1b/pu8ppa9qkObWY42LUA1nO623Osu79t6Uc/qbcns51bb+7r2TXMtuc6ThX23QCzxmz3V8Cec68\nWmfeZ850jrOOGtf7pjazj18+AsT7/4sZ7yyf59puc14VOtMbnPc3O9OFzrqbXTVmYx8Pc0x6lMOI\ncruN19WmGf9x+tK1XWZ/mv9WTBtzLsa5pk2f5nxMwz52ZrqKY/97izRvOWSXd3IRnayt+2D1iT8g\n6+saEZEopkFeRCSKda1BPrO0syvoXH1LO7uCztXdtx9gcGlnV9C50ko7u4LOF+Z9oEG+K+nug1x3\n337QIK9BvusP8jNnziQjI4P8/HzfvLvuuovhw4dTUFDA1Vdfzf79+8PdrYiIHEfYB/kZM2awYsWK\ngHkTJkzg888/55NPPmHYsGE8/PDD4e5WRESOI+yD/Lhx4zjjjDMC5pWVlRETY3c1duxYKisrj7eo\niIiEWcSvk1+wYAFTp049/puby/3/7PxNKf6LyUVEBIDa1fbPSYroIP/ggw/So0cPrrvuuuM3KCz3\nV2RuhhIREb+00sA/znr/7YTNIzbIP//88yxfvpz//u//jlSXIiLdXkQG+RUrVvDoo4/y7rvvkpiY\nGHoBEREJi7D/4XXq1Kmcd955fPXVVwwaNIgFCxbwD//wD9TX11NWVkZRURG33npruLsVEZHjCPsn\n+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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x6615050>"
       ]
      }
     ],
     "prompt_number": 16
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "Centroid"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from essentia.standard import Centroid, Spectrum, Windowing, FrameGenerator\n",
      "hamming_window = Windowing(type='hamming')\n",
      "spectrum = Spectrum()  # we just want the magnitude spectrum\n",
      "centroid = Centroid(range=22050)\n",
      "\n",
      "energy = array([centroid(spectrum(hamming_window(frame)))\n",
      "                for frame in FrameGenerator(x, frameSize=2048, hopSize=1024)])\n",
      "\n",
      "plot(energy)\n",
      "ylabel('MFCC Coefficient Index')\n",
      "xlabel('Frame Index')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "ename": "NameError",
       "evalue": "name 'x' is not defined",
       "output_type": "pyerr",
       "traceback": [
        "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
        "\u001b[1;32m<ipython-input-1-1b09dbaf5c19>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m      5\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      6\u001b[0m energy = array([centroid(spectrum(hamming_window(frame)))\n\u001b[1;32m----> 7\u001b[1;33m                 for frame in FrameGenerator(x, frameSize=2048, hopSize=1024)])\n\u001b[0m\u001b[0;32m      8\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      9\u001b[0m \u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0menergy\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;31mNameError\u001b[0m: name 'x' is not defined"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "k"
     ],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}