My Projects and Collaborations§

Most of my projects live on Github, where I have the user name @mgeier

Created and Maintained by Me§

sounddevice Module for Python§

Play and record sound with Python. The sounddevice module provides bindings for the PortAudio library and a few convenience functions to play and record NumPy arrays containing audio signals.


For easier installation, I provide a pre-compiled PortAudio library for macOS and Windows:


rtmixer Module for Python§

Reliable low-latency audio playback and recording with Python, using PortAudio via the sounddevice module.


The rtmixer module uses a Python wrapper for PortAudio’s ring buffer, which I’ve published as a separate project:


jack Module for Python§

Python bindings for the JACK Audio Connection Kit (JACK).


nbsphinx Extension for Sphinx§

nbsphinx is a Sphinx extension that provides a source parser for *.ipynb files. Custom Sphinx directives are used to show Jupyter Notebook code cells (and of course their results) in both HTML and LaTeX output. Un-evaluated notebooks – i.e. notebooks without stored output cells – will be automatically executed during the Sphinx build process.


sphinx_last_updated_by_git Extension for Sphinx§

As the name suggests, this Sphinx extension uses Git to find out the date/time when each source file was last updated (which is typically displayed in the footer of each page).


An HTML theme for Sphinx: insipid§

A mobile-friendly Sphinx theme that hopefully doesn’t suck.


Jupyter Notebooks About Python & Audio§

A collection of some more and some less finished Jupyter notebooks about signal processing in Python (and more).


This “Homepage”§

A collection of notes about different topics.


jupyter_format module for Python§

An experimental new serialization format for Jupyter notebooks (as replacement for the .ipynb format).


A Reusable Slice of References for Rust§


Rust FFI bindings to the libFLAC library§


Rust FFI bindings to the minimp3_ex library§


Work In Progress: Audio Scene Description Format (ASDF)§


Reference implementation (implemented in Rust)

Documentation about splines (some of which are used in the ASDF)


The SoundScape Renderer§

The SoundScape Renderer (SSR) is a tool for real-time spatial audio reproduction providing a variety of rendering algorithms, e.g. Wave Field Synthesis, Higher-Order Ambisonics and binaural techniques.


The multi-threaded signal-processing core of the SSR is provided separately as a set of re-usable C++ libraries called “Audio Processing Framework”:


sfs Module for Python§

A Python library for creating numercial simulations of sound field synthesis methods like Wave Field Synthesis (WFS) or Near-Field Compensated Higher Order Ambisonics (NFC-HOA).


soundfile Module for Python§

The soundfile module can read and write sound files. File reading/writing is supported through libsndfile via CFFI.


Exercises for “Communication Acoustics” Lecture§

Course material (provided as Jupyter notebooks) 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.

On nbviewer:


Real-Time Ring Buffer for Rust§

A wait-free single-producer single-consumer ring buffer.


Minor Contributions§

The following links show some projects I have contributed to, with links to my “pull requests” and the issues I created for each project.

Jupyter Ecosystem§

Scientific Python Fundamentals§