Concerns specific to realtime implementation

Algorithm predictability

Realtime I/O strategies: interrupts, polling and synchrony

Threading, multitasking and multiprocessing

Memory and buffer management. Swapping and virtual memory. Dynamic loading.

 ‐dynamic loading of samples and instruments

Synchronization and buffering issues

Unstable multitasking environments

Prioritisation

The fudge factor—designing for the unexpected

 ‐error prevention

Optimization, tradeoffs and workarounds

Fixed point and reduced resolution computation

Tightening the inner loop. Register space and some common hack‐arounds.

Smooth data flow and cache tuning

Precalculation and lookup

Avoiding interpolation

Adaptive and lazy processing. Stretching buffers.

Dropping inaudibles

Using mono instead of stereo

Combined processing

Decimation and multirate processing

Avoiding complex arithmetic

Failsafes and graceful degradation

 ‐error concealment
 ‐covering up for substandard algorithms