{
"metadata": {
"name": "",
"signature": "sha256:f942cc1f0ca28b3dd5e285f1cf9781bb504cb424bc5c4594a6085513c0ea4411"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Our goal: plot the equilibrium state of the vibrato bridge in the linearized spring model.\n",
"\n",
"Guitar part:\n",
"\n",
"- define frequencies as variables\n",
"- compute tensions, make a sum\n",
"- compute equilibrium position of the bridge\n",
"\n",
"When a guitar is tuned the zero frequencies are:\n",
"\n",
"329,6 Hz \n",
"246,9 Hz\n",
"196 Hz\n",
"146,8 Hz\n",
"110,0 Hz\n",
"82,4 Hz\n",
"\n",
"Material properties can be found [here](http://www.daddario.com/DADProductDetail.Page?ActiveID=3769&ProductID=25&productname=EXL116_Nickel_Wound_Medium_Top_Heavy_Bottom_11_52), for example."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from pylab import *\n",
"%matplotlib inline"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from IPython.display import SVG"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"SVG(filename='files/guitar_string_spring.svg')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"svg": [
""
],
"text": [
""
]
}
],
"prompt_number": 4
},
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Computing the linear mass of my strings"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this section, we're going to compute the linear weights of each individual string using the factory data that can be found on the string package.\n",
"\n",
"In my case, I'm using a d'Addario EXL116 (medium top, heavy bottom) string set, whose information can be found [here](http://www.daddario.com/DADProductDetail.Page?ActiveID=3769&productid=25&productname=EXL116_Nickel_Wound__Medium_Top_Heavy_Bottom__11_52). It looks like this:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from IPython.display import Image"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"Image(url=\"http://www.daddario.com/resources/jdcdad/images/products/da_prod_exl116_detail2_1.jpg\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
""
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": [
""
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The classical formula relating the fundamental parameters of a vibrating string is:\n",
"\n",
"$$\n",
"f = \\frac{1}{2 L} \\sqrt{\\frac{T}{\\mu}}\n",
"$$\n",
"\n",
"From this formula, we can compute the value of $\\mu$ as:\n",
"\n",
"$$\n",
"\\mu = \\frac{T}{4 L^2 f^2}\n",
"$$\n",
"\n",
"Using the frequencies found on [Wikipedia](http://en.wikipedia.org/wiki/Piano_key_frequencies) and the data on the package, we can compute $\\mu$:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"freqs = array([82.4, 110., 146.8, 196., 246.9, 329.6]) # frequencies of the guitar strings, from low E to high E, in Hz\n",
"calibration_T = array([9.59, 11.61, 11.22, 8.43, 8.09, 8.9]) * 9.81 # calibration tensions found on package (in kg) converted to N\n",
"mu = calibration_T / (4 * 0.648**2 * freqs**2) \n",
"mu"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 8,
"text": [
"array([ 0.00824942, 0.0056041 , 0.00304088, 0.00128166, 0.00077511,\n",
" 0.00047849])"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can plot these linear masses as a function of string number:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plot(arange(1, 7), mu * 1000, 'o')\n",
"xlabel('string number')\n",
"ylabel('linear mass (g/m)')\n",
"grid(True)\n",
"xlim(0.5, 6.5)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 9,
"text": [
"(0.5, 6.5)"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nwNXY3/JwAAAAAElFTkSuQmCC\n",
"text": [
""
]
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"From here, we can proceed to write an analysis toolkit allowing us to measure the frequencies of the strings and finally compute the tensions they produce on the vibrato bridge."
]
},
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Computing the string tensions from the frequencies"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"From the above steps, we know the linear masses and the frequencies of our strings. Assuming I'm tuned from low to high (which I am), we can derive the tensions and compute the total tension on the guitar neck from our data:\n",
"\n",
"$$\n",
"T = 4 \\mu L^2 f^2\n",
"$$"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def compute_tensions(freqs, linear_masses, l):\n",
" return 4 * linear_masses * l**2 * freqs ** 2"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 10
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"compute_tensions(array(fundamentals), mu, 0.7)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'fundamentals' 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\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mcompute_tensions\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfundamentals\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmu\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0.7\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mNameError\u001b[0m: name 'fundamentals' is not defined"
]
}
],
"prompt_number": 11
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I chose 0.7 m as the string length, while in reality I hadn't screwed my neck tight so strings have in fact different lengths (the shortest being the lowest E string).\n",
"\n",
"The tensions are, of course, in Newtons. So if we want something more tangible, we can convert it to kg with the following code: "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"T_kg = compute_tensions(array(fundamentals), mu, 0.7) / 9.81\n",
"T_kg"
],
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'fundamentals' 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\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mT_kg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcompute_tensions\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfundamentals\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmu\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0.7\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m/\u001b[0m \u001b[1;36m9.81\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mT_kg\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mNameError\u001b[0m: name 'fundamentals' is not defined"
]
}
],
"prompt_number": 15
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The total tension in my case is:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sum(T_kg)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'T_kg' 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\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0msum\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mT_kg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mNameError\u001b[0m: name 'T_kg' is not defined"
]
}
],
"prompt_number": 14
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}