PortAudio and Media Synchronisation-It ' s All in the Timing

PortAudio is an open source 'C' language API and library for implementing cross-platform real-time audio applications. This paper describes recent additions to the PortAudio API designed to assist in implementing synchronisation between real-time audio and other time-based data such as MIDI and computer graphics. Examples are presented that illustrate synchronisation of a graphical display to real time audio, low jitter MIDI triggering of software synthesized audio, and synchronising software synthesized audio to an external time source such as MIDI clock. Some of the challenges of implementing the PortAudio synchronisation infrastructure on Microsoft® Windows® are discussed.