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.

https://python-sounddevice.readthedocs.io/

spatialaudio/python-sounddevice

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

https://github.com/spatialaudio/portaudio-binaries

spatialaudio/portaudio-binaries

rtmixer Module for Python§

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

https://python-rtmixer.readthedocs.io/

spatialaudio/python-rtmixer

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

spatialaudio/python-pa-ringbuffer

jack Module for Python§

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

https://jackclient-python.readthedocs.io/

spatialaudio/jackclient-python

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.

https://nbsphinx.readthedocs.io/

spatialaudio/nbsphinx

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).

mgeier/sphinx-last-updated-by-git

An HTML theme for Sphinx: insipid§

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

https://insipid-sphinx-theme.readthedocs.io/

mgeier/insipid-sphinx-theme

Jupyter Notebooks About Python & Audio§

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

https://nbviewer.jupyter.org/github/mgeier/python-audio/blob/master/index.ipynb

mgeier/python-audio

This “Homepage”§

A collection of notes about different topics.

https://mg.readthedocs.io/

mgeier/homepage

jupyter_format module for Python§

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

https://jupyter-format.readthedocs.io/

mgeier/jupyter-format

A Reusable Slice of References for Rust§

https://docs.rs/rsor/

mgeier/rsor

Rust FFI bindings to the libFLAC library§

https://docs.rs/libflac-sys/

mgeier/libflac-sys

Rust FFI bindings to the minimp3_ex library§

https://docs.rs/minimp3_ex-sys/

mgeier/minimp3_ex-sys

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

Documentation/specification

https://AudioSceneDescriptionFormat.readthedocs.io/

Reference implementation (implemented in Rust)

https://github.com/AudioSceneDescriptionFormat/asdf-rust

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

https://splines.readthedocs.io/

Collaborations§

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.

http://spatialaudio.net/ssr/

SoundScapeRenderer/ssr

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

http://AudioProcessingFramework.github.io/

AudioProcessingFramework/apf

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).

https://sfs-python.readthedocs.io/

sfstoolbox/sfs-python

soundfile Module for Python§

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

https://python-soundfile.readthedocs.io/

bastibe/SoundFile

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: https://nbviewer.jupyter.org/github/spatialaudio/communication-acoustics-exercises/blob/master/index.ipynb

spatialaudio/communication-acoustics-exercises

Real-Time Ring Buffer for Rust§

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

mgeier/rtrb

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§