Phil Burk in front of the ocean at sunset.

Phil Burk

self employed

SoftSynth

About Me

Phil Burk is a software developer and designer who specializes in interactive and experimental music systems. In the early 1980’s, Phil began developing HMSL, the Hierarchical Music Specification Language. Phil then worked at 3DO developing the first DSP based sound synthesis system for a video game console. Phil co-founded the PortAudio project with Ross Bencina in 1997. Other projects include JSyn, a music synthesis API for Java, JavaSonics ListenUp for recording and uploading voice in a web page, and TransJam, a client/server system for multi-player interaction on the web, eg. the WebDrum.  Phil Burk led the Mobileer team in the development of a polyphonic MIDI ringtone synthesizer used in the Treo 600 and other devices. Phil has also been contributing for many years to the new MIDI 2.0 standards. At Google he developed AAudio, Oboe and the MIDI API for Android.

Sessions

  • Using Kotlin/Compose Multiplatform to Revive a Historic Multiplayer Online Drum Machine

    How To Write An Audio App That Runs Almost Everywhere
    20:30 - 20:50 UTC | Friday 26th September 2025 | ADCx Gather
    Beginner
    Intermediate
    Advanced

    Kotlin/Compose is a powerful tool for multi-platform development. But it lacks audio support. I have implemented a simple audio API that you can use to write an interactive app that will run on Linux, Mac or Windows desktops, on Android, and on the web. The web port uses WASM and the WebAudio AudioWorkletProcessor. Network communication uses ktor and a WebSocket proxy to communicate with the original TCP based server. I used these new APIs to restore a multiplayer poly-rhythmic interactive web drum that was originally written as a Java Applet. The applet was popular in the 1990’s but stopped working […]

  • Real-time Audio on Android

    Latency and Performance
    14:00 - 14:50 UTC | Tuesday 11th November 2025 | Bristol 1
    Intermediate
    Advanced

    An update on progress in reducing latency using AAudio MMAP and Oboe. We will benchmark CPU performance and measure latency using OboeTester. We will also explore the Android Energy Aware CPU scheduler and dynamic frequency scaling on Android and discuss some issues, which include slow scaling and core migration. We will also demonstrate some new techniques you can use to improve performance and reduce glitches, including ADPF and workload reporting. We will also discuss strategies for reducing glitches in full duplex audio streams.