Commit 312f83ee authored by Steve Tjoa's avatar Steve Tjoa

pitch transcription, lsh

parent 68a8d23c
{ {
"metadata": { "metadata": {
"name": "", "name": "",
"signature": "sha256:1e57ed1516a61260e593f53b74843c63ebc0cf1bf4a9edcdd0616da4d46b32be" "signature": "sha256:1f044aa25a32fe434bce4255de83af940291fe22648bb0bd1aa00a36fab6d135"
}, },
"nbformat": 3, "nbformat": 3,
"nbformat_minor": 0, "nbformat_minor": 0,
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"prompt_number": 79 "prompt_number": 2
}, },
{ {
"cell_type": "heading", "cell_type": "heading",
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"prompt_number": 80 "prompt_number": 3
}, },
{ {
"cell_type": "code", "cell_type": "code",
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"prompt_number": 81 "prompt_number": 4
}, },
{ {
"cell_type": "code", "cell_type": "code",
...@@ -99,13 +99,13 @@ ...@@ -99,13 +99,13 @@
{ {
"metadata": {}, "metadata": {},
"output_type": "pyout", "output_type": "pyout",
"prompt_number": 82, "prompt_number": 5,
"text": [ "text": [
"26" "24"
] ]
} }
], ],
"prompt_number": 82 "prompt_number": 5
}, },
{ {
"cell_type": "heading", "cell_type": "heading",
...@@ -146,7 +146,7 @@ ...@@ -146,7 +146,7 @@
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"prompt_number": 83 "prompt_number": 6
}, },
{ {
"cell_type": "code", "cell_type": "code",
...@@ -154,7 +154,8 @@ ...@@ -154,7 +154,8 @@
"input": [], "input": [],
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [] "outputs": [],
"prompt_number": 6
}, },
{ {
"cell_type": "code", "cell_type": "code",
...@@ -187,7 +188,7 @@ ...@@ -187,7 +188,7 @@
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"prompt_number": 84 "prompt_number": 7
}, },
{ {
"cell_type": "code", "cell_type": "code",
...@@ -237,7 +238,8 @@ ...@@ -237,7 +238,8 @@
], ],
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [] "outputs": [],
"prompt_number": 8
}, },
{ {
"cell_type": "heading", "cell_type": "heading",
...@@ -256,7 +258,8 @@ ...@@ -256,7 +258,8 @@
], ],
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [] "outputs": [],
"prompt_number": 9
}, },
{ {
"cell_type": "heading", "cell_type": "heading",
...@@ -275,7 +278,8 @@ ...@@ -275,7 +278,8 @@
], ],
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [] "outputs": [],
"prompt_number": 10
}, },
{ {
"cell_type": "heading", "cell_type": "heading",
...@@ -294,7 +298,68 @@ ...@@ -294,7 +298,68 @@
], ],
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [] "outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"../train/brahms_s1_1_perlman_02.wav 8.69369369369\n",
"../train/bach_p3_1_perlman_01.wav 8.22522522523\n",
"../train/Beethoven_vln_sonata5_Francescatti_05.wav 8.22413793103\n",
"../train/Beethoven_vln_sonata5_Francescatti_03.wav 7.79518072289\n",
"../train/brahms_s1_1_perlman_04.wav 7.40540540541\n",
"../train/brahms_s1_1_perlman_01.wav 7.31531531532\n",
"../train/Beethoven_vln_sonata5_Zukerman_03.wav 6.53684210526\n",
"../train/brahms_s1_1_perlman_05.wav 6.18918918919\n",
"../train/Beethoven_vln_sonata5_Zukerman_01.wav 6.15094339623\n",
"../train/Beethoven_vln_sonata5_Francescatti_01.wav 6.125\n",
"../train/Beethoven_vln_sonata5_Francescatti_02.wav 5.984375\n",
"../train/Beethoven_vln_sonata5_Oistrakh_02.wav 5.95275590551\n",
"../train/brahms_s1_1_perlman_03.wav 5.94594594595\n",
"../train/Beethoven_vln_sonata5_Francescatti_04.wav 5.79245283019\n",
"../train/lady_madonna_crop.wav 5.70535714286\n",
"../train/brahms_rhapsody_02.wav 5.48823529412\n",
"../train/brahms_s1_1_perlman_06.wav 5.43243243243\n",
"../train/moonlight.wav 5.4\n",
"../train/office_theme.wav 5.39959839357\n",
"../train/brandenburg3_01.wav 5.37688442211\n",
"../train/lady_madonna.wav 5.21385542169\n",
"../train/Beethoven_vln_sonata5_Oistrakh_01.wav 5.11403508772\n",
"../train/bach_s3_3_szeryng_01.wav 4.89189189189\n",
"../train/bach_p3_1_heifetz_04.wav 4.87387387387\n",
"../train/konstantine.wav 4.87072243346\n",
"../train/Bach Vln Partita3 - Milstein 1955 - 01.wav 4.81233933162\n",
"../train/Beethoven_vln_sonata5_Zukerman_02.wav 4.62222222222\n",
"../train/Beethoven_vln_sonata5_Zukerman_04.wav 4.57391304348\n",
"../train/dont_stop_believin.wav 4.57256461233\n",
"../train/bach_p3_1_perlman_05.wav 4.4954954955\n",
"../train/Beethoven_vln_sonata5_Zukerman_05.wav 4.45833333333\n",
"../train/Beethoven_vln_sonata5_Oistrakh_03.wav 4.39772727273\n",
"../train/bach_p3_1_perlman_04.wav 4.33333333333\n",
"../train/Bach Vln Partita3 - Milstein 1955 - 03.wav 4.24712643678\n",
"../train/bach_p3_1_heifetz_01.wav 4.22522522523\n",
"../train/bach_p3_1_perlman_03.wav 4.17117117117\n",
"../train/Beethoven_vln_sonata5_Oistrakh_05.wav 4.07518796992\n",
"../train/Beethoven_vln_sonata5_Oistrakh_04.wav 4.01785714286\n",
"../train/Bach Vln Partita3 - Fischbach 2004 - 01.wav 3.77605321508\n",
"../train/bach_p3_1_perlman_02.wav 3.72972972973\n",
"../train/bach_s3_3_szeryng_05.wav 3.64864864865\n",
"../train/bach_p3_1_perlman_06.wav 3.51351351351\n",
"../train/brahms_rhapsody_01.wav 3.38855421687\n",
"../train/Bach Vln Partita3 - Fischbach 2004 - 03.wav 3.17877094972\n",
"../train/bach_p3_1_heifetz_03.wav 3.02702702703\n",
"../train/bach_p3_1_heifetz_02.wav 3.00900900901\n",
"../train/bach_s3_3_szeryng_06.wav 2.95495495495\n",
"../train/bach_s3_3_szeryng_02.wav 2.74774774775\n",
"../train/Bach Vln Sonata1 - Milstein 1954 - 02.wav 2.70438799076\n",
"../train/bach_p3_1_heifetz_05.wav 2.63963963964\n",
"../train/bach_s3_3_szeryng_04.wav 2.61261261261\n",
"../train/bach_s3_3_szeryng_03.wav 2.36936936937\n",
"../train/Bach Vln Sonata1 - Fischbach 2004 - 02.wav 2.36225596529\n"
]
}
],
"prompt_number": 11
}, },
{ {
"cell_type": "code", "cell_type": "code",
...@@ -302,7 +367,8 @@ ...@@ -302,7 +367,8 @@
"input": [], "input": [],
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [] "outputs": [],
"prompt_number": 11
} }
], ],
"metadata": {} "metadata": {}
......
This source diff could not be displayed because it is too large. You can view the blob instead.
{ {
"metadata": { "metadata": {
"name": "", "name": "",
"signature": "sha256:bf70df398956b11061c08c16b7ac0d48021c764eb731784865a2d5d1b9f1ce89" "signature": "sha256:3a3278f7c6fb206a34581be477af529e901600f877d2eeeb0456448031912235"
}, },
"nbformat": 3, "nbformat": 3,
"nbformat_minor": 0, "nbformat_minor": 0,
...@@ -29,23 +29,25 @@ ...@@ -29,23 +29,25 @@
"collapsed": false, "collapsed": false,
"input": [ "input": [
"import essentia.standard as ess\n", "import essentia.standard as ess\n",
"loader = ess.MonoLoader(filename='default.wav', sampleRate=44100)\n", "loader = ess.MonoLoader(filename='../test/test.wav', sampleRate=44100)\n",
"signal_in = loader()" "signal_in = loader()"
], ],
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [] "outputs": [],
"prompt_number": 1
}, },
{ {
"cell_type": "code", "cell_type": "code",
"collapsed": false, "collapsed": false,
"input": [ "input": [
"from IPython.display import Audio\n", "from IPython.display import Audio\n",
"Audio(data=signal_in, rate=44100)" "#Audio(data=signal_in, rate=44100)"
], ],
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [] "outputs": [],
"prompt_number": 2
}, },
{ {
"cell_type": "heading", "cell_type": "heading",
...@@ -55,6 +57,80 @@ ...@@ -55,6 +57,80 @@
"Find each note and its pitch." "Find each note and its pitch."
] ]
}, },
{
"cell_type": "code",
"collapsed": false,
"input": [
"def get_onsets(signal_in):\n",
" onset_times, onset_rate = ess.OnsetRate()(signal_in)\n",
" return onset_times"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"yin = ess.PitchYinFFT()\n",
"spectrum = ess.Spectrum()\n",
"\n",
"def get_pitch(segment):\n",
" if len(segment) < 4096:\n",
" N = len(segment) if len(segment) % 2 == 0 else len(segment) - 1\n",
" else:\n",
" N = 4096\n",
" pitch, pitch_conf = yin(spectrum(segment[:N]))\n",
" return pitch"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def generate_sine(pitch, n_duration):\n",
" #print midi, f0\n",
" n = arange(n_duration)\n",
" return 0.2*sin(2*pi*pitch*n/44100.0)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def transcribe_pitch(signal_in):\n",
" \n",
" signal_out = zeros(len(signal_in))\n",
" \n",
" # get onsets\n",
" onsets = get_onsets(signal_in)\n",
" \n",
" # get pitches\n",
" for i in range(len(onsets)-1):\n",
" n0 = int(onsets[i]*44100)\n",
" n1 = int(onsets[i+1]*44100)\n",
" pitch = get_pitch(signal_in[n0:n1])\n",
" \n",
" signal_out[n0:n1] = generate_sine(pitch, n1-n0)\n",
" \n",
" return signal_out\n",
" "
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
},
{ {
"cell_type": "code", "cell_type": "code",
"collapsed": true, "collapsed": true,
...@@ -63,7 +139,8 @@ ...@@ -63,7 +139,8 @@
], ],
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [] "outputs": [],
"prompt_number": 7
}, },
{ {
"cell_type": "heading", "cell_type": "heading",
...@@ -77,11 +154,24 @@ ...@@ -77,11 +154,24 @@
"cell_type": "code", "cell_type": "code",
"collapsed": false, "collapsed": false,
"input": [ "input": [
"Audio(data=signal_out, rate=44100)" "import essentia\n",
"#Audio(data=signal_out, rate=44100)\n",
"signal_out = sum([signal_out, signal_in], axis=0)\n",
"ess.MonoWriter(filename='../test/out.wav')(essentia.array(signal_out))"
], ],
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [] "outputs": [],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 8
} }
], ],
"metadata": {} "metadata": {}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment