Courses and teaching activities


I teach at undergraduate (U) and post graduate (P) level. I also developed tutorials aimed at PhD level researchers.

Current courses

I'm currently (2017/18) module leader for the following three Semester B courses.

  • ECS415U - Introduction to Digital Audio - This course is an introduction to the field of audio technology. We will cover basic acoustics and sound concepts, analogue and digital audio technologies, sound capture and reproduction, audio signal representation plus signal processing concepts. The course includes practical exercises in critical listening and design, as well as building analogue circuits for audio, microphone placement, mixing and soundscape composition.

  • ECS735P - The Semantic Web - To date, the World Wide Web has developed most rapidly as a medium of documents for people rather than of information that can be manipulated automatically. By augmenting Web pages with data targeted at computers and by adding documents solely for computers, we will transform the Web into the Semantic Web.Computers will find the meaning of semantic data by following hyperlinks to definitions of key terms and rules for reasoning about them logically. The resulting infrastructure will spur the development of automated Web services such as highly functional agents.

  • ECS719P - Research Methods - This module will teach some of the key, general, high-level research and transferable skills needed for addressing pure and applied research questions. The module is designed to help students develop their research skills by building on existing projects and includes information on Research Communication and Dissemination, Practical Research Skills and Methods, including an introduction to experiment design and Statistics in Python and R as well as Software Carpentry.

Past courses

  • ECS732 - Real Time Digital Signal Processing (2007-2009 TA, 2011-2013 co-lecturer) - This course provided an introduction to real time DSP using the Texas Instrument TMS320C6713 DSP platform. On the theoretical side, the course covered DSP fundamentals (e.g. the implementation of filters, convolution etc.), real time control, sceduling and debugging as well as optimisation techniques, including pipelined assembly programming. On a more practical level, the module covered the DSP archtecture, pheripherals (both on chip and on the test board) such as Timers and Direct Memory Access (DMA) controllers. Practical software development using Matlab for prototyping and C/C++ for DSP programming was also included.

  • Music Analysis and Synthesis - I developed a number of guest lectures and I was teaching assistant for this module for a several of years between 2008-2012. This covered signal processing topics such as speech coding and the fundamentals of Music Information Retrieval.

  • Digital Audio Effects - I was guest lecturer for a several of years between 2009-2013, presenting work on intelligent audio editing and state-of-the-art research in summarising how AI techniques bear on audio production.


I developed tutorial material in different domains including Semantic Audio, Music Informatics and Statistics for MIR researchers.

  • Semantic Audio - An extensive set of slides introducing the basic concepts of Linked Data and the Semantic Web to Audio and Music researchers is available here. I also co-authored and presented a tutorial on Music and the Web of Linked Data which is available on GitHub.

  • Music Informatics - I developed a wrapper (VamPy) to enable researchers to prototype Music Information Retrieval algorithm in Python and call these from any Vamp host (such as Sonic Visualiser) to see the output. A set of basic python plugins for Onset detection and MFCC computation etc. are available with a simple tutorial on VamPy . Here's also a Python/Vampy implementation of MFCC calculation ) as well as a repository showing how to implement python modules in C to eliminate bottlenecks (this particular example is using the Levinson Recursion which is useful for instance in Linear Predictive Coding). There are examples in C as well as uing Cython to generate extension modules. It also gives you some idea about how to benchmark such thigs. More recently I co-authored a peper on Deep Learning for music information retrieval which is available on ArXiv .

  • Statistics and Data Science - I also wrote an extensive tutorial in Jupyter (iPython Notebook) on the use of basic statistical analyses for Music Information researhers. This covers fundamental techniques such as t-tests, ANOVAs, etc., in their parametric and non-parametric forms. About 14 notebooks include detailed calculations, rather than only high-level function calls for each test. I also discuss test assumptions, guidelines for their use and limitation of inference. The notes touch upon experiment design issues and pitfalls, possibly resulting in drawing weak or wrong conclusions from simple tests. It also introduces basic data science techniques, e.g., using R and Pandas in Python and how to blend different languages for analysis in a single research environment. This material needs a lot of revision, but it may be available on request.