{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "I Feel Fine, Digitally" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This \"Signal of the Day\" is a little musing inspired by a [forum post](https://class.coursera.org/dsp-004/forum/thread?thread_id=222) by Jamie Honan. In his post, Jamie wondered about the \"internal mechanics\" of a very famous audio snippet, namely the guitar sound at the beginning of the song \"I Feel Fine\", written and recorder by the Beatles in 1964. The historical significance of the record lies in John Lennon's claim that \"I Feel Fine\" is the first instance of guitar feedback deliberately committed to the recorded medium. As Jamie points out, \n", "\n", "> Lennon is quoted in the Wikipedia article about \"I feel fine\",\n", ">\n", "> _\"I defy anybody to find a record... unless it is some old blues record from 1922... that uses feedback that way. So I claim it for the \n", "> Beatles. Before Hendrix, before The Who, before anybody. The first feedback on record.\"_\n", "\n", "In this notebook, we are going to look at this famous signal in detail and we will try to set up a digital model of what went down in the recording studio that fateful 18 October 1964. In doing so we will look at a guitar simulator, at an amp model and at the mechanics of feedback. But, before anything else, let's listen to what this is all about:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline\n", "%pylab --no-import-all\n", "pylab.rcParams['figure.figsize'] = 14, 4 \n", "\n", "from IPython.display import Image\n", "from scipy.io import wavfile\n", "import Audio\n", "\n", "display(Image(filename='data/beatles.png', width=400))\n", "\n", "# fs will be the global \"clock\" of all discrete-time systems in this notebook\n", "fs, data = wavfile.read(\"data/iff.wav\")\n", "# bring the 16bit wav samples into the [-1, 1] range\n", "data = data / 32767.0\n", "Audio.Audio(data=data, rate=fs, embed=True)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n", "Using matplotlib backend: module://IPython.kernel.zmq.pylab.backend_inline\n", "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "metadata": { "png": { "width": 400 } }, "output_type": "display_data", "png": "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\n", "text": [ "" ] }, { "html": [ "\n", " \n", " " ], "metadata": {}, "output_type": "pyout", "prompt_number": 1, "text": [ "" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "According to recording studio accounts, the sound was obtained by first playing the A string on Lennon's Gibson semiacoustic guitar and then by placing the guitar close to the amplifier. Indeed, the first two seconds of the clip sound like a standard decaying guitar tone; after that the feedback kicks in. The feedback, sometimes described as an \"electric razor\" buzz, is caused by two phenomena: the sound generated by the amplifier \"hits\" the A string and increases its vibration, and the resulting increased signal drives the amplifier into saturation.\n", "\n", "Schematically, these are the systems involved in the generation of the opening of the song:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "display(Image(filename='data/bd.png', width=600))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": { "png": { "width": 600 } }, "output_type": "display_data", "png": "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\nAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to simulate this setup digitally, we need to come up with resonable models for:\n", "\n", "* the guitar $G$, including the possibility of driving the string vibration during oscillation\n", "* the amplifier $A$, including a saturating nonlinearity\n", "* the feedback channel $F$, which will depend on the distance from the guitar to the amplifier\n", "\n", "Let's examine each component in more detail." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "1 - simulating a guitar" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Although we have already studied the Karplus-Strong algorithm as an effective way to simulate a plucked sound, in this case we need a model that is closer to the actual physics of a guitar, since we'll need to drive the string oscillation in the feedback loop. \n", "\n", "In a guitar, the sound is generated by the oscillation of strings that are both under tension and fixed at both ends. Under these conditions, a displacement of the string from its rest position (i.e. the initial \"plucking\") will result in an oscillatory behavior in which the energy imparted by the plucking travels back and forth between the ends of the string in the form of standing waves. The natural modes of oscillation of a string are all multiples of the string's fundamental frequency, which is determined by its length, its mass and its tension (see, for instance, [here](http://www.phys.unsw.edu.au/jw/strings.html) for a detailed explanation). This image (courtesy of [Wikipedia](http://en.wikipedia.org/wiki/Vibrating_string)) shows a few oscillation modes on a string:\n", "\n", "

\n", "\n", "These vibrations are propagated to the body of an acoustic guitar and converted into sound pressure waves or, for an electric guitar, they are converted into an electrical waveform by the guitar's pickups.\n", "\n", "We can appreciate this behavior in the initial (non feedback) portion of the \"I Feel Fine\" sound snippet; let's first look at the waveform in the time domain:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plot(data)\n", "xlabel(\"sample\")\n", "ylabel(\"amplitude\")" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nsZJM4lijhkly0hw7duWJlSSNHWsqLn7/fc6JlWQqUvbuba4nLMsUFenWTbr2WpOcucKDD0qnT7tm\nX64yapTdEQAGyZUXadcu85dwQf3yS9GsRgUA8E0PPnjl792xw/l8+XLpk0+kNWukKlVy3n74cJN4\ndOkiLVtmyuOvXZv7tlm74F2pevWkn35yzb4K46efpH//W9qyRbr66oK//+abzfiyMmVMi1i5ctKu\nXQXbx7hxBT9uVl27mhbB+vXN5NwLF0pbtxZ+v/5k82a7Iyja6BZok5y6BWaVn+4SY8c670QlJUmB\nga6JDwAAT6hRw1wsZ1S9evZ1WZ09a8Y59esnVajgXF+1qnT8ePbtc/t7u2uXc4zyvfdKtWtLo0fn\nO3yfFhGRvwRp8mTp0UdzvgH8+edSnz45v+/nn02L2V9/mURIKlxX0KefNuemRAnT3TLj1DK//GLG\nvB0+bJYty4w/u+cek+CeOye9996VHzurYsWkxx5zjm8bM0Z68UXX7T8/Bg3K+TNdumSqUObFxy6d\nXYJugZBkJv399dfsEwu/847zrl9yMokVAMD3pF0M33STKQzx5ptm3dGjZu6n5cud26ammot5yzIt\nKP/8Z+bESjJFJLp1M2ObbrvNrNu/P/fjp5Uvb9tWmjWr6CRWkrm2WLIk74TniSdy71nTu3fm4h4Z\ntWtnxqyVKOFcdyXXtZMmmccbbnDuq0yZzFPNNG4sHTokJSQ4x15VriwtWmTimz1bioqShg4t+PEv\nF9fp06aIWOvWZt3vv7tu/3mpWDHzcl6/24gIqW5dt4WD/0dyZZP83rm56y7Trzo8XGrf3qxbtMg8\nDhni/I+UnzsUAAB4o65dTS+MuXOlYcPMumrVpObNzbins2dNAQeHQ+rV6/L7evVV01WsXj3pP/8x\n5clr1br8e95917yvKOrc2bQsnT2bPbHs2VOaPz/vfTz4oPTKK87l/v2d1yebNmVPzLZty31f776b\nfd3AgSZhuvXWvGMpXz73+T03b5beekvas+fy+1iwIPfXMk70XKyYufEdEWF+j9u3m1ZXO3XtauKS\npBtvNI8jR9oXT1FEt0Cb5Kdb4JkzZjLhtAmFu3WTvv4683tOnjR3Znzs4wMAAC9z6ZJ06pTpMXPb\nbQW/trAs6eJFZ7n6y1m4ULrjDudyv35m3NzataYVaPt2KTLStATVq1ewOPJj40bTWpmcbJYfeMAk\n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\ntmypV155xeOfHQDg20iuAABepWnTplq2bJmeeuoprVq1SuXKldPKlSvVtm1bNW3aVCtXrtSOHTvS\nt+/evbskKTIyUpGRkQoKClKJEiV09dVXKz4+XpJUq1YttWvXTpI0cOBArVq1Kv39lmUpNjZWO3bs\n0LXXXqvmzZtrzpw52r9/vwc/NQDAHwTYHQAAABmFhoZq06ZN+uabb/Tcc8/p5ptv1ptvvqkNGzYo\nODhYY8aM0YULF9K3v+qqqyRJxYoVS3+etnzp0iVJyjSuyrKsHMdZdezYUR9++KG7PhYAoAig5QoA\n4FUOHz6skiVL6u6779bIkSO1adMmORwOVa5cWYmJifr0008LvM/9+/crNjZWkvThhx/qhhtuSH/N\n4XCobdu2+umnn7R3715JZtzXnj17XPOBAABFBi1XAACvsm3bNo0cOVLFihVTiRIl9N///ldffPGF\nIiMjVb16dbVp0ybH912u8l94eLjeeOMNDR48WI0bN9awYcMyvV6lShXNnj1bd911ly5evChJGjdu\nnEJDQ1374QAAfs1hWZZldxAAALhLXFycunXrpm3bttkdCgDAz9EtEADg95jLCgDgCbRcAQAAAIAL\n0HIFAAAAAC5AcgUAAAAALkByBQAAAAAuQHIFAAAAAC5AcgUAAAAALkByBQAAAAAu8H+naFCgiaNh\nAwAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The \"pure guitar\" part is approximately from sample 10000 to sample 40000. If we plot the spectrum of this portion:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s = abs(np.fft.fftpack.fft(data[10000:40000]));\n", "s = s[0:len(s)/2]\n", "plot(np.linspace(0,1,len(s))*(fs/2), s)\n", "xlabel(\"frequency (Hz)\")\n", "ylabel(\"magnitude\")" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nf/8nSfriiy80efJkzZ07V5LkcDj01FNPdc4PGgBw2SFUAQBMYbFYlJqaql69ekmSNm3apD179niX\n19bW6sSJE3rvvff02muvSZJSUlLUv3//NvdpGIZOnDihbdu26c477/S219fXe485depUSdKIESNU\nVVXlPfa8efPUu3dvSdJVV10lyTOy9NJLL+mpp57S2rVr9eGHH553zC+++EKDBg1qcV4rV67U9ddf\n713+wx/+0Lv81KlTuvPOO/Xcc89pyJAhkqRBgwaprKysIz82AEA3RKgCAJjmu9/9rvezYRgqKipS\nz549z1uvtcvpQkJC1NTU5P1eV1cni8WipqYm9e/fX7t27Wr1mGfvv3m/Foul1WNMnz5dS5cu1W23\n3abRo0e3GejOruPces/d77333qsZM2botttua7HOxdyHBQDoXrinCgDgF8nJyVq+fLn3+0cffSRJ\nuvXWW7Vy5UpJ0oYNG/TVV19J8kzwcPjwYVVXV+v06dN6/fXXJUl9+/bVsGHD9Le//U2SJ7B8/PHH\nFzy20+nUSy+9pLq6OknyHqNXr16aOHGiFixYoLvvvrvVbYcOHapDhw61aGsrID3//PM6fvy4fvnL\nX7Zor6ys1NChQy9YIwCg+yJUAQA6zblh4+zvy5cv144dOzRq1CjFxsbqhRdekCQ9+uijevfddxUX\nF6fXXntN1157rSQpNDRUjzzyiBwOh5KTk2W32737euWVV5Sbm6uEhATFxcVp/fr1rR6z+fPEiROV\nmpqq0aNHKzExUU8++aR3nZkzZ6pHjx5KTk5u9Zxuvvlm7dixo0Pn/eSTT+qf//ynd7KK//3f/5Uk\nbd++XbfeeusF9wEA6L4sRltTGAEA0AWGDRum4uJiDRgwwC/He+KJJ1RbW+udWfBcx48f17hx41q9\n36qjZs2apYceekiJiYmXvA8AwOWLe6oAAJcVf957NG3aNJWWlurtt99uc50+ffpo3Lhx2rJli8aN\nG3fRxzh8+LBqamoIVAAQwBipAgAAAAAfcE8VAAAAAPiAUAUAAAAAPiBUAQAAAIAPCFUAAAAA4ANC\nFQAAAAD4gFAFAAAAAD74f8ZBXSoh77SJAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Indeed we can see that the frequency content of the sound contains multiples of a fundamental frequency at 110Hz, which corresponds to the open A string on a standard-tuning guitar. \n", "\n", "From a signal processing point of view, the guitar string acts as a resonator resonating at several multiples of a fundamental frequency; this fundamental frequency determines the _pitch_ of the played note. In the digital domain, we know we can implement a resonator at a single frequency $\\omega_0$ with a second-order IIR of the form \n", "\n", "$$\n", " H(z) = \\frac{1}{(1 - \\rho e^{j\\omega_0}z^{-1})(1 - \\rho e^{-j\\omega_0}z^{-1})}, \\quad \\rho \\approx 1\n", "$$\n", "\n", "i.e. by placing a pair of complex-conjugate poles close to the unit circle at an angle $\\pm\\omega_0$. A simple extension of this concept, which places poles at _all_ multiples of a fundamental frequency, is the **comb filter**. A comb filter of order $N$ has the transfer function\n", "\n", "$$\n", " H(z) = \\frac{1 - \\rho z^{-1}}{1 - \\rho^N z^{-N}}\n", "$$\n", "\n", "It is easy to see that the poles of the filters are at $z_k = \\rho e^{j\\frac{2\\pi}{N}k}$, except for $k=0$ where the zero cancels the pole. For example, here is the frequency response of $H(z) = 1/(1 - (0.99)^N z^{-N})$ for $N=9$:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from scipy import signal\n", "\n", "w, h = signal.freqz(1, [1, 0, 0, 0, 0, 0, 0, 0, 0, -.99**9])\n", "plot(w, abs(h))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nW4RMVFVZVuOjjyxA6No16Ba1bPRom1D69rftsRkEznBTZIIYyS64zzxji9fYsSwaEgnpiSekq66y\ntQlRSSknA5mvf922f166NOgWIR3xuPQv/yL927/ZIC3orbvT1bGjBTKnnWZB18cfB90ipOPYMenq\nqy0oWLFCOuWUoFuUnn797Jq2f7/05S9bOSPC79NPbZv4igq7vnXrFnSL0jNunPT227YW6847CZzh\nnkgFMZKVIy1daru+3HmnPZEY4XT8uD2b4LHHrEb8y18OukWZicVsV6vnn5duuMEeIhaPB90qpLJr\nl3T55bbu6p13pPHjg25RZtq3lx5/3GYsp0yx8gtmLcNrzRqr9y8osJ3mCgqCblFmunSRXnxRGjXK\nzhUmasJt0SLbrXXmTHu2WqdOQbcoM4MHWxXN3r323KING4JuEXJB5IIYyXbiWLPGbvDjxkmvvhp0\ni9DUwoWWRs7Pl1aujPazCS691LbBXbrUBi3vvx90i9BQba0N/idMsBLAxYul3r2DbpVzt99um5n8\n53/ak7dLSoJuERqqqJAefNDWzT3wgGWaO3QIulXO5OdbGdwTT9h23/fdZ9klhMe+fdKcOdI991jQ\n+cADUl4kR26WOVq40K5xF11km+gwMYhsRPRUkLp3l5580p43cscddrNfvz7oVmH9epspeuAB6emn\nbdFyly5Btyp7p5xidb133WUbTNx1l7RnT9CtwtKlVjK2YIGtR/jud8O1ra1T55xjEzVnn23PgHjo\nIQaXQaurs3KYsWNtndz779u6q1xwxRX233PokE04/eY3DC6DVlUlPfqoTdr27i198EF0ymNbEotJ\nX/uarZMtKrKJ6EWLyDrDmcgGMUnTp1v9+JQp9nCxf/gHKyeBv9avtwX7U6dKF14orVtntbu5JBaz\nGbH16+2ZHmPHWrC2a1fQLWtbEgkLWC65xEpK77nH/n306KBb5q4OHSwoe/ttK70YMcK28KWE1l/x\nuJXvTJhgu489+aT0pz9Fr3ysNX362NbyL79cH6w99ZQNpuGf8nLpF7+Qhg+3ibNlyyxj0b170C1z\n1xe+YFU0P/2pPUfmoous79XVBd0yREkknhOTrkOHrKzk8celM8+U/vmfpSuv5NkLXonHbQblV7+y\nwPG+++z/edh3S3FLSYkt/n/uOZvJvOsuq/Xl2QveOH7cBlePPWY7ed1/v625Cuv2om774AN73sJf\n/2rbMd91l61ngDf27bNB/eOP245j999vG5S0hfM7kbAs549+ZP3u61+3c23o0KBblrs2b7YM2DPP\n2H3k3/7NMrFtQTxuEwM//akFcXffbZOiUS4LRmZy+mGXmaqqsi1Wf/tbuzDcdJPtaHbeeW1nwOOV\nujpp+XIr33nhBSs9+Od/th16oloXnq3Dh23G8re/tb53yy3W38aNaxsDHi9VVtrOT3/4g611uegi\nu8Fddll068KztWuX9P/+n/S730kDBlhAc+21DDDdcPiwrUd6/nm7zn3lK9I3viF98YtBtyw469bZ\n4HrBAvv/cP31tklL//5Btyz69uyxXQn/9Cdp40YLFO+4w7KubVEyy/7EE/Yso2nTrL9Nn557mSg0\nRhCTwpYtNlO+cKHNnF95pV2AL7lE6ts36NZFw2ef2exvUZGlf/v3t926brhBGjYs6NaFRyIhvftu\nfX+rrZW+9CV7FRa2nQxVtrZtsxvYK6/YDW38eOtr11/POdtQba3Nlj//vJVh9O9v17cZM6x2vq1O\nKmQikbDnbSxZYkHye+9ZoHzjjfbMHs7ZehUVlnl/8UUrczrjDAvypk2zc5QJwtZVV9tGN3/9q91L\nN22y7N7119v/x5NOCrqF4XH4sPTHP1p/W7HCJqFnzrQdKEeMYIIw1xDEpKGkxG72L79sW/4OGGDr\nNy68UDr3XMsqtPULcW2trflYudJeb78t7d5tO3RdcYXNiDDj27pEwtYxLF5sr9Wr7aY/ebKVCpx7\nrnTqqW03m5BUVWULilessL729tuWfbniChuMT5tGSUE6amttW+klS+y1YYNtCDB5sr3OPdfWcLT1\nG//Ro9LatZZlSfa57t3rg7+pU229G1pWXS0VF1tQs3SptHOndP75tjb1vPNs/VCfPkG3Mnj799sC\n9oavESNsIH755fb/jMCldceOWdCX7G+VlfVjt/POs6oHJhyijSAmQ7W1to7jb3+z17vvWplGcs/8\nMWNsYd3w4bYArWPHoFvsrupqaccOC1g++qj+58aNtp/7+efbxSF5gWjrwV22Kittlnf5cnu9+64N\nqMaNs/VbDfvb0KG5t47r+HFp+/b6fvbhh/bascMmD84/316TJ9v/g7Y+2M7W0aM2YEoO1Fevtv+n\nY8c2fg0bZsFNLgXTiYR08KC0dau9Nm60kqj337dnVIwbVx/cTZ4sDRwYdIuj78ABu4+++aYF02vX\n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\nkSocRX73pwAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "An added advantage of the comb filter is that it is very easy to implement, since it requires only two multiplication per output sample _independently_ of $N$:\n", "\n", "$$\n", " y[n] = \\rho^N y[n-N] + x[n] - \\rho x[n-1]\n", "$$\n", "\n", "With this, here's an idea for a guitar simulation: the string behavior is captured by a comb filter where $N$ is given by the period (in samples) of the desired fundamental frequency. Let's try it out:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class guitar:\n", " def __init__(self, pitch=110, fs=24000):\n", " # init the class with desired pitch and underlying sampling frequency\n", " self.M = np.round(fs / pitch) # fundamental period in samples\n", " self.R = 0.9999 # decay factor\n", " self.RM = self.R ** self.M \n", " self.ybuf = np.zeros(self.M) # output buffer (circular)\n", " self.iy = 0 # index into out buf\n", " self.xbuf = 0 # input buffer (just one sample)\n", " \n", " def play(self, x):\n", " y = np.zeros(len(x))\n", " for n in range(len(x)):\n", " t = x[n] - self.R * self.xbuf + self.RM * self.ybuf[self.iy]\n", " self.ybuf[self.iy] = t\n", " self.iy = (self.iy + 1) % self.M\n", " self.xbuf = x[n]\n", " y[n] = t\n", " return y" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we model the string plucking as a simple impulse signal in zero and we input that to the guitar model:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# create a 2-second signal\n", "d = np.zeros(fs*2)\n", "# impulse in zero (string plucked)\n", "d[0] = 1\n", "\n", "# create the A string\n", "y = guitar(110, fs).play(d)\n", "Audio.Audio(data=y, rate=fs, embed=True)\n" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " " ], "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ouch! The pitch may be right but the timbre is grotesque! The reason becomes self-evident if we look at the frequency content:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s = abs(np.fft.fftpack.fft(y));\n", "s = s[0:len(s)/2]\n", "plot(np.linspace(0,1,len(s))*(fs/2), s)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\ntfqA6ocYZSu+TqtAbpwfmdNgN6Bb5exkFkE6P24cNdkeGxUjXRbdkBkLbpwfu2dpXVO22uf0bskM\nfGuis7uuzICXOSIyp8DCqV/K6tShj8wpsHBK6ZC1ney6snKWcWHXPyzjRPbeOfVX2XUtmd37Y8ns\njCVLZmegyoxiC6f+ahm1MsPPrk5LZmcUW7+rrHSW2V0z+f22e9fdXDddmaVHuuWS9bMb06wydmUr\nK/mddJIdeihRRYW9rq1bO+vqdM2GBu6rhxxi/x5UVhIdcYSzPm3a2D/nvXv5fXXS54gj7O+jspLo\nyCPtZfX1POcffrh9f7b0cWqftm2Jdu92ljnp861v2cv27HGur66Odf3Wt+ydmD172FFx0rVdO2d9\nnMrt2cP3oYPYOz8q6WfJ5VTSAIjcbVhNp4wMnc6P36lkbk7PkhmMMoPb71PJ3Kw+qp6g5tRGsvuz\nDAi7QdJqM5lM9lFeWeqWk/Em01UWwbFkdrrKZFabqaTEyZwfmTOmwzGycHrfZXuQvDo/snQOFefH\n6lN215XJLINXJks36mHRkvOTbiTKja52fccysGWrqE59wLqunWNg/c7uurJVbZnha13LzpBKHrNl\nq9N2xot1XSfDxqnOPXvY8HWSHXaYvayuLtGmdv2nqooNTafrOhmFlZXOxuSePUQdOzobxR062Nd3\n4ADrcuSR9mNzZSVf165sZSVRbq6zodm5s7Nx37mzs8HcqZPzc2zThuiYY+wdg8pKoq5dndtOJuvW\nzfl5OJWTyaqq2Jhu3965Dbp2dZZ16WIvq6ggOvFE+zorKohOOMG5D3TpIjfu27Vz1ueEE5yfl+y6\nTjLrmunef0u67t5N1L2787NsSR84PwqsWkW0fr29TPU0Ljdf7PV7U7YO58drSlxLBpodXo8VVnUo\nnIweN/toZMeJykL5qhvInfqHbHOfZWDJ9LEziGTlvOyhcJO2I0vPstPHMgJk5WR9zynaJouMWe1j\nV6csFUTWB1pKISFy7gNujHQdMln6XkvOjyz9xs4xsO7Rzuhzk5ZiN1Fa/dGpf1h12U3c1nXtJm5L\nVl7uLNu1y76+1q3tZbW1PLbW1TlHcA4/3Pm6RxzhLDvqKHtZVRUbhHb3UVVFlJNjf/9W6kmbNs5R\nkZwc++vu3Ut0/PH2sj17nA27lgzfbt2c6zv6aKJjj3U2GLt2dXYonAxxS5auId6Scd+2LesqKysz\n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\nYII=\n", "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Although we have multiples of the fundamental, we actually have _too many_ spectral lines and, because of the zero in the filter, a highpass characteristic. In a real-world guitar both the stiffness of the string and the response of the guitar's body would limit the number of harmonics to just a few, as we saw in the figure above where we analyzed the snippet from the song. \n", "\n", "Well, it's not too hard to get rid of unwanted spectral content: just add a lowpass filter. In this case we use a simple Butterworth that keeps only the first five harmonics:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from scipy import signal\n", "\n", "class guitar:\n", " def __init__(self, pitch=110, fs=24000):\n", " # init the class with desired pitch and underlying sampling frequency\n", " self.M = np.round(fs / pitch) # fundamental period in samples\n", " self.R = 0.9999 # decay factor\n", " self.RM = self.R ** self.M \n", " self.ybuf = np.zeros(self.M) # output buffer (circular)\n", " self.iy = 0 # index into out buf\n", " self.xbuf = 0 # input buffer (just one sample)\n", " # 6th-order Butterworth, keep 5 harmonics:\n", " self.bfb, self.bfa = signal.butter(6, min(0.5, 5.0 * pitch / fs))\n", " self.bfb *= 1000 # set a little gain \n", " # initial conditions for the filter. We need this because we need to\n", " # filter on a sample-by-sample basis later on\n", " self.bfs = signal.lfiltic(self.bfb, self.bfa, [0])\n", " \n", " def play(self, x):\n", " y = np.zeros(len(x))\n", " for n in range(len(x)):\n", " # comb filter\n", " t = x[n] - self.R * self.xbuf + self.RM * self.ybuf[self.iy]\n", " self.ybuf[self.iy] = t\n", " self.iy = (self.iy + 1) % self.M\n", " self.xbuf = x[n]\n", " # lowpass filter, keep filter status for next sample\n", " y[n], self.bfs = signal.lfilter(self.bfb, self.bfa, [t], zi=self.bfs)\n", " return y" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "OK, let's give it a spin:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "y = guitar(110, fs).play(d)\n", "Audio.Audio(data=y, rate=fs, embed=True)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " " ], "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ah, so much better, no? Almost like the real thing. We can check the spectrum and indeed we're close to what we wanted; the guitar is in the bag." ] }, { "cell_type": "code", "collapsed": false, "input": [ "s = abs(np.fft.fftpack.fft(y[10000:30000]));\n", "s = s[0:len(s)/2]\n", "plot(np.linspace(0,1,len(s))*(fs/2), s)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 11 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "2 - the amplifier" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the \"I Feel Fine\" setup, the volume of the amplifier remains constant; however, because of the feedback, the input will keep increasing and, at one point or another, any real-world amplifier will be driven into saturation. When that happens, the output is no longer a scaled version of the input but gets \"clipped\" to the maximum output level allowed by the amp. We can easily simulate this behavior with a simple memoryless clipping operator: " ] }, { "cell_type": "code", "collapsed": false, "input": [ "def amplify(x):\n", " TH = 0.9 # threshold\n", " y = copy(x)\n", " y[y > TH] = TH\n", " y[y < -TH] = -TH\n", " return y" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can easily check the characteristic of the amplifier simulator: " ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = np.linspace(-2, 2, 100)\n", "plot(x, amplify(x))\n", "xlabel(\"input\")\n", "ylabel(\"output\")" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 13, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "While the response is linear between -TH and TH, it is important to remark that the clipping introduces a nonlinearity in the processing chain. In the case of linear systems, sinusoids are eigenfunctions and therefore a linear system can only alter a sinusoid by modifying its amplitude and phase. This is not the case with nonlinear systems, which can profoundly alter the spectrum of a signal by creating new frequencies. While these effects are very difficult to analyze mathematically, from the acoustic point of view nonlinear distortion can be very interesting, and \"I Feel Fine\" is just one example amongst countless others. \n", "\n", "It is instructive at this point to look at the spectrogram (i.e. the STFT) of the sound sample (figure courtesy of the OP Jamie); note how, indeed, the spectral content shows many more spectral lines after the nonlinearity of the amplifier comes into play." ] }, { "cell_type": "code", "collapsed": false, "input": [ "display(Image(filename='data/specgram.png', width=800))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": { "png": { "width": 800 } }, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 14 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "3 - the acoustic feedback" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The last piece of the processing chain is the acoustic channel that closes the feedback loop. The sound pressure waves generated by the loudspeaker of the amplifier travel through the air and eventually reach the vibrating string. For feedback to kick in, two things must happen:\n", "\n", "* the energy transfer from the pressure wave to the vibrating string should be non-negligible\n", "* the phase of the vibrating string must be sufficiently aligned with the phase of the sound wave in order for the sound wave to \"feed\" the vibration.\n", "\n", "Sound travels in the air at about 340 meters per second and sound pressure decays with the reciprocal of the traveled distance. We can build an elementary acoustic channel simulation by neglecting everything except delay and attenuation. The output of the acoustic channel for a guitar-amplifier distance of $d$ meters will be therefore\n", "\n", "$$\n", "\ty[n] = \\alpha x[n-M]\n", "$$\n", "\n", "where $\\alpha = 1/d$ and $M$ is the propagation delay in samples; with an internal clock of $F_s$ Hz we have $M = \\lfloor d/(c F_s) \\rfloor$ where $c$ is the speed of sound." ] }, { "cell_type": "code", "collapsed": false, "input": [ "class feedback:\n", " SPEED_OF_SOUND = 343.0 # m/s\n", " def __init__(self, max_distance_m = 5, fs=24000): \n", " # init class with maximum distance\n", " self.L = ceil(max_distance_m / self.SPEED_OF_SOUND * fs);\n", " self.xbuf = zeros(self.L) # circular buffer\n", " self.ix = 0\n", " \n", " def get(self, x, distance):\n", " d = ceil(distance / self.SPEED_OF_SOUND * fs) # delay in samples\n", " self.xbuf[self.ix] = x\n", " x = self.xbuf[(self.L + self.ix - d) % self.L]\n", " self.ix = (self.ix + 1) % self.L\n", " return x / float(distance)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 15 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "4 - play it, Johnny" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "OK, we're ready to play. We will generate a few seconds of sound, one sample at a time, following these steps:\n", "\n", "* generate a guitar sample\n", "* process it with the nonlinear amplifier\n", "* feed it back to the guitar via the acoustic channel using a time-varying distance\n", "\n", "During the simulation, we will change the distance used in the feedback channel model to account for the fact that the guitar is first played at a distance from the amplifier, and then it is placed very close to it. In the first phase, the sound will simply be a decaying note and then the feedback will start moving the string back in full swing and drive the amp into saturation. We also need to introduce some coupling loss between the sound pressure waves emitted by the loudspeaker and the string, since air and wound steel have rather different impedences. \n", "\n", "Let's see if that works:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "g = guitar(110) # the A string\n", "f = feedback() # the feedback channel\n", "\n", "# the \"coupling loss\" between air and string is high. Let's say that\n", "# it is about 80dBs\n", "COUPLING_LOSS = 0.0001\n", "\n", "# John starts 3m away and then places the guitar basically against the amp\n", "# after 1.5 seconds\n", "START_DISTANCE = 3 \n", "END_DISTANCE = 0.05\n", "\n", "N = fs * 5 # play for 5 seconds\n", "y = zeros(N) \n", "x = [1] # the initial plucking\n", "# now we create each sample in a loop by processing the guitar sound\n", "# thru the amp and then feeding back the attenuated and delayed sound\n", "# to the guitar\n", "for n in range(N):\n", " y[n] = amplify(g.play(x))\n", " x = [COUPLING_LOSS * f.get(y[n], START_DISTANCE if n < (1.5 * fs) else END_DISTANCE)]\n", " \n", " \n", "Audio.Audio(data=y, rate=fs, embed=True)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " " ], "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pretty close, no? Of course the sound is not as rich as the original recording since\n", "\n", "* real guitars and real amplifiers are very complex physical system with many more types of nonlinearities; amongst others:\n", " * the spectral content generated by the string varies with the amplitude of its oscillation\n", " * the spectrum of the generated sound is not perfectly harmonic due to the physical size of the string\n", " * the string may start touching the frets when driven into large oscillations\n", " * the loudspeaker may introduce additional frequencies if driven too hard\n", " * ...\n", "* we have neglected the full frequency response of the amp both in linear and in nonlinear mode\n", "* it's the BEATLES, man! How can DSP compete?\n", "\n", "Well, hope this was a fun and instructive foray into music and signal processing. You can now play with the parameters of the simulation and try to find alternative setups: \n", "\n", "* try to change the characteristic of the amp, maybe using a sigmoid (hyperbolic tangent)\n", "* change the gain, the coupling loss or the frequency of the guitar\n", "* change John's guitar's position and verify that feedback does not occur at all distances." ] } ], "metadata": {} } ] }