{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Flute\n", "\n", "## Objectif de ce fichier\n", "\n", "pipopipopipo\n", "\n", "## Code\n", "\n", "On importe le son de la flûte.\n", "\n", "On affiche et on joue le son pour s'assurer qu'il est bien **Ne fonctionne pas ?**" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "using WAV\n", "using Plots\n", "using WORLD\n", "using ImageView\n", "using LinearAlgebra\n", "using DSP" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [], "source": [ "y_flute, fs_flute = wavread(\"fluteircam.wav\");\n", "y_flute = vec(y_flute);\n", "fs_flute = floor(Int, fs_flute);\n", "t_flute = (0 : 1 : size(y_flute)[1]-1)/fs_flute;" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "0.0\n", "\n", "\n", "2.5\n", "\n", "\n", "5.0\n", "\n", "\n", "7.5\n", "\n", "\n", "10.0\n", "\n", "\n", "12.5\n", "\n", "\n", "-0.2\n", "\n", "\n", "-0.1\n", "\n", "\n", "0.0\n", "\n", "\n", "0.1\n", "\n", "\n", "0.2\n", "\n", "\n", "Flute\n", "\n", "\n", "\n", "\n", "\n", "\n", "Signal brut\n", "\n", "\n" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#wavplay(y_flute, fs_flute);\n", "plot(t_flute, y_flute, title=\"Flute\",label=[\"Signal brut\"])" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [], "source": [ "opt = HarvestOption(300.0, 800.0, 0.2)#floor and ceil freq, period\n", "f0, timeaxis = harvest(y_flute, fs_flute, opt);" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "0.0\n", "\n", "\n", "2.5\n", "\n", "\n", "5.0\n", "\n", "\n", "7.5\n", "\n", "\n", "10.0\n", "\n", "\n", "12.5\n", "\n", "\n", "0\n", "\n", "\n", "200\n", "\n", "\n", "400\n", "\n", "\n", "600\n", "\n", "\n", "\n", "\n", "\n", "\n", "y1\n", "\n", "\n" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot(timeaxis, f0)" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [], "source": [ "opt = DioOption(f0floor=300.0, f0ceil=800.0, channels_in_octave=2.0,\n", " period=0.2, speed=1)\n", "f0, timeaxis = dio(y_flute, fs_flute, opt);" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "0.0\n", "\n", "\n", "2.5\n", "\n", "\n", "5.0\n", "\n", "\n", "7.5\n", "\n", "\n", "10.0\n", "\n", "\n", "12.5\n", "\n", "\n", "0\n", "\n", "\n", "200\n", "\n", "\n", "400\n", "\n", "\n", "600\n", "\n", "\n", "\n", "\n", "\n", "\n", "y1\n", "\n", "\n" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot(timeaxis, f0)" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [], "source": [ "spectrogram = cheaptrick(y_flute, fs_flute, timeaxis, f0);" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [], "source": [ " #normalize(spectrogram, 2)" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(1025, 68426)\n" ] } ], "source": [ "println(size(spectrogram))" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [], "source": [ "#imshow(spectrogram)" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "ename": "ErrorException", "evalue": "function Array does not accept keyword arguments", "output_type": "error", "traceback": [ "function Array does not accept keyword arguments", "", "Stacktrace:", " [1] kwfunc(::Any) at ./boot.jl:332", " [2] top-level scope at In[76]:3" ] } ], "source": [ "s = y_flute\n", "fs = fs_flute\n", "S = spectrogram(s[:,1], convert(Int, 25e-3*fs), convert(Int, 10e-3*fs); window=hanning)\n", "t = time(S)\n", "f = freq(S)\n", "imshow(flipud(log10(power(S))), extent=[first(t), last(t), fs*first(f), fs*last(f)], aspect=\"auto\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Julia 1.2.0", "language": "julia", "name": "julia-1.2" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.2.0" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 1, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 2 }