Audio Processing

Audio processing is an example of a real-time task.

The goal is to produce a target number of audio samples in a fixed time.

Actually achieving this reliably requires extreme paranoia. See this article for context. Debugging audio glitching is even harder (since by definition it’s due to something you didn’t notice the first time).

Here the challenge is to free the developer from the burden of eternal vigilance regarding slowness in their code, instead allowing them to express their requirements in such a way that they can get assurances from the language that their audio code can in fact produce samples fast enough.