This page contains materials related to the teaching of CSC475/575 Music Retrieval Systems course at the University of Victoria. In this page you will find material associated with the lectures such as videos and slides as well as information about the assignments and projects.

Slides Videos Assignments Schedule FAQ Workplans


Slides from CSC475 at the University a course using the textbook:

  1. Introduction (Lecture 1) (pdf)
  2. Sinusoids and Phasors (Lectures 2,3) (pdf)
  3. Discrete Fourier Transform (Lecture 4) (pdf)
  4. Monophonic Pitch Detection Slides (Lecture 5) (pdf)
  5. Audio Feature Extraction (Lecture 6) (pdf)
  6. Data Mining I (Lecture 7) (pdf)
  7. Data Mining I (Lecture 8) (pdf)
  8. Symbolic Music Representations (lecture 9) (pdf)
  9. Data Mining III (Lectures 10,11) (pdf)
  10. Audio Classification (Lectures 12,13) (pdf)
  11. Tags in Music Information Retrieval (Lectures 15,16) (pdf)


Videos associated with the course. Some are recorded live during lecture time and some are recorded offline in my office:

  1. Welcome to online students
  2. Introduction Video (Lecture 1)
  3. Sinusoids and Phasors (Lectures 2,3)
  4. Discrete Fourier Transform (Lecture 4)
  5. Monophonic Pitch Detection (Lecture 5)
  6. Audio Feature Extraction (Lecture 6)
  7. Data Mining I (Lecture 7)
  8. Data Mining II (Lecture 8)
  9. Symbolic Music Representations I (Lecture 9)
  10. Symbolic Music Representations II (Lecture 9)
  11. Data Mining III (Lectures 10,11)
  12. Audio Classification (Lectures 12,13)
  13. Hands-on with Weka and scikit-learn (Lecture 14)
  14. How to conduct a bibliographic search (supplement)
  15. Tagging in MIR (Lecture 15,16)

These phasor animation play fine in Firefox but not directly in Chrome at least on my machine. I tried briefly to figure out what was the problem but web video formats are a complete mess:

  1. Phasor projecting on the real and imaginary axes
  2. Sum of phasors with the same frequency
  3. Cancelling of imaginary part with negative frequency phasor


Note: There is some considerable overlap between the assignments from different year as they all follow a similar structur and cover the same topics.

Assignments from 2016:

  1. Assignment 1 - Sinusoids and the Discrete Fourier Transform
  2. Assignment 2 - Monophonic Pitch Extraction and Audio Features
  3. Assignment 3 - Supervised Learning and Classification
  4. Assignment 4 - Tangible interfaces for MIR
  5. Assignment 5 - Rhythm analysis and large scale evaluation

Assignments from 2015:

  1. Assignment 1 - DSP and Monophonic Pitch Extraction
  2. Assignment 2 - Supervised Learning/Classification
  3. Assignment 3 - Genre classification and autotagging
  4. Assignment 4 - Tangible interfaces

Assignments from 2014:

  1. Assignment 1 - Digital Signal Processing and pitch extraction
  2. Assignment 2 - Supervised Learning
  3. Assignment 3 - Audio classification and tagging
  4. Assignment 4 - Tangible interfaces and web APIs
  5. qbh_examples.wav
  6. Project Information


Schedules from different incarnations of the course:



Is this course a MOOC ?
Yes and no. It is not affiliated with any official online education entity such as Coursera, Udacity, or edX. There are two major components in any course offering: knowledge delivery and assessment. My plan is to only focus on the first in this course. I will be providing external participants with the same assignment description that the University of Victoria will get, provide model solutions and grading guidelines but can only afford to do marking of the UVic students. I will also do my best to answer questions from everyone but obviously priority will be given to the University of Victoria students.
What will be offered to external participants ?
I will do my best to provide videos with material associated with the material covered lectures. These could be direct recordings of the actual lectures or videos recorded separately. Slides, code examples, and screencast coding videos will also be provided.
What is the schedule and workload expectations ?
The course will run from January 6th to April 4th, 2014. There are three 45 minutes lectures per week on MWR between 14:30-15:20. I will try to post online the video associated with each lecture shortly after the actual lecture. I might also try to do some lectures "live" through Google Hangouts on Air. The intended workload is about 2 hours of homework for each lecture for a total of approximately 9 hours per week. There are four individual assignments worth 40 percent of the final grade and a group project worth 60 percent.
What background is required ?
The "local" students at the University of Victoria are mostly 4th year undergraduate Computer Science students as well as graduate students in Computer Science. Many of them don't have a background with digital signal processing, machine learning, and basic music theory which are all important in understanding MIR algorithms. Therefore about a third of the course is taken by a condensed overview of the necessary concepts from these academic fields. The typical background required would be good programming experience, basic statistics and probability, and linear algebra. An ideal background would also include knowledge of basic digital signal processing, a course in data mining or machine learning, and knowledge of basic music theory.
Why are you doing this ?
Even though I am very sceptical about the effectiveness of MOOCs and how they have been hyped as replacements of "brick and mortar" university education I still strongly believe in opening up knowledge and learning. Through technology it is possible to reach more people who for various reasons do not have easy access to typical university education. This is particularly important in somewhat niche and emerging research areas such as MIR. I have worked for many years in this field and I am very passionate and excited about the research performed by the community. I want to share this excitement and knowledge with as many people as I can. From a more selfish perspective I want to experiment with the logistics and tools required for offering courses online. In addition I am in the process of converting my course notes to a traditional textbook for MIR and my hope is that by having many eyeballs read through it I will be able to make it better. Finally it is good advertisting for my research group, my department and the University of Victoria in general.
What software infrastructure is used for the course ?
As this course is run independently of online education providers I was not able to use any of their software. The software for edX is open source but from a quick glance seemed unnecessary complicated and complex to install and setup. Of course part of the complexity stems from the need to provide assessment which I simply solved by ignoring that aspect. In the end I decided to simply use a Google+ community as the primary way of interaction among participants of the course as well as this webpage which is associated with the textbook under preparation. The ability to share video, events and to use Hangouts was the primary selling factors for G+. I also hope to build a sense of community among all the participants in the course (both internal and external) and the social aspects of G+ help with that. The G+ community for the course can be found at UVic MIR Course Community.


Workplans for Spring 2016 Offering of the course:

  1. Workplan for week 1 (pdf)
  2. Workplan for week 2 (pdf)