Audio Consulting Services

Matthijs Hollemans, audio developer for hire

Hi, my name is Matthijs. I’m currently available as a freelance audio developer. 🎡

Previously I’ve also worked on machine learning for mobile devices, iOS apps, websites, enterprise software, games, embedded systems, and much more.

Location: Netherlands, Europe (looking for remote work only)

ACM, IEEE, and AES member.

Contact me by email – GitHub – LinkedIn

What can I do for you?

I can help you with:

I can write the code and/or consult on the best ways to solve technical problems, or advise on the usability and design of your software.

Technologies I typically use:

I’m an all-round developer with many years of experience. Picking up new technologies and learning new skills is part of the fun for me.

Plug-ins I’ve worked on

(*Work I did as a freelancer under NDA is not included.)

Bombaz β€” A fun little bass synth using a technique known as window function synthesis. It’s particularly useful for adding sub-bass layers. VST3 and AU downloads – Blog post

Screenshot of the Bombaz plug-in

Krunch β€” A combination low-pass filter and saturation plug-in based on the 1 Euro Filter. When applied to audio, this adaptive filter dynamically adds harmonics in interesting ways. VST3 and AU downloads on GitHub – Blog post

Screenshot of the Krunch plug-in

The Kiss of Shame β€” Tape desecration processor. The source code of this plug-in was donated to my plug-in archeology project. I cleaned up the code, made it work on modern machines, fixed some bugs, and released VST3 and AU downloads.

Screenshot of The Kiss of Shame

MDA in JUCE β€” Also as part of the plug-in archeology project, I ported the classic MDA plug-in suite to JUCE and documented how the DSP works.

Ping-Pong Delay β€” A nice ping-pong delay plug-in. This is the project the reader will build in my new audio programming book for beginners.

Screenshot of the Delay plug-in

StereOMG! β€” Creates a wide stereo field that also sounds good on headphones and in mono mixes. This plug-in applies subtle changes to the mids or sides, making the sound seem much wider than what hard panning alone can achieve.

Screenshot of StereOMG!

Rubberneck β€” While developing plug-ins, I usually put Rubberneck at the end of the chain for monitoring levels and protecting my eardrums against mistakes that lead to deafening feedback. It also provides some basic utility functions such as flipping polarity. Open source

Screenshot of Rubberneck

ThreeBandEQ β€” I’ve published a few simple plug-ins as open source to demonstrate how to achieve certain DSP effects. For example, this basic three-band equalizer that could be added to the effect section of a synth.

Screenshot of ThreeBandEQ

Plus lots of experimental FX and synthesizer code that will never leave my hard drive.

Writing about audio development

audiodev.blog: articles and source code about plug-in development.

The Complete Beginner’s Guide to Audio Plug-in Development, a new book for anyone wanting to learn how to make audio plug-ins even if you’ve never written a line of code in your life. Published by The Audio Programmer.

Creating Synthesizer Plug-Ins with C++ and JUCE, my introductory book to creating softsynths. Published by The Audio Programmer.

Covers of the two books

While working at Hugging Face, I contributed to the Audio Course, an introductory tutorial on how to use machine learning and Transformer models with audio data.

Other audio software

Reverse Chord Finder (2009–2015) β€” Handy iOS app that tells you the names of the chords you are playing on guitar, keyboard, or musical score. Sold to another developer.

Screenshot of Reverse Chord Finder Pro

Also published open source libraries that have been used by other developers to create iOS apps, notably SoundBankPlayer for making sample-based instruments.

Red Dot Forever (2006–2007) β€” I wanted an extremely simple program to record my digital piano and save it into a MIDI file. The app has no advanced editing features, but nothing beats its simplicity. Free software for Windows.

Screenshot of Red Dot Forever

MIDI Subsystem for Haiku OS (2002–2004) β€” After BeOS went to software heaven, a group of volunteers decided to remake this operating system as open source. I joined them as team lead for the MIDI Kit. I reverse engineered the workings of the original MIDI server and library implementation and recreated the MIDI player app.

Screenshot of the Haiku MIDI player app

Work history

Freelance Plug-in Development (2023–present) Designing and implementing audio plug-ins for clients. Real-time audio AI consulting.

Machine Learning Engineer, Hugging Face (2022–2023) As part of the audio team, I added new speech recognition and text-to-speech models to the Transformers library. Co-authored the Audio Course, teaching developers how to do machine learning with sound. Developed methods of exporting Hugging Face models to Apple’s Core ML.

Freelance Machine Learning Consultant (2017–2022) I helped clients add machine learning to their iOS apps, implementing neural networks from scratch in Metal and Core ML and optimizing them for mobile, with a focus on real-time computer vision and fast inference. Tech used: Python, PyTorch, TensorFlow, OpenCV, Core ML, Metal, Swift, C.

Author of Books and Tutorials (2011–present) I’ve written for the popular e-learning website Kodeco (previously raywenderlich.com), The Audio Programmer, my own blog, and self-published through Leanpub.

Senior Software Engineer, Concepts-ICT (2008–2010) Worked on internal software that was used to automate and streamline the company’s business processes. Also built the website and backend for the ADSL!Totaal internet service that was provided in cooperation with the magazine Computer!Totaal. Tech stack: PHP, HTML, CSS, JavaScript, PostgreSQL.

Independent App Developer (2002–present) Self-employed, making my own software products and selling them online. Tech used: C++, Objective-C, Swift, UIKit (iOS), AppKit (Mac), Win32.

Senior Software Engineer, Virtual Unlimited (1998–2002) Developed a platform for secure internet applications that ran inside a dedicated application instead of the web browser. I was primarily responsible for the visual development tool that let third-party developers build apps on this platform. Tech used: Java.

Hobbyist Game Developer (1985–2014) Wrote my own games for fun, first in BASIC, later in assembly. Notable releases: Mahjong Cards, played over 20 million times (iPad, 2014); Ultimate Countdown with over 250 thousand downloads (iPhone, 2008); Zero Gravity, a fast-paced 3D tunnel flying game (Amiga, 1997).

Publications

I like explaining things and have written several books.

Author of:

Co-author of:

Tutorials published at the popular development website raywenderlich.com (now Kodeco):

My own blogs:

I’m also the founder of Swift Algorithm Club, which now has 28k+ stars on GitHub. Detailed explanations of algorithms and data structures in Swift.