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:
- 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.)
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.
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 upcoming 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.
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 plug-in and synthesizer code that will never leave my hard drive.
Writing about audio development
audiodev.blog: articles and source code about plug-in development.
Creating Synthesizer Plug-Ins with C++ and JUCE, my introductory book to creating softsynths, published by 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
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.
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.
Principal author of:
- 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)
Tutorials 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.