{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Following https://en.m.wikipedia.org/wiki/Karplus–Strong_string_synthesis\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import wave\n", "import struct\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "import IPython\n", "import scipy.interpolate as interp" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "sample_rate = 44100\n", "\n", "def p(a):\n", " return IPython.display.Audio( a, rate=sample_rate, autoplay = True )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "OK so now we can try and make a simple synth using the delay line and the shift-by-one filter.\n", "Initializing with noise this makes a plucked string type sound." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def kp_standalone():\n", " freq = 220\n", " # F = sample / ( N + .5 )\n", " # so N + .5 = sample / F\n", "\n", " burstlen = int( (sample_rate / freq + 0.5)* 2 )\n", "\n", " samplelen = sample_rate * 3\n", " result = np.zeros( samplelen )\n", " noise = np.random.rand( burstlen ) * 2 - 1\n", "\n", " result[0:burstlen] = noise\n", " delay = noise\n", "\n", " pos = burstlen\n", " \n", " filtAtten = 0.4;\n", " filtWeight = 0.5\n", "\n", " filtAtten = filtAtten / 100 / ( freq / 440 )\n", "\n", " while( pos < samplelen ):\n", " dpos = pos % burstlen\n", " dpnext = (pos + 1 ) % burstlen\n", " dpfill = (pos - 1) % burstlen\n", "\n", " # Simple averaging filter\n", " filtval = ( filtWeight * delay[ dpos ] + (1.0 - filtWeight ) * delay[ dpnext ] ) * (1.0 - filtAtten)\n", "\n", " result[ pos ] = filtval\n", " delay[ dpfill ] = filtval\n", " \n", " pos = pos + 1\n", "\n", " return result\n", " \n", "p( kp_standalone() )\n", "# filtAtten\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Great! So from that method we want to do a few things\n", "\n", "* Make it feel more like a \"class\" with a step operator\n", "* Change the seed (not just noise; also square saw and chirp)\n", "* Change the filter styles (3 point; comb)\n", "* Handle frequency shifts and stuff while going\n", "* Have non-integral frequencies and interpolate appropriately (do this one last with\n", "an internal buffer we interpolate)\n", "\n", "So lets get to work on that!" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "class KSSynth:\n", " def __init__(self):\n", " self.pos = 0\n", " self.filtWeight = 0.5\n", " self.filtAtten = 3.0\n", " \n", " self.filterType = \"weightedOneSample\"\n", " \n", " self.setFreq( 220 )\n", " \n", " self.initPacket = \"random\"\n", " \n", " def setFreq( self, freq ):\n", " self.freq = freq\n", " self.burstlen = int( ( sample_rate / freq + 0.5 ) * 2 )\n", " self.filtAttenScaled = self.filtAtten / 100 / ( self.freq / 440 )\n", " \n", " def trigger( self, freq ):\n", " self.setFreq( freq )\n", " self.delay = []\n", " ls = np.linspace( 0, self.burstlen-1, self.burstlen ) / self.burstlen\n", " if( self.initPacket == \"random\" ):\n", " self.delay = np.random.rand( self.burstlen ) * 2 - 1 \n", " if( self.initPacket == \"square\" ):\n", " mp = int(self.burstlen/2)\n", " self.delay = np.zeros( self.burstlen )\n", " self.delay[ :mp ] = 1\n", " self.delay[ mp: ] = -1\n", " if( self.initPacket == \"saw\" ):\n", " self.delay = ls * 2 - 1\n", " if( self.initPacket == \"noisysaw\" ):\n", " self.delay = ls * 1 - 0.5 + np.random.rand( self.burstlen ) - 0.5\n", " if( self.initPacket == \"sin\" ):\n", " self.delay = np.sin( ls * 2 * np.pi )\n", " if( self.initPacket == \"sinChirp\" ):\n", " lse = np.exp( ls * 2 ) * 3\n", " self.delay = np.sin( lse * 2 * np.pi )\n", " if( len( self.delay ) == 0 ):\n", " print( \"Didn't grok \", self.initPacket )\n", " \n", " def adjFrequency( self, freq ):\n", " \"\"\"This is different than trigger in that it keeps current waves and interps them to a new freq\"\"\"\n", " oldbl = self.burstlen\n", " olddel = self.delay\n", " self.setFreq( freq )\n", " \n", " olddi = interp.interp1d( np.arange( 0, oldbl ), olddel )\n", " newy = np.arange( 0, self.burstlen ) * (oldbl-1) / (self.burstlen-1)\n", " self.delay = olddi( newy )\n", " \n", " def step( self ):\n", " dpos = self.pos % self.burstlen\n", " dpnext = ( self.pos + 1 ) % self.burstlen\n", " dpfill = ( self.pos - 1 ) % self.burstlen\n", "\n", " # Simple averaging filter\n", " fw = self.filtWeight;\n", " fa = self.filtAttenScaled;\n", " filtval = -1000;\n", " if( self.filterType == \"weightedOneSample\" ):\n", " filtval = ( fw * self.delay[ dpos ] + ( 1.0 - fw ) * self.delay[ dpnext ] ) * ( 1.0 - fa )\n", " if( filtval == -1000 ):\n", " filtval = 0\n", " print( \"Filtval misset \", self.filterType )\n", " \n", " self.delay[ dpfill ] = filtval\n", " \n", " self.pos = self.pos + 1 \n", " return filtval\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.04002992811679594\n", "0.012173902763392348\n", "0.007536444190202014\n" ] }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = KSSynth()\n", "k.trigger( 440 )\n", "# print( np.average( k.delay ) )\n", "print( np.sqrt( np.sum( [ i * i for i in k.delay ])) / k.burstlen )\n", "[k.step() for i in range( 2000 )]\n", "# print( np.average( k.delay ) )\n", "print( np.sqrt( np.sum( [ i * i for i in k.delay ])) / k.burstlen )\n", "[k.step() for i in range( 2000 )]\n", "# print( np.average( k.delay ) )\n", "print( np.sqrt( np.sum( [ i * i for i in k.delay ])) / k.burstlen )\n", "\n", "\n", "\n", "#ds = [ k.step() for i in range(sample_rate)]\n", "#print( k.filtAttenScaled, \" \", k.burstlen )\n", "p(ds)\n", "#plt.plot( ds )" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = KSSynth()\n", "packets = [ \"random\", \"square\", \"saw\", \"noisysaw\", \"sin\", \"sinChirp\" ]\n", "npk = len( packets ) \n", "f = []\n", "for i in range( 13 ):\n", " fm = pow( 2, i/12.0 ) \n", " k.initPacket = packets[ i % npk ]\n", " k.trigger( fm * 220 )\n", " res = [ k.step() for i in range( int(sample_rate/2) ) ]\n", " f = f + res\n", " \n", "p( f )" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = KSSynth();\n", "f = []\n", "k.filtAtten = 0.1\n", "fr = 440;\n", "k.trigger( 440 )\n", "sr10 = int( sample_rate / 500 )\n", "mul = 1.005\n", "for i in range( 800 ):\n", " res = [ k.step() for i in range( sr10 )]\n", " fr = fr * mul\n", " k.adjFrequency( fr )\n", " f = f + res\n", " if( i == 250 ):\n", " #fr = 440\n", " mul = 0.999\n", "p( f )" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12.,\n", " 13., 14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24., 25.,\n", " 26., 27., 28., 29., 30., 31., 32., 33., 34., 35., 36., 37., 38.,\n", " 39., 40., 41., 42., 43., 44., 45., 46., 47., 48., 49., 50., 51.,\n", " 52., 53., 54., 55., 56., 57., 58., 59., 60., 61., 62., 63., 64.,\n", " 65., 66., 67., 68., 69., 70.])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.linspace( 0, 70, 71 )" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot( f[ 0:500 ] )" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.1" } }, "nbformat": 4, "nbformat_minor": 2 }