Tag: realtime

How to Write Bug-Free, Real-Time Audio C++ Code? – Jan Wilczek – ADC23

  • Lobby
  • Tag Archives: realtime

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

Filed under: UncategorizedTagged with: , , ,

Leveraging Pruning & Quantization for Real-Time Audio Applications – Dharanipathi Rathna Kumar

  • Lobby
  • Tag Archives: realtime

Join Us For ADC24 - Bristol - 11-13 November 2024
More Info: https://audio.dev/
@audiodevcon​

Leveraging Pruning and Quantization for Efficient Real-Time Audio Applications - Dharanipathi Rathna Kumar - ADCx India 2024

In the constantly changing world of audio processing, the demand for real-time response and high-quality output is a relentless challenge, especially in the presence of computational constraints. The rapid growth in model complexity, especially in deep learning, has made it challenging to deploy complex models involving architectures such as TCN, LSTM, etc. on resource-constrained devices and/or to achieve fast inference speeds for tasks such as real-time audio effects, audio style transfer, and source separation. Model compression is vital to address these challenges, making it possible to retain high performance while using fewer computational resources. This talk delves deep into two paramount model compression techniques, namely pruning, and quantization, and explores their applicability in the context of audio applications.

Pruning is a method of eliminating redundant or less contributive weights from the model to reduce the computation resources required to run the network. We'll explore its variants, methodologies, and outcomes, and how it can drastically reduce computational complexity without significantly undermining model performance. Quantization is the process of reducing the precision of the weights, biases, and activations such that they consume less memory. By reducing the bit-width of model parameters, we can achieve sizeable savings in memory and computational power, making it indispensable for on-device audio applications for real-time audio contexts.

In this presentation, I elucidate that by adopting strategic weight pruning and parameter quantization, it is feasible to significantly enhance the efficiency of sophisticated audio models, paving the way for robust, real-time audio processing even in resource-constrained environments.

Link to Slides: https://data.audio.dev/talks/ADCxIndia/2024/pruning-and-quantization-for-efficient-real-time-audio-applications.pdf
_

Edited by Digital Medium Ltd - online.digital-medium.co.uk
_

Organized and produced by JUCE: https://juce.com/
_

Special thanks to the ADC24 Team:

Sophie Carus
Derek Heimlich
Andrew Kirk
Bobby Lombardi
Tom Poole
Ralph Richbourg
Prashant Mishra

#adc #audiodev #dsp #audio #audio

Filed under: UncategorizedTagged with: , , ,

Real-time Confessions in C++ – Fabian Renn-Giles – ADC23

  • Lobby
  • Tag Archives: realtime

https://audio.dev/ -- @audiodevcon​
_

Real-time Confessions in C++: The Most Common “Sins” in Real-Time Code - Fabian Renn-Giles - ADC 2023

This talk examines the most prevailing misconceptions and frequent errors encountered when audio developers handle real-time code in C++. With my background as a contractor in the audio industry, I’m often called in to help fix subtle bugs in, or review code with real-time constraints. Yet, I see (and have myself made) the same type of mistakes over and over again resulting from a few common misconceptions of real-time C++ code.This talk offers an in-depth analysis of each of these misconceptions, debunking them with compelling examples from the audio industry.

Ranging from the ignorance of C++'s data-safety rules altogether, to the overuse of std::atomic and misbeliefs about the forbidden usage of locks and exceptions in real-time code, this presentation navigates the landscape between the theoretical rules of the C++ standard and real-world practical realities. This talk is an essential guide for developers seeking to avoid common pitfalls and write more efficient, reliable real-time code.
_

Link to Slides: https://docs.google.com/presentation/d/1rJNebpRg3xJO4AiE5AntrkEKIXRta25DCOxHxDMzC0c
_

Fabian Renn-Giles

Fabian is a freelance C++ programmer, entrepreneur and consultant in the audio software industry. Before this, he was staff engineer at ROLI Ltd. and the lead maintainer/developer of the JUCE C++ framework (www.juce.com) - an audio framework used by thousands of commercial audio software companies. Before joining ROLI, he completed his PhD at Imperial College London, developing a numerical quantum optics solver with modern digital signal processing techniques and C++/MPI/OpenCL. Fabian is now a regular consultant specializing on low-level real-time C++, embedded audio, time sensitive networks, audio over WiFi and audio plug-in formats. His clients range from early startups to FAANG companies. Additionally, he is a regular speaker at the audio developer conference ADC and other C++ conferences.
_

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 #cppprogramming #audio

Filed under: UncategorizedTagged with: , , , , ,

Using & Implementing Differential Reference Counting in Realtime Audio Code – Palmer Hogen – ADCx SF

  • Lobby
  • Tag Archives: realtime

Join Us For ADC23 - London - 13-15 November 2023
More Info: https://audio.dev/
@audiodevcon

Using & Implementing Differential Reference Counting in Realtime Audio Code - Palmer Hogen - ADCx SF

Safely sharing dynamic memory across threads – especially when some of those threads have strict time deadlines – is a tricky problem space; unfortunately this scenario appears in realtime audio code. Some threads may still be accessing old data, so algorithms need to carefully avoid deleting anything still in-use.

Many deferred-reclamation strategies have emerged to address this risk, but these techniques have a general tradeoff between ease-of-use and throughput; ideally we would like both!

This talk presents a variant of traditional reference counting, which offers improved throughput at the expense of a more limited API.

_
Palmer Hogen

Musician & Programmer; Software Engineer @ Roblox

Edited by Digital Medium Ltd - online.digital-medium.co.uk
_

Organized and produced by JUCE: https://juce.com/
_

Special thanks to the ADC Team:

Sophie Carus
Derek Heimlich
Andrew Kirk
Bobby Lombardi
Tom Poole
Ralph Richbourg
Jim Roper
Jonathan Roper

#audiodevcon #audiodev #midi

Filed under: UncategorizedTagged with: , , , ,