{ "metadata": { "name": "", "signature": "sha256:8f83c4daa3e70eb4a8add4f138c5e1149a609e3e8b10fa0b54ce57f0e71b996c" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "
(max-min)/2
, and the number of iterations\n",
"as the approximation of the Gaussian, which is limited to [max,min]
\n",
"For musical purposes, this makes a cleaner and simpler algorithm for Gaussian distributions"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"\n",
"# this averager returns one Gaussian value\n",
"def gaussian_averager(gmin , gmax , giterations = 12):\n",
" return sum([ random.random() * (gmax-gmin) + gmin for i in range(giterations)]) / giterations\n",
" \n",
"gaussian_averager(1,100)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
"64.23710128705206"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# example of some number of averaged Gaussian values\n",
"# giving min and max as midi ranges\n",
"for i in range(50):\n",
" print int(round(gaussian_averager(36, 96, 8))),"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"66 73 66 63 73 68 59 63 63 57 58 69 73 70 67 62 54 67 74 60 67 67 73 62 61 63 68 65 57 58 55 65 68 66 56 66 73 71 61 66 63 63 67 65 53 74 76 59 61 64\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"gaussmin = 36\n",
"gaussmax = 96\n",
"iters = 24\n",
"num_bins = gaussmax-gaussmin\n",
"num_samples = 100000\n",
"plt.hist([gaussian_averager(gaussmin,gaussmax,iters) for i in range( num_samples)], num_bins);"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"