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?
Key skill areas:
- creating plug-ins and other audio software
- DSP implementation and research
- machine learning & AI for real-time audio
- implementing user interfaces
- UI/UX design
- graphics and GPU programming
- finding and fixing difficult bugs
- modernizing old codebases
- bringing projects to the finish line
- technical writing and teaching
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:
- C++ / Python / Swift / Objective-C / JavaScript
- JUCE, Core Audio
- VST3, Audio Units, ProTools AAX
- PyTorch, TensorFlow, ONNX, Core ML
- Mac + iOS + Windows
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
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
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.
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.
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.
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
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.
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. Initially self-published but now available from The Audio Programmer.
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
These are projects I did as an independent software publisher.
Audio and music have always been an interest — ever since hearing the first bleeps and bloops from my Commodore 64’s SID chip — and I’ve dabbled in audio programming for years before doing it professionally.
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.
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.
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.
Professional background
I’ve been working in the tech industry since the late 1990s, as employee, freelancer, and independent developer.
Freelance Audio 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:
- The Complete Beginner’s Guide to Audio Plug-in Development (2024)
- Creating Synthesizer Plug-Ins with C++ and JUCE (2022)
- Core ML Survival Guide (2018 β 2021)
- The iOS Apprentice (2011 β 2016)
Co-author of:
- Machine Learning by Tutorials (2018)
- iOS Games by Tutorials (2014)
- iOS 7 by Tutorials (2013)
- iOS 6 by Tutorials (2012)
- iOS 5 by Tutorials (2011)
Published at the popular development website raywenderlich.com (now Kodeco):
- RWDevCon Inspiration Talk β Math Isnβt Scary (2015)
- How to make a game like Candy Crush (2014)
- Storyboards tutorial in iOS 7 (2013)
- Beginning Auto Layout tutorial in iOS 7 (2013)
- How to update your app for iOS 7 (2013)
- Trigonometry for game programming (2013)
- Beginning Auto Layout in iOS (2012)
- How to make a playing card game with multiplayer and bluetooth (2012)
- My app crashed, now what? (2012)
- Apple Push Notification Services tutorial for iOS (2011)
My own blogs:
- audiodev.blog β Articles about audio programming and DSP.
- machinethink.net β Articles about machine learning on mobile devices.
- PianoClues.com β Tips and lessons for playing piano and keyboard.
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.