{ "metadata": { "name": "", "signature": "sha256:c6cb87c0bcf559d35926bd23448e47872598bad4e66cedfde2206b47322cbde1" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline\n", "from __future__ import print_function\n", "from __future__ import division" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "import icsound" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "cs = icsound.icsound()\n", "cs.start_engine(ksmps=256)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Csound server started.\n" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "cs.print_log()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "rtaudio: ALSA module enabled\n", "rtmidi: ALSA Raw MIDI module enabled\n", "WARNING: STK opcodes not available: define environment variable RAWWAVE_PATH\n", "(points to rawwaves directory) to use STK opcodes.\n", "--Csound version 6.07 (double samples) Apr 14 2016\n", "graphics suppressed, ascii substituted\n", "0dBFS level = 1.0\n", "orch now loaded\n", "audio buffered in 256 sample-frame blocks\n", "ALSA output: total buffer size: 1024, period size: 256 \n", "writing 512 sample blks of 64-bit floats to dac \n", "SECTION 1:\n", "\n" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "%%csound\n", "instr 1\n", "\n", " kfreq chnget \"freq\"\n", " asig oscil 0.1, kfreq\n", " outs asig, asig\n", "\n", "endin" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "%%csound\n", "turnon 1" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "cs.set_channel(\"freq\", 880)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "#make function to turnoff all notes" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "cs.send_score('i -1 0 0') " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 75 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#Exploring FM" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Two operator FM.\n", "\n", "Possibilities:\n", "\n", " * Carrier Frequency\n", " * Carrier Amplitude\n", " * Modulator Amplitude: Richer/sinusoidal spectrum\n", " * Modulator Frequency: Spread around the carrier\n", " " ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%csound\n", "\n", "girgnp ftgen 0, 0, 0, -23, \"../shared/rgnp.txt\"\n", "giunrate ftgen 0, 0, 0, -23, \"../shared/unrate.txt\"\n", "gigs10 ftgen 0, 0, 0, -23, \"../shared/gs10.txt\"\n", "\n", "gisine ftgen 0, 0, 4096, 10, 1\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "%%csound\n", "\n", "instr 1\n", "\n", "kfreq chnget \"freq\"\n", "\n", "; data reader\n", "ags10 poscil 1, kfreq, gigs10\n", "\n", "; modulator\n", "amod poscil ags10 * ags10 * 10, 44 + (16 - ags10)\n", "\n", "; phasor + table reader is the carrier\n", "acarr poscil 0.2, 220 + amod\n", "\n", "outs acarr* 0.1, acarr * 0.1\n", "\n", "endin" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 143 }, { "cell_type": "code", "collapsed": false, "input": [ "cs.set_channel(\"freq\", 1/10.0)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 134 }, { "cell_type": "code", "collapsed": false, "input": [ "cs.send_score('i 1 0 20') " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 144 }, { "cell_type": "code", "collapsed": false, "input": [ "%%csound\n", "print(giunrate)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 152 }, { "cell_type": "code", "collapsed": false, "input": [ "cs.print_log()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "rtaudio: ALSA module enabled\n", "rtmidi: ALSA Raw MIDI module enabled\n", "WARNING: STK opcodes not available: define environment variable RAWWAVE_PATH\n", "(points to rawwaves directory) to use STK opcodes.\n", "--Csound version 6.07 (double samples) Apr 14 2016\n", "graphics suppressed, ascii substituted\n", "0dBFS level = 1.0\n", "orch now loaded\n", "audio buffered in 256 sample-frame blocks\n", "ALSA output: total buffer size: 1024, period size: 256 \n", "writing 512 sample blks of 64-bit floats to dac \n", "SECTION 1:\n", " rtevent:\t T 39.259 TT 39.259 M: 0.00000 0.00000\n", "new alloc for instr 1:\n", " rtevent:\t T 47.816 TT 47.816 M: 0.10000 0.10000\n", " rtevent:\t T 63.321 TT 63.321 M: 0.00000 0.00000\n", "new alloc for instr 1:\n", " rtevent:\t T 75.331 TT 75.331 M: 0.10000 0.10000\n", "ftable 101:\n", "ftable 101: error opening ASCII file\n", "f101 0.00 0.00 -23.00 \"../shared/rgnp.txt\" ...\n", "INIT ERROR in instr 0: ftgen error\n", "girgnp\tftgen.iS\t0\t0\t0\t-23\t\"../shared/rgnp.txt\"\t\n", "ftable 101:\n", "819 elements in ../shared/unrate.txt\n", "ftable 101:\t819 points, scalemax 10.800\n", " _\n", "\n", " _ ''.\n", " '_ ' -_\n", " _ . ' '-. _''_ _\n", " ' _ '- - __ --_ _ -.' -_ ._ ..._ . _\n", " ' -. . '' --_ -_. -\n", "_- '__ '-. --._- '-'\n", " .\n", "ftable 102:\n", "756 elements in ../shared/gs10.txt\n", "ftable 102:\t756 points, scalemax 15.320\n", " '.\n", "\n", " - --\n", " ' ' -\n", " ._ .' .-'_-_ _\n", " _''. .-' ' - - ._ _\n", " _ ..- ' '' ' -. -__ _.\n", " _. - ------' --'' . .\n", "'--' ' ' --__'..\n", "ftable 103:\n", "ftable 103:\t4096 points, scalemax 1.000\n", " .-''''''-._\n", " _-' '.\n", " _- '.\n", " - '_\n", " .' -\n", " - '_\n", " _' .\n", " . -\n", " - '_\n", "_'_____________________________________._______________________________________\n", " - .\n", " - -\n", " '_ _'\n", " . .\n", " - -\n", " '. _'\n", " -_ -\n", " -_ .'\n", " -_ _.'\n", " '-._____..'\n", "WARNING: Buffer underrun in real-time audio output\n", " rtevent:\t T604.119 TT604.119 M: 0.00000 0.00000\n", "new alloc for instr 1:\n", "error: Variable 'asig' used before defined\n", "error: Variable type for asig could not be determined.\n", "Parsing failed to syntax errors\n", "Stopping on parser failure\n", " rtevent:\t T1502.482 TT1502.482 M: 0.10000 0.10000\n", "new alloc for instr 1:\n", " rtevent:\t T1513.616 TT1513.616 M: 0.02000 0.02000\n", " rtevent:\t T1540.423 TT1540.423 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T1547.192 TT1547.192 M: 0.02000 0.02000\n", " rtevent:\t T1554.338 TT1554.338 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T1595.019 TT1595.019 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T1603.100 TT1603.100 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T1613.717 TT1613.717 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T1620.550 TT1620.550 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T1623.493 TT1623.493 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T1630.354 TT1630.354 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T1648.025 TT1648.025 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T1655.107 TT1655.107 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T1685.090 TT1685.090 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", "instr 0: gigs10 = 102.000\n", " rtevent:\t T1826.888 TT1826.888 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T1905.435 TT1905.435 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T1939.325 TT1939.325 M: 0.02000 0.02000\n", " rtevent:\t T2096.663 TT2096.663 M: 0.02000 0.02000\n", " rtevent:\t T2244.748 TT2244.748 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T2258.733 TT2258.733 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T2330.773 TT2330.773 M: 0.04000 0.04000\n", "new alloc for instr 1:\n", " rtevent:\t T2372.301 TT2372.301 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T2402.122 TT2402.122 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T2429.806 TT2429.806 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T2439.123 TT2439.123 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T2444.005 TT2444.005 M: 0.04000 0.04000\n", "could not find playing instr 1.000000\n", " rtevent:\t T2462.290 TT2462.290 M: 0.04000 0.04000\n", " rtevent:\t T2501.155 TT2501.155 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T2516.254 TT2516.254 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T2596.670 TT2596.670 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T2615.705 TT2615.705 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T2850.493 TT2850.493 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T2871.821 TT2871.821 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T2899.069 TT2899.069 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T2923.613 TT2923.613 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T2976.740 TT2976.740 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3011.860 TT3011.860 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3067.333 TT3067.333 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3103.324 TT3103.324 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3143.703 TT3143.703 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3159.551 TT3159.551 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3183.589 TT3183.589 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3218.640 TT3218.640 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3250.219 TT3250.219 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3281.966 TT3281.966 M: 0.02000 0.02000\n", " rtevent:\t T3294.261 TT3294.261 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3320.175 TT3320.175 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3332.267 TT3332.267 M: 0.02000 0.02000\n", " rtevent:\t T3355.928 TT3355.928 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3409.386 TT3409.386 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3443.287 TT3443.287 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3459.953 TT3459.953 M: 0.02000 0.02000\n", " rtevent:\t T3515.315 TT3515.315 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3582.514 TT3582.514 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3620.833 TT3620.833 M: 0.02000 0.02000\n", " rtevent:\t T3650.206 TT3650.206 M: 0.02000 0.02000\n", " rtevent:\t T3689.784 TT3689.784 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3717.602 TT3717.602 M: 0.02000 0.02000\n", " rtevent:\t T3741.733 TT3741.733 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3795.406 TT3795.406 M: 0.02000 0.02000\n", "new alloc for instr 1:\n", " rtevent:\t T3921.357 TT3921.357 M: 0.02000 0.02000\n", " rtevent:\t T3943.044 TT3943.044 M: 0.02000 0.02000\n", "instr 0: giunrate = 101.000\n", "\n" ] } ], "prompt_number": 153 }, { "cell_type": "code", "collapsed": false, "input": [ "cs.plot_table(102)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n8lHus379ejz33HNqVoL14DprRUVF2Lhxo3o9ZswY+Pj41PgcOTPu2LFjyM3NxSeffIKSkhLDNRs3\nblTn3nrrLQDA8OHDAQBr1qzB2bNnsXTpUhQVFeH111/H8OHDceDAAQghsHTpUsTGxuLWW29FYWEh\nAOD22293atEyIiKqmRy3pPf2228jMjIS//znPwFYuuD04uLi1LGtiUF6t956K6Kjo3HXXXfB39/f\n9QbrtGnTBoBlFnR5ebla+wkAVq1a5dZnNVjVJSl7/qCedMOdPHlSlUnln23btlX7ma1bt6prx48f\nL7Kzs+161pQpUwQA8corr6jutblz56r3S0tLxfDhw1V3nXzG6tWrRUJCggAg+vXrp86Hh4erLrox\nY8YY/g69e/cWV65csaviRUREzrn55pvV991NmzYJHx+fSpWmq6++2vCZBx980KHuLn23nDs98MAD\nAoB47733xNGjRw1tvvnmmz3yzHrK7ZWlSpnLTffxmLVr11YamFfTwpE///wzAODhhx/Gl19+afe0\ny549ewIAHn/8cSQnJwOwVNm++eYbAJbl8H/44Qc0b94cGzZswPjx4/HOO+9g9OjReOCBBwBUDCj/\n5ptvsH//fgwaNAglJSVq9+g///nPePXVV7Fq1Sr4+fnZVfEiIiLn6L/HJiYm2qzkh4aGGl43b97c\noWd4aoKNvrJ04MABABUzu3/66SeUl5c7dL/CwkI8/PDDWLdunXsb6s2qS1Ku/IGXVZbGjx8vAIjF\nixeLf/zjHwKA+L//+z+b15aXl4v58+er5P3RRx859Ky0tDShaVql3zp8fX3Ftm3b1DioefPmVfps\ndna2Goc0f/58dT43N1c0b95cABB9+vRx7C9PREQu2b17t7jlllvUoO633nqr0vf4MWPGGD7z/vvv\ne8VA6ldffVUAEI8++qh48cUXBQDx2GOPidjYWNVrcejQIbvv99hjj3nF38sD3DvA254/3vYfsXXr\n1gKASE1NVQPp7r77bpvXPvfcc4YvgPPnzzv8PFmybdmypdi9e7fo0qVLpS+sH374weZnd+/eLX7+\n+edK5zMyMsTs2bPFvn37HG4PERG5T25urprMI//ce++9hmvKysrE7Nmzq/xeX1s+++wzQ6ADIJYs\nWSJGjx5tGGpSk/LycnHw4EHDAPEGxuPdcF7t/PnzOHfuHEJCQtCxY0fDAGxbPv30U3Xcp08fh0up\n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\nnz59SE9PZ+LEiQB+qaK61pSLeM6Sx8zaAUuA/wqOMImIiIjU6JlnnuHIkSP+/vbt26udU1FRwdNP\nP01qair79+8HIh9Z2rJli9/Wu3dvABYsWMDYsWMZMWIEAwcOZN++fWHv1aCwZGZJwJvA/zjnllU9\n/sADD/jbo0aNYtSoUQ35cSIiItIEZWRksG7dOoBKQQmoNMrkWbJkCTNnzqzUFunIUqg+ffoAgSVe\npk2bRllZGWZW56NAq+t1uVovDLzn/xrwjXMuq4bjLtJ7i4iISPNx9OhRvvzySwYPHsyCBQvIyckh\nLS2Nhx9+mP79+1eawwQwbNgwNm/eXKmtqKiI1NTUev/M1atXk5mZ6e9369aNnTt3VloLz2svKCjA\nOVdr/aKGhKVrgA+AzwiUDgC4zzm3InhcYUlERERqdOLECdq3b0/r1q0pKSmhVatWABQXF9O+fftK\ntY969erlT9Kur/z8fH8tOa9i9/nnn1/tPC+YhQtLET+Gc859SJyKWoqIiEjT1q5dO7p27UpBQQH7\n9++nR48eAOTk5OCcY8CAAf5yJd6xs9GzZ09WrVrFJZdcUmNI8tRnrTiFHREREYmLfv36AfD5559T\nWFjI5MmT/fVjQxf1Pdv5Sp7MzEx+8IMfhD3nxhtvrPM+CksiIiISF96r+++//z4ZGRksXrzYfzNt\n8ODBvPrqq/Tv3585c+bErA/z58/nqaeeCntOxHOW6qI5SyIiIhLOwoULueOOO2o8lpeX5488NZJa\n5yxpZElERETiwhtZ8njFI3/60582dlAKSyNLIiIiEhcVFRV06NCB48ePA1BSUsKuXbvo168fSUlJ\njd0djSyJiIjIuSUhIYEJEyb4+23btmXgwIHxCEphNXi5ExEREZFIPf3005SVlfGzn/0s3l2plR7D\niYiIiOgxnIiIiEhkFJZEREREwlBYEhEREQlDYUlEREQkDIUlERERkTAUlkRERETCUFgSERERCUNh\nSURERCQMhSURERGRMBSWRERERMJQWBIREREJQ2FJREREJAyFJREREZEwFJZEREREwlBYEhEREQlD\nYUlEREQkDIUlERERkTAUlkRERETCUFgSERERCUNhSURERCQMhSURERGRMBSWRERERMJQWBIREREJ\nQ2FJREREJAyFJREREZEwIg5LZjbGzPLM7Cszmx3NTomIiIicKyIKS2bWCngOGANcBtxuZv2j2TFp\nWdauXRvvLkgTos+L1Jc+KxINkY4sDQd2OufynXNlwP8Ct0SvW9LS6C80ORv6vEh96bMi0RBpWLoY\n2Beyvz/YJiIiItKsRBqWXFR7ISIiInKOMufOPveY2UjgAefcmOD+fUCFc+7xkHMc8GDIZWudc2sb\n1l1prsxslD4fUl/6vEh96bMi0RBpWEoEdgA3AAeBjcDtzrkvots9ERERkfhKjOQi59xpM/tPYCXQ\nCnhZQUlERESao4hGlkRERERaiphU8FbBSgllZq+Y2WEz2x7SNtzMNprZVjPbZGZXBNtbm9mrZvaZ\nmW0zs4z49VziwczamNmG4P//XDObE2x/I/h52Wpmu81sa8j5fw5+ZnLN7Nfx/Q2ksZlZfvD//1Yz\n2xjSfpeZfWFmOWb2WLDtn0M+R1vNrNzMBsWv99IURPQYLpyQgpWZwAFgk5kt12O6Fu1V4FlgQUjb\nE8D9zrmVZjY2uH8dcCeBlwUGmVlHINvMrnAaAm0xnHOnzOw651xJcH7kh2Z2jXNusneOmc0DioK7\nU4LXDTKztkCumS1yzu1t/N5LnDhglHPuqNdgZtcBNwODnHNlwb9PcM4tBBYGzxkILHXOfRaHPksT\nEouRJRWslEqcc+uBY1WaC4DU4HYHAsEaoD+wJnhdIYEvxGGN0E05hzjnSoKbrQnMiwz9EjTgNuDP\nwaYCICX4D7UUoBT4rvF6K+cIq7L/78Cc4PeQ9/dJVVMJfEeJhBWLsKSClVIfvwaeNLO9wFzgvmD7\np8DNZtbKzHoBlwOXxKmPEidmlmBm24DDwBrnXG7I4X8CDjvndgE451YSCEcFQD4w1zlXhLQkDnjf\nzD4xszuDbX2Ba83sYzNba2Y1/aMrNHSL1Crqj+FQwUqpn5eBGc65pWY2CXgFGB38sz/wCbAH+D+g\nPG69lLhwzlUA6WaWCqysUivndmCRd66Z3QG0BboCFwDrzWy1c253I3db4udq51xB8FHbKjPLI/D9\nluacGxmcE7kY6O1dYGYjgJIqQVykRrEYWToAdA/Z705gdEkk1HDn3NLg9hICj29xzpU75+5xzg1x\nzk0g8Ijuy3h1UuLLOfct8C7BR7HBOUy3Am+EnHYVgXkn5cFHLR+hR7ctinOuIPhnIbCUwN8n+4G3\ngu2bgAozuzDksimEhG6RcGIRlj4B+ppZTzNrDUwGlsfg50jTtjPkTbfrCQYiM2trZinB7dFAmXMu\nL059lDgws4vMrENwuy2BEcetwcOZwBfOuYMhl+QR+AwR/OyMBPRCSQthZslm1j64nQLcCGwH4VOd\nEwAAANRJREFUlnHmc3Ep0No5901wPwGYhOYrST1F/TGcClZKVWb2ZyADuMjM9gH/Dfwb8LyZnQec\nDO4DdAZWmFkFgX8Z/kscuizx1RV4LfiFlgC87pxbHTw2mepzTF4EXg6WpkgAXnHO5TRabyXeOgNL\nA/P+SQQWOufeM7Mk4JXg56IU+NeQa64F9jrn8hu7s9I0qSiliIiISBgxKUopIiIi0lwoLImIiIiE\nobAkIiIiEobCkoiIiEgYCksiIiIiYSgsiYiIiIShsCQiIiIShsKSiIiISBj/Dy7pY8fo1ms8AAAA\nAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 112 }, { "cell_type": "code", "collapsed": false, "input": [ "import time" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 147 }, { "cell_type": "code", "collapsed": false, "input": [ "cs.start_record(\"fm.wav\")\n", "cs.send_score('i 1 0 20')\n", "time.sleep(20)\n", "cs.stop_record()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 148 }, { "cell_type": "code", "collapsed": false, "input": [ "!aplay fm.wav" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Playing WAVE 'fm.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo\r\n" ] } ], "prompt_number": 151 }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.display import Audio" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 149 }, { "cell_type": "code", "collapsed": false, "input": [ "Audio(filename='fm.wav')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " " ], "metadata": {}, "output_type": "pyout", "prompt_number": 150, "text": [ "" ] } ], "prompt_number": 150 }, { "cell_type": "code", "collapsed": false, "input": [ "%%csound\n", "\n", "instr 1\n", "\n", "kfreq chnget \"freq\"\n", "\n", "; data reader\n", "ags10 poscil 1, kfreq, gigs10\n", "aunrate poscil 1, kfreq, giunrate\n", "\n", "; modulator\n", "amod poscil 110 + ags10 * ags10 * 20, 55 + (aunrate * 80)\n", "\n", "; phasor + table reader is the carrier\n", "acarr poscil 0.2, 220 + amod\n", "\n", "outs acarr* 0.1, acarr * 0.1\n", "\n", "endin" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 182 }, { "cell_type": "code", "collapsed": false, "input": [ "cs.set_channel(\"freq\", 1/50.0)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 180 }, { "cell_type": "code", "collapsed": false, "input": [ "cs.send_score('i 1 0 50')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 184 }, { "cell_type": "code", "collapsed": false, "input": [ "cs.plot_table(102)\n", "cs.plot_table(101, reuse=True)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 183 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#Granular Synthesis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Parameter space (some possibilities):\n", "\n", " * Frequency of grain generation\n", " * Deviation from constant frequency for grain generation\n", " * Duration of the grain\n", " * Deviation of grain duration\n", " * Internal grain oscillation frequency\n", " * Deviation of internal grain oscillation frequency\n", " \n", "What's interesting in granular synthesis is that these parameters often map directly to clear perpectual concepts." ] }, { "cell_type": "code", "collapsed": false, "input": [ "cs.clear_log()" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "%%csound\n", "gisine ftgen 0, 0, 1024, 10, 1\n", "gihanning ftgen 0, 0, 1024, -20, 1" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "%%csound\n", "\n", "; http://www.csounds.com/manual/html/grain3.html\n", "\n", "gisine ftgen 0, 0, 1024, 10, 1\n", "gihanning ftgen 0, 0, 1024, -20, 1\n", "\n", "instr 1\n", " kphs = 0\n", " kfmd = 30\n", " kpmd = 0\n", " kgdur = 0.3 ; grain duration\n", " \n", " kcps = 440.0 ; frequency of oscillation inside grain\n", " kdens = 3; density, number of grains per second\n", " imaxovr = 100\n", " kfn = gisine\n", " iwfn = gihanning\n", " kfrpow = 0\n", " kprpow = 0\n", " iseed = 1 ; random seed\n", " \n", "ares grain3 kcps, kphs, kfmd, kpmd, kgdur, kdens, imaxovr, kfn, iwfn, \\\n", " kfrpow, kprpow\n", " \n", " outs ares, ares\n", "endin\n" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "cs.send_score('i 1 0 5')" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "cs.send_code('print gisine')" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "cs.print_log()" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "cs.plot_table(106)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##Granular synthesis of vowels" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%csound\n", ";example by Iain McCurdy from the FLOSS manual\n", "; http://write.flossmanuals.net/csound/preface/\n", "\n", ";FUNCTION TABLES STORING DATA FOR VARIOUS VOICE FORMANTS\n", ";BASS\n", "giBF1 ftgen 0, 0, -5, -2, 600, 400, 250, 400, 350\n", "giBF2 ftgen 0, 0, -5, -2, 1040, 1620, 1750, 750, 600\n", "giBF3 ftgen 0, 0, -5, -2, 2250, 2400, 2600, 2400, 2400\n", "giBF4 ftgen 0, 0, -5, -2, 2450, 2800, 3050, 2600, 2675\n", "giBF5 ftgen 0, 0, -5, -2, 2750, 3100, 3340, 2900, 2950\n", "\n", "giBDb1 ftgen 0, 0, -5, -2, 0,\t 0, 0, 0, 0\n", "giBDb2 ftgen 0, 0, -5, -2, -7,\t-12, -30, -11, -20\n", "giBDb3 ftgen 0, 0, -5, -2, -9,\t -9, -16, -21, -32\n", "giBDb4 ftgen 0, 0, -5, -2, -9,\t-12, -22, -20, -28\n", "giBDb5 ftgen 0, 0, -5, -2, -20,\t-18, -28, -40, -36\n", "\n", "giBBW1 ftgen 0, 0, -5, -2, 60, 40, 60, 40, 40\n", "giBBW2 ftgen 0, 0, -5, -2, 70, 80, 90, 80, 80\n", "giBBW3 ftgen 0, 0, -5, -2, 110, 100, 100, 100, 100\n", "giBBW4 ftgen 0, 0, -5, -2, 120, 120, 120, 120, 120\n", "giBBW5 ftgen 0, 0, -5, -2, 130, 120, 120, 120, 120\n", "\n", ";TENOR\n", "giTF1 ftgen 0, 0, -5, -2, 650, 400, 290, 400, 350\n", "giTF2 ftgen 0, 0, -5, -2, 1080, 1700, 1870, 800, 600\n", "giTF3 ftgen 0, 0, -5, -2, 2650,\t2600, 2800, 2600, 2700\n", "giTF4 ftgen 0, 0, -5, -2, 2900,\t3200, 3250, 2800, 2900\n", "giTF5 ftgen 0, 0, -5, -2, 3250,\t3580, 3540, 3000, 3300\n", "\n", "giTDb1 ftgen 0, 0, -5, -2, 0, 0, 0, 0, 0\n", "giTDb2 ftgen 0, 0, -5, -2, -6, -14, -15, -10, -20\n", "giTDb3 ftgen 0, 0, -5, -2, -7, -12, -18, -12, -17\n", "giTDb4 ftgen 0, 0, -5, -2, -8, -14, -20, -12, -14\n", "giTDb5 ftgen 0, 0, -5, -2, -22, -20, -30, -26, -26\n", "\n", "giTBW1 ftgen 0, 0, -5, -2, 80,\t 70, 40, 40, 40\n", "giTBW2 ftgen 0, 0, -5, -2, 90,\t 80, 90, 80, 60\n", "giTBW3 ftgen 0, 0, -5, -2, 120,\t100, 100, 100, 100\n", "giTBW4 ftgen 0, 0, -5, -2, 130,\t120, 120, 120, 120\n", "giTBW5 ftgen 0, 0, -5, -2, 140,\t120, 120, 120, 120\n", "\n", ";COUNTER TENOR\n", "giCTF1 ftgen 0, 0, -5, -2, 660, 440, 270, 430, 370\n", "giCTF2 ftgen 0, 0, -5, -2, 1120, 1800, 1850, 820, 630\n", "giCTF3 ftgen 0, 0, -5, -2, 2750, 2700, 2900, 2700, 2750\n", "giCTF4 ftgen 0, 0, -5, -2, 3000, 3000, 3350, 3000, 3000\n", "giCTF5 ftgen 0, 0, -5, -2, 3350, 3300, 3590, 3300, 3400\n", "\n", "giTBDb1 ftgen 0, 0, -5, -2, 0, 0, 0, 0, 0\n", "giTBDb2 ftgen 0, 0, -5, -2, -6, -14, -24, -10, -20\n", "giTBDb3 ftgen 0, 0, -5, -2, -23, -18, -24, -26, -23\n", "giTBDb4 ftgen 0, 0, -5, -2, -24, -20, -36, -22, -30\n", "giTBDb5 ftgen 0, 0, -5, -2, -38, -20, -36, -34, -30\n", "\n", "giTBW1 ftgen 0, 0, -5, -2, 80, 70, 40, 40, 40\n", "giTBW2 ftgen 0, 0, -5, -2, 90, 80, 90, 80, 60\n", "giTBW3 ftgen 0, 0, -5, -2, 120, 100, 100, 100, 100\n", "giTBW4 ftgen 0, 0, -5, -2, 130, 120, 120, 120, 120\n", "giTBW5 ftgen 0, 0, -5, -2, 140, 120, 120, 120, 120\n", "\n", ";ALTO\n", "giAF1 ftgen 0, 0, -5, -2, 800, 400, 350, 450, 325\n", "giAF2 ftgen 0, 0, -5, -2, 1150, 1600, 1700, 800, 700\n", "giAF3 ftgen 0, 0, -5, -2, 2800, 2700, 2700, 2830, 2530\n", "giAF4 ftgen 0, 0, -5, -2, 3500, 3300, 3700, 3500, 2500\n", "giAF5 ftgen 0, 0, -5, -2, 4950, 4950, 4950, 4950, 4950\n", "\n", "giADb1 ftgen 0, 0, -5, -2, 0, 0, 0, 0, 0\n", "giADb2 ftgen 0, 0, -5, -2, -4, -24, -20, -9, -12\n", "giADb3 ftgen 0, 0, -5, -2, -20, -30, -30, -16, -30\n", "giADb4 ftgen 0, 0, -5, -2, -36, -35, -36, -28, -40\n", "giADb5 ftgen 0, 0, -5, -2, -60, -60, -60, -55, -64\n", "\n", "giABW1 ftgen 0, 0, -5, -2, 50, 60, 50, 70, 50\n", "giABW2 ftgen 0, 0, -5, -2, 60, 80, 100, 80, 60\n", "giABW3 ftgen 0, 0, -5, -2, 170, 120, 120, 100, 170\n", "giABW4 ftgen 0, 0, -5, -2, 180, 150, 150, 130, 180\n", "giABW5 ftgen 0, 0, -5, -2, 200, 200, 200, 135, 200\n", "\n", ";SOPRANO\n", "giSF1 ftgen 0, 0, -5, -2, 800, 350, 270, 450, 325\n", "giSF2 ftgen 0, 0, -5, -2, 1150, 2000, 2140, 800, 700\n", "giSF3 ftgen 0, 0, -5, -2, 2900, 2800, 2950, 2830, 2700\n", "giSF4 ftgen 0, 0, -5, -2, 3900, 3600, 3900, 3800, 3800\n", "giSF5 ftgen 0, 0, -5, -2, 4950, 4950, 4950, 4950, 4950\n", "\n", "giSDb1 ftgen 0, 0, -5, -2, 0, 0, 0, 0, 0\n", "giSDb2 ftgen 0, 0, -5, -2, -6, -20, -12, -11, -16\n", "giSDb3 ftgen 0, 0, -5, -2, -32, -15, -26, -22, -35\n", "giSDb4 ftgen 0, 0, -5, -2, -20, -40, -26, -22, -40\n", "giSDb5 ftgen 0, 0, -5, -2, -50, -56, -44, -50, -60\n", "\n", "giSBW1 ftgen 0, 0, -5, -2, 80, 60, 60, 70, 50\n", "giSBW2 ftgen 0, 0, -5, -2, 90, 90, 90, 80, 60\n", "giSBW3 ftgen 0, 0, -5, -2, 120, 100, 100, 100, 170\n", "giSBW4 ftgen 0, 0, -5, -2, 130, 150, 120, 130, 180\n", "giSBW5 ftgen 0, 0, -5, -2, 140, 200, 120, 135, 200\n", "\n", "gisine ftgen 0, 0, 4096, 10, 1\n", "giexp ftgen 0, 0, 1024, 19, 0.5, 0.5, 270, 0.5\n", "\n", "instr 1\n", " kFund expon p4,p3,p5 ; fundemental\n", " kVow line p6,p3,p7 ; vowel select\n", " kBW line p8,p3,p9 ; bandwidth factor\n", " iVoice = p10 ; voice select\n", "\n", " ; read formant cutoff frequenies from tables\n", " kForm1 tablei kVow*5,giBF1+(iVoice*15)\n", " kForm2 tablei kVow*5,giBF1+(iVoice*15)+1\n", " kForm3 tablei kVow*5,giBF1+(iVoice*15)+2\n", " kForm4 tablei kVow*5,giBF1+(iVoice*15)+3\n", " kForm5 tablei kVow*5,giBF1+(iVoice*15)+4\n", " ; read formant intensity values from tables\n", " kDB1 tablei kVow*5,giBF1+(iVoice*15)+5\n", " kDB2 tablei kVow*5,giBF1+(iVoice*15)+6\n", " kDB3 tablei kVow*5,giBF1+(iVoice*15)+7\n", " kDB4 tablei kVow*5,giBF1+(iVoice*15)+8\n", " kDB5 tablei kVow*5,giBF1+(iVoice*15)+9\n", " ; read formant bandwidths from tables\n", " kBW1 tablei kVow*5,giBF1+(iVoice*15)+10\n", " kBW2 tablei kVow*5,giBF1+(iVoice*15)+11\n", " kBW3 tablei kVow*5,giBF1+(iVoice*15)+12\n", " kBW4 tablei kVow*5,giBF1+(iVoice*15)+13\n", " kBW5 tablei kVow*5,giBF1+(iVoice*15)+14\n", " ; create resonant formants using fof opcode\n", " koct = 1\t\n", " aForm1 fof ampdb(kDB1),kFund,kForm1,0,kBW1,0.003,0.02,0.007,\\\n", " 1000,gisine,giexp,3600\n", " aForm2 fof ampdb(kDB2),kFund,kForm2,0,kBW2,0.003,0.02,0.007,\\\n", " 1000,gisine,giexp,3600\n", " aForm3 fof ampdb(kDB3),kFund,kForm3,0,kBW3,0.003,0.02,0.007,\\\n", " 1000,gisine,giexp,3600\n", " aForm4 fof ampdb(kDB4),kFund,kForm4,0,kBW4,0.003,0.02,0.007,\\\n", " 1000,gisine,giexp,3600\n", " aForm5 fof ampdb(kDB5),kFund,kForm5,0,kBW5,0.003,0.02,0.007,\\\n", " 1000,gisine,giexp,3600\n", "\n", " ; formants are mixed\n", " aMix sum aForm1,aForm2,aForm3,aForm4,aForm5\n", " kEnv linseg 0,3,1,p3-6,1,3,0 ; an amplitude envelope\n", " outs aMix*kEnv*0.3, aMix*kEnv*0.3 ; send audio to outputs\n", "endin\n" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "cs.send_score('''\n", "; p4 = fundamental begin value (c.p.s.)\n", "; p5 = fundamental end value\n", "; p6 = vowel begin value (0 - 1 : a e i o u)\n", "; p7 = vowel end value\n", "; p8 = bandwidth factor begin (suggested range 0 - 2)\n", "; p9 = bandwidth factor end\n", "; p10 = voice (0=bass; 1=tenor; 2=counter_tenor; 3=alto; 4=soprano)\n", "\n", "; p1 p2 p3 p4 p5 p6 p7 p8 p9 p10\n", "i 1 0 10 50 100 0 1 2 0 0\n", "i 1 8 . 78 77 1 0 1 0 1\n", "i 1 16 . 150 118 0 1 1 0 2\n", "i 1 24 . 200 220 1 0 0.2 0 3\n", "i 1 32 . 400 800 0 1 0.2 0 4\n", "''')" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#One to many mappings" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First decide on a mapping." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#Parameters from data analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When we look at data, we don't see the values. There is othre important information that we pick up:\n", "\n", " * Slope\n", " * Overall shape\n", " * Smoothness\n", " * Peaks\n", " \n", "Simple rules can make these features audible" ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }