Commit 8dcfe377 authored by Steve Tjoa's avatar Steve Tjoa

first exercise is done

parent da2b4167
{ {
"metadata": { "metadata": {
"name": "", "name": "",
"signature": "sha256:a069a763c147924d86cc5474e99b4a02cd882af276a571236d3569ba34892397" "signature": "sha256:41f4a472d3da99aa14f01f67bcbd986a65fa3ebff6f2114dd6f3b585eb677d2a"
}, },
"nbformat": 3, "nbformat": 3,
"nbformat_minor": 0, "nbformat_minor": 0,
...@@ -16,13 +16,420 @@ ...@@ -16,13 +16,420 @@
"Exercise: Understanding Audio Features through Sonification" "Exercise: Understanding Audio Features through Sonification"
] ]
}, },
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is an *exercise* notebook. It's a playground for your Python code. Feel free to write and execute your code without fear.\n",
"\n",
"When you see a cell that looks like this:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plot?"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 49
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"that is a cue to use a particular command, in this case, `plot`. Run the cell to see documentation for that command. (To quickly close the Help window, press `q`.) \n",
"\n",
"For more documentation, visit the links in the Help menu above. Also see the other notebooks; all the exercises here are covered somewhere else in separate notebooks."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This exercise is loosely based upon \"Lab 1\" from previous MIR workshops ([2010](https://ccrma.stanford.edu/workshops/mir2010/Lab1_2010.pdf))."
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Goals"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this lab, you will segment, feature extract, and analyze audio files."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. Detect onsets in an audio signal.\n",
"2. Segment the audio signal at each onset.\n",
"3. Compute features for each segment.\n",
"4. Gain intuition into the features by listening to each segment separately."
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Step 1: Retrieve Audio"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Download the file `simpleLoop.wav` onto your local machine."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import urllib\n",
"url = 'https://ccrma.stanford.edu/workshops/mir2014/audio/simpleLoop.wav'\n",
"urllib.urlretrieve?"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 50
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Save the audio signal into an array."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from essentia.standard import MonoLoader\n",
"fs = 44100\n",
"MonoLoader?"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 51
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Listen to the audio signal."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from IPython.display import Audio\n",
"Audio?"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 52
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Display the audio signal."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plot?"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 53
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Display the spectrogram."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"specgram?"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 54
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Step 2: Detect Onsets"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Find the times, in seconds, when onsets occur in the audio signal."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from essentia.standard import OnsetRate\n",
"OnsetRate?\n",
"onset_times = array([0]) # placeholder"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 60
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Convert the onset times into sample indices."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"onset_samples = int(fs*onset_times)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 61
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Play a \"beep\" at each onset."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from essentia.standard import AudioOnsetsMarker\n",
"AudioOnsetsMarker?"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 62
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Step 3: Segment the Audio"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Save into an array, `segments`, 100-ms segments beginning at each onset."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"frame_sz = int(0.1*fs)\n",
"segments = array([zeros(frame_sz), ones(frame_sz)]) # placeholder"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 68
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is a function that adds 300 ms of silence onto the end of each segment and concatenates them into one signal.\n",
"\n",
"Later, we will use this function to listen to each segment, perhaps sorted in a different order."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def concatenate_segments(segments, fs=44100, pad_time=0.3):\n",
" padded_segments = [concatenate([segment, zeros(int(pad_time*fs))]) for segment in segments]\n",
" return concatenate(padded_segments)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 69
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Listen to the newly concatenated signal."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"concatenated_signal = concatenate_segments(segments, fs)\n",
"Audio?"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 70
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Step 4: Extract Features"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For each segment, compute the zero crossing rate."
]
},
{ {
"cell_type": "code", "cell_type": "code",
"collapsed": false, "collapsed": false,
"input": [], "input": [
"from essentia.standard import ZeroCrossingRate\n",
"ZeroCrossingRate?\n",
"zcrs = []"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 71
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use `argsort` to find an index array, `ind`, such that `segments[ind]` is sorted by zero crossing rate."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"argsort?\n",
"ind = arange(2) # placeholder"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 76
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sort the segments by zero crossing rate, and concatenate the sorted segments."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"concatenated_signal = concatenate_segments(segments[ind], fs)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 77
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Step 5: Listen to Segments"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Listen to the sorted segments. What do you hear?"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"Audio?"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 78
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Bonus"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Repeat the steps above for the following audio files:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"url = 'https://ccrma.stanford.edu/workshops/mir2014/audio/CongaGroove-mono.wav'\n",
"url = 'https://ccrma.stanford.edu/workshops/mir2014/audio/125BOUNC-mono.WAV'"
],
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [] "outputs": [],
"prompt_number": 79
} }
], ],
"metadata": {} "metadata": {}
......
{ {
"metadata": { "metadata": {
"name": "", "name": "",
"signature": "sha256:7c15cdd0c7ac4f93dc3bf54d6fa1d08e5b83d5f6fdf4ec667d54f53c8e557af0" "signature": "sha256:ec5325b8887f433625d9d323c6c8cf860bd1a899ccb8df64b38f984442c1c859"
}, },
"nbformat": 3, "nbformat": 3,
"nbformat_minor": 0, "nbformat_minor": 0,
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
] ]
} }
], ],
"prompt_number": 2 "prompt_number": 1
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
...@@ -65,9 +65,9 @@ ...@@ -65,9 +65,9 @@
{ {
"metadata": {}, "metadata": {},
"output_type": "pyout", "output_type": "pyout",
"prompt_number": 3, "prompt_number": 2,
"text": [ "text": [
"<matplotlib.text.Text at 0x3496b10>" "<matplotlib.text.Text at 0x2a34410>"
] ]
}, },
{ {
...@@ -75,11 +75,11 @@ ...@@ -75,11 +75,11 @@
"output_type": "display_data", "output_type": "display_data",
"png": "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\ngg==\n", "png": "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\ngg==\n",
"text": [ "text": [
"<matplotlib.figure.Figure at 0x3493650>" "<matplotlib.figure.Figure at 0x2a28f10>"
] ]
} }
], ],
"prompt_number": 3 "prompt_number": 2
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
...@@ -109,13 +109,13 @@ ...@@ -109,13 +109,13 @@
], ],
"metadata": {}, "metadata": {},
"output_type": "pyout", "output_type": "pyout",
"prompt_number": 4, "prompt_number": 3,
"text": [ "text": [
"<IPython.lib.display.Audio at 0x321b610>" "<IPython.lib.display.Audio at 0x29376d0>"
] ]
} }
], ],
"prompt_number": 4 "prompt_number": 3
}, },
{ {
"cell_type": "heading", "cell_type": "heading",
...@@ -154,7 +154,7 @@ ...@@ -154,7 +154,7 @@
] ]
} }
], ],
"prompt_number": 5 "prompt_number": 4
}, },
{ {
"cell_type": "heading", "cell_type": "heading",
...@@ -194,13 +194,13 @@ ...@@ -194,13 +194,13 @@
], ],
"metadata": {}, "metadata": {},
"output_type": "pyout", "output_type": "pyout",
"prompt_number": 6, "prompt_number": 5,
"text": [ "text": [
"<IPython.lib.display.Audio at 0x33223d0>" "<IPython.lib.display.Audio at 0x2f2ded0>"
] ]
} }
], ],
"prompt_number": 6 "prompt_number": 5
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
...@@ -214,95 +214,7 @@ ...@@ -214,95 +214,7 @@
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": []
"Lab 1 \n",
"=====\n",
"\n",
"**Basic Feature Extraction and Classification**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this lab, you will segment, feature extract, and analyze audio files."
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Goals"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. Detect onsets in an audio signal.\n",
"2. Segment the audio signal at each onset.\n",
"3. Compute features for each segment.\n",
"4. Gain intuition into the features by listening to each segment separately."
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Segmentation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" For debugging, we have function which generates mixes of the original audio file and onset times. This is demonstrated with `test_onsets.m`.\n",
"\n",
" One of Matlab's greatest features is its rich and easy visualization functions. Visualizing your data at every possible step in the algorithm development process not only builds a practical understanding of the variables, parameters and results, but it greatly aids debugging. \n",
" \n",
"8. Plot the audio file in a figure window. \n",
"\n",
" plot(x)\n",
"\n",
"9. Now, add a marker showing the position of each onset on top of the waveforms. \n",
"\n",
" plot(x); hold on; plot(onsets,0.2,'rx')\n",
"\n",
"10. Adding text markers to your plots can further aid in debugging or visualizing problems. Label each onset with it's respective onset number with the following simple loop:\n",
"\n",
" for i=1:numonsets\n",
" text(onsets(i),0.2,num2str(i)); % num2st converts an number to a string for display purposes\n",
" end\n",
"\n",
" Labeling the data is crucial. Add a title and axis to the figures. (ylabel, xlabel, title.)\n",
"\n",
" xlabel('seconds')\n",
" ylabel('magnitude')\n",
" title('my onset plot')\n",
"\n",
"11. Now that we can view the various onsets, try out the onset detector and visualization on a variety of other audio examples located in `/usr/ccrma/courses/mir2013/audio`. Continue to load the various audio files and run the onset detector - does it seem like it works well? If not, yell at Leigh.\n",
"\n",
" Segmenting audio in Frames\n",
" As we learned in lecture, it's common to chop up the audio into fixed-frames. These frames are then further analyzed, processed, or feature extracted. We're going to analyze the audio in 100 ms frames starting at each onset. \n",
"\n",
"12. Create a loop which carves up the audio in fixed-size frames (100ms), starting at the onsets.\n",
"\n",
"13. Inside of your loop, plot each frame, and play the audio for each frame. \n",
"\n",
" % Loop to carve up audio into onset-based frames\n",
" frameSize = 0.100 *fs; % sec\n",
" for i=1:numonsets\n",
" frames{i}= x(onsets(i):onsets(i)+frameSize);\n",
" figure(1);\n",
" plot(frames{i}); title(['frame ' num2str(i)]); \n",
" sound(frames{i} ,fs);\n",
" pause(0.5)\n",
" end\n",
" \n",
" Feature extract your frames"
]
}, },
{ {
"cell_type": "code", "cell_type": "code",
...@@ -314,7 +226,7 @@ ...@@ -314,7 +226,7 @@
"language": "python", "language": "python",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"prompt_number": 7 "prompt_number": 6
}, },
{ {
"cell_type": "code", "cell_type": "code",
...@@ -349,9 +261,9 @@ ...@@ -349,9 +261,9 @@
], ],
"metadata": {}, "metadata": {},
"output_type": "pyout", "output_type": "pyout",
"prompt_number": 8, "prompt_number": 7,
"text": [ "text": [
"<IPython.lib.display.Audio at 0x3322110>" "<IPython.lib.display.Audio at 0x2937550>"
] ]
}, },
{ {
...@@ -359,60 +271,11 @@ ...@@ -359,60 +271,11 @@
"output_type": "display_data", "output_type": "display_data",
"png": "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\nYWAYhmFU/H+7hlv+IS1F9gAAAABJRU5ErkJggg==\n", "png": "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\nYWAYhmFU/H+7hlv+IS1F9gAAAABJRU5ErkJggg==\n",
"text": [ "text": [
"<matplotlib.figure.Figure at 0x33224d0>" "<matplotlib.figure.Figure at 0x2a28e50>"
] ]
} }
], ],
"prompt_number": 8 "prompt_number": 7
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Feature Extraction"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"14. Create a loop which extracts the Zero Crossing Rate for each frame, and stores it in an array. Your loop will select 100ms (in samples, this value is = fs * 0.1) , starting at the onsets, and obtain the number of zero crossings in that frame. \n",
"\n",
" The command `[z] = zcr(x)` returns the number of zero crossings for a vector x.\n",
" Don't forget to store the value of z in a feature array for each frame.\n",
"\n",
" clear features\n",
" % Extract Zero Crossing Rate from all frames and store it in \"features(i,1)\"\n",
" for i=1:numonsets\n",
" features(i,1) = zcr(frames{i})\n",
" end\n",
" \n",
" For simpleLoop.wav, you should now have a feature array of 5 x 1 - which is the 5 frames (one at each detected onset) and 1 feature (zcr) for each frame. \n",
" \n",
" Sort the audio file by its feature array. \n",
" Let's test out how well our features characterize the underlying audio signal. \n",
" To build intuition, we're going to sort the feature vector by it's zero crossing rate, from low value to highest value. \n",
"\n",
"15. If we sort and re-play the audio that corresponds with these sorted frames, what do you think it will sound like? (e.g., same order as the loop, reverse order of the loop, snares followed by kicks, quiet notes followed by loud notes, or ??? ) Pause and think about this. \n",
"\n",
"16. Now, we're going to play these sorted audio frames, from lowest to highest. (The pause command will be quite useful here, too.) How does it sound? Does it sort them how you expect them to be sorted? \n",
"\n",
" [y,index] = sort(features);\n",
"\n",
" for i=1:numonsets\n",
" sound(frames{index(i)},fs)\n",
" figure(1); plot(frames{index(i)});title(i);\n",
" pause(0.5)\n",
" end\n",
"\n",
" You'll notice how trivial this drum loop is - always use familiar and predictable audio files when you're developing your algorithms. \n",
"\n",
"17. Now that you have this file loading, playing , and sorting working, try this with out files, such as:\n",
"\n",
" /usr/ccrma/courses/mir2013/audio/CongaGroove-mono.wav\n",
" /usr/ccrma/courses/mir2013/audio/125BOUNC-mono.WAV"
]
} }
], ],
"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