{
  "nbformat_minor": 0, 
  "nbformat": 4, 
  "cells": [
    {
      "execution_count": null, 
      "cell_type": "code", 
      "source": [
        "%matplotlib inline"
      ], 
      "outputs": [], 
      "metadata": {
        "collapsed": false
      }
    }, 
    {
      "source": [
        "\nArtificial Vowels\n-----------------\nThis example implements the artificial vowels from\nCulling, J. F. and Summerfield, Q. (1995a). \"Perceptual segregation of\nconcurrent speech sounds: absence of across-frequency grouping by common\ninteraural delay\" J. Acoust. Soc. Am. 98, 785-797.\n\n"
      ], 
      "cell_type": "markdown", 
      "metadata": {}
    }, 
    {
      "execution_count": null, 
      "cell_type": "code", 
      "source": [
        "from brian2 import *\nfrom brian2hears import *\n\nduration = 409.6*ms\nwidth = 150*Hz/2\nsamplerate = 10*kHz\n\nset_default_samplerate(samplerate)\n\ncentres = [225*Hz, 625*Hz, 975*Hz, 1925*Hz]\nvowels = {\n    'ee':[centres[0], centres[3]],\n    'ar':[centres[1], centres[2]],\n    'oo':[centres[0], centres[2]],\n    'er':[centres[1], centres[3]]\n    }\n\ndef generate_vowel(vowel):\n    vowel = vowels[vowel]\n    x = whitenoise(duration)\n    y = fft(asarray(x).flatten())\n    f = fftfreq(len(x), 1/samplerate)\n    I = zeros(len(f), dtype=bool)\n    for cf in vowel:\n        I = I|((abs(f)<cf+width)&(abs(f)>cf-width))\n    I = ~I\n    y[I] = 0\n    x = ifft(y)\n    return Sound(x.real)\n\nv1 = generate_vowel('ee').ramp()\nv2 = generate_vowel('ar').ramp()\nv3 = generate_vowel('oo').ramp()\nv4 = generate_vowel('er').ramp()\n\nfor s in [v1, v2, v3, v4]:\n    s.play(normalise=True, sleep=True)\n\ns1 = Sound((v1, v2))\n#s1.play(normalise=True, sleep=True)\n\ns2 = Sound((v3, v4))\n#s2.play(normalise=True, sleep=True)\n\nv1.save('mono_sound.wav')\ns1.save('stereo_sound.wav')\n\nsubplot(211)\nplot(v1.times, v1)\nsubplot(212)\nv1.spectrogram()\nshow()"
      ], 
      "outputs": [], 
      "metadata": {
        "collapsed": false
      }
    }
  ], 
  "metadata": {
    "kernelspec": {
      "display_name": "Python 2", 
      "name": "python2", 
      "language": "python"
    }, 
    "language_info": {
      "mimetype": "text/x-python", 
      "nbconvert_exporter": "python", 
      "name": "python", 
      "file_extension": ".py", 
      "version": "2.7.15", 
      "pygments_lexer": "ipython2", 
      "codemirror_mode": {
        "version": 2, 
        "name": "ipython"
      }
    }
  }
}