https://audio.dev/ -- @audiodevcon
How to Write Bug-Free, Real-Time Audio C++ Code? - Jan Wilczek - ADC 2023
How many times have we compiled our audio plugin or app and launched it only to find out that "something is glitching"?
How can we be sure that we submit a correctly implemented audio feature in a pull request?
And how can we detect existing problems and precisely locate them in our codebase?
I've been pursuing the answers to these questions from my day 1 in the audio industry and in this talk I am going to share with you my personal favorites. This is not just from my experience; I've actively asked community members for their strategies at every opportunity I got. This is a collected wisdom of more than just a single developer.
In the talk, I will:
1. Outline why shipping bug-free code is vital for your business and your own sanity
2. show you simple yet profound strategies for ensuring software correctness based on digital signal processing (DSP), including:
1. taking advantage of phase cancellation properties
2. leveraging the power of the FFT for frequency-manipulation algorithms,
3. underused DSP tools like total harmonic distortion (THD), Farina sweep, and pole-zero plot,
4. discovering the power of reference audio renders.
3. explain how to safely reuse stable and tested DSP code of other developers,
4. interoperate C++ and Python for accessing powerful numerical libraries and testing complicated scenarios
5. correctly implement even the most advanced DSP algorithms and optimizations,
6. show real-world examples where these principles helped solve hidden audio bugs, including
1. pitch tracking,
2. pitch shifting, and
3. the flanger effect.
With this knowledge you'll be able to:
1. approach developing new features with greater confidence,
2. enjoy more inner peace during development, review, and deployment,
3.write correct audio code every time!
_
Jan Wilczek
Jan Wilczek graduated with honors from Friedrich-Alexander-Universität Erlangen-Nürnberg, having completed a master’s program Advanced Signal Processing and Communications Engineering. He is an Audio Developer of Music Maker JAM at Loudly GmbH in Berlin; an app to make loop-based music that runs on Android, iOS, and Windows.Additionally, he has created TheWolfSound.com to help students and software engineers learn audio programming for getting game audio, audio plugin, or mobile audio developer jobs. He is the author of DSP Pro: an online course on the basics of digital audio signal processing for aspiring audio programmers. He helps others through online courses, one-on-one coaching and publishing tutorials and explainer videos about various aspects of audio programming. Parallel to the educational services, he is a consultant in the field of audio programming. He is also a researcher in the area of Virtual Analog modeling using deep learning; his latest work was presented at the Digital Audio FX 2022 conference in Vienna. His professional goal is to lower the entry barrier for everyone interested in writing audio software. He pursues it by publishing high-quality articles, videos, and podcasts or giving talks.
_
Streamed & Edited by Digital Medium Ltd: https://online.digital-medium.co.uk
_
Organized and produced by JUCE: https://juce.com/
_
Special thanks to the ADC23 Team:
Sophie Carus
Derek Heimlich
Andrew Kirk
Bobby Lombardi
Tom Poole
Ralph Richbourg
Jim Roper
Jonathan Roper
Prashant Mishra
#adc #audiodev #dsp #audio #cpp