Communication Acoustics - Exercises

This repository holds some Jupyter notebooks (using the IPython kernel) which are part of the course material for the exercises accompanying the lecture "Acoustics for Communications" (in German "Kommunikationsakustik") at Institute of Communications Engineering/Faculty of Computer Science and Electrical Engineering/University of Rostock.

Registered students can access course details via StudIP and LSF.

The lectures/exercises are held each summer semester, starting in 2015.

The notebooks and all additional files should be considered as Open Educational Resources.

The exercises are split into the following units. Most of them build upon knowledge from previous units, so you should do them in order:

  1. Introduction to Python et al., Working with Audio Signals

  2. Discrete Fourier Transform

  3. Impulse Responses, Convolution

  4. Room Impulse Responses

  5. Binaural Room Impulse Responses (BRIRs), part 1

  6. BRIRs, part 2 (second half of the previous notebook)

  7. Listening Tests (no notebook available)

  8. Binaural Hearing

  9. Audio Reproduction with Loudspeakers

  10. Loudspeaker Demonstration (no notebook available)

  11. Stereophonic Recording Techniques

  12. Revision (no notebook available)

Getting Started

The Jupyter notebooks for each topic are available as static web pages as well as for interactive use with Jupyter (formerly known as IPython), to be downloaded from Github.

Install Python

Make sure you always use Python 3!

If you don't have Python installed already, you should download and install a Python distribution which already includes all the libraries we'll need, e.g. Anaconda (make sure to choose Python version 3.x).

If you're using Linux (Debian/Ubuntu/...), you can use the following commands to install the necessary packages:

sudo apt-get update
sudo apt-get install python3 python3-pip python3-numpy python3-scipy python3-matplotlib python3-cffi libsndfile1 libportaudio2

Get the Notebooks and Start Jupyter

Use Git to download the files (or download the zip file), use the Python package management system pip to install a few Python libraries that we will use and then start the Jupyter notebook:

git clone https://github.com/spatialaudio/communication-acoustics-exercises.git
cd communication-acoustics-exercises
python3 -m pip install -r requirements.txt --user
python3 -m notebook

This will open a new view in your web browser with a list of notebooks. Click on intro.ipynb (or any of the other available notebooks) and enjoy! If you are new to Git, have a look at this introduction to Git.

Alternatively, you can also download individual notebook files (with the extension .ipynb) and open them in IPython. Note that some exercises make use of additional files (audio files etc.) which you'll then also have to download manually.

Interactive Online Version

If you don't feel like installing Jupyter/IPython, but still want to try out the notebooks, you can Binder and start playing around immediately.

Note, however, that your changes will not be preserved. Once you close your browser, everything will be lost!

At Aalto University, Ville Pulkki gives a lecture called "Communication Acoustics" which is also available as a book (ISBN: 978-1-118-86654-2). The lecture slides and some other materials including audio examples are available at http://users.aalto.fi/~vpulkki/Communication_Acoustics/.

Coursera.org offers a free online course with video lectures called Audio Signal Processing for Music Applications, which is taught by Xavier Serra and Julius O Smith, III. The topic is not quite the same, but the introductory units are similar and they are using Python, too!

<p xmlns:dct="http://purl.org/dc/terms/"> CC0
To the extent possible under law, the person who associated CC0 with this work has waived all copyright and related or neighboring rights to this work. </p>