Counting more than two billion devices, Android is nowadays one of the most popular open-source g... more Counting more than two billion devices, Android is nowadays one of the most popular open-source general-purpose operating systems, based on Linux. Because of the diversity of applications that can be installed, it manages a number of different workloads, many of them requiring performance/QoS guarantees. When running audio processing applications, the user would like an uninterrupted, glitch-free, output stream that reacts to the user input, typically with a delay not bigger than 4 − 10 ms, while keeping the energy consumption of the mobile device as low as possible. This work focuses on improvements to the real-time audio processing performance on Android. Such improvements are achieved by using a deadline based scheduler and an adaptive scheduling strategy that dynamically and proactively modulates the allocated runtime. The proposed strategy is evaluated through an extensive set of experiments, showing that 1) compared to the existing way to ensure low-latency audio processing, the proposed mechanism provides an energy saving of almost 40%, and 2) compared to the existing way to achieve a good balance between power consumption and latency in a glitch-free audio processing experience, the proposed solution reduces audio latency from 26.67 ms to 2.67 ms, at the expense of a limited power consumption increase of 6.25%.
ndio Abstract This paper describes a new open-source cross-platform ‘C’ library for audio input a... more ndio Abstract This paper describes a new open-source cross-platform ‘C’ library for audio input and output. It is designed to simplify the porting of audio applications between various platforms, and also to simplify the development of audio programs in general by hiding the complexities of device interfacing. The API was worked out through community discussions on the music-dsp mailing list. A number of people have contributed to the development of the API and are listed on the web-site. Implementations of PortAudio for Windows MME and DirectSound, the Macintosh Sound Manager, and Unix OSS have been developed and are freely available on the web. Support for other platforms is being planned. The paper describes the use of PortAudio and discusses the issues involved in its development including the design philosophy, latency, callbacks versus blocking read/write calls, and efficiency.
This paper describes a software system called the TransJam Server that allows several musicians t... more This paper describes a software system called the TransJam Server that allows several musicians to log into an Internet web site and perform music together. The system is general purpose so programmers can develop web based applications in a variety of styles. A single server can support several different applications simultaneously, for example musical applications, games, or conferencing. A simple protocol allows clients to enter a lobby, obtain a list of active sessions, join a session, and then exchange information with other members of the session. Server operations such as object locking and data broadcasting allow users to create and edit shared data objects without corrupting them. The server is written in 'C' and runs on PC or Unix based hosts with low overhead. Client applications are typically written in 'C' or Java. A chat feature is available which allows musicians to discuss musical strategies and to interact socially. The Java version can be used with ...
JSyn provides real-time unit generator based synthesis for stand-alone Java applications, or Appl... more JSyn provides real-time unit generator based synthesis for stand-alone Java applications, or Applets in a web page. Units can be created and connected “on the fly” to allow dynamic modification of synthesis topologies. The synthesis is performed by ‘C’ code hidden in a Netscape plug-in or DLL beneath Java native methods. JSyn uses a time-hashed event buffering system to provide accurate timing for output events. JSyn is available at “http://www.softsynth.com/jsyn”.
... "@"is the Forth word ("fetch") for retrieving the content... more ... "@"is the Forth word ("fetch") for retrieving the contents of that variable. "!" is the Forth word ("store") for storing to a variable. ... ( store object's address in variable ) and later, elsewhere in the code: COOL-LICK-NEEDED? IF ( check to see if cool-lick-need is true? ...
We have implemented a high-level vocal gesture classifier which uses Adaptive Principal Component... more We have implemented a high-level vocal gesture classifier which uses Adaptive Principal Component EXtraction (APEX), a neural network implementation of Principal Components Analysis (PCA), to reduce a multi-dimensional space of statistical features into a three-dimensional highlevel feature space. The classifier is used within Auracle, a real-time, collaborative, Internet-based instrument: highlevel features, along with envelope data extracted from lowlevel voice analysis, are used to drive sound synthesis. The APEX neural network is initially trained with a sample database of vocal gestures, and it continues to adapt (both within single user sessions and over longer time periods) in response to user interaction. Both training and evolution are accomplished without supervision, so that the nature of the classifications is determined more by how users interact with the system than by the preconceptions of its designers.
Auracle is a voice-controlled, networked sound instrument that enables users to control a softwar... more Auracle is a voice-controlled, networked sound instrument that enables users to control a software synthesizer with their voice and to interact with each other in real time over the Internet. This paper discusses the historical background of the project, beginning with Neuhaus' 'virtual aural spaces' in the 1960s and relating them to Barbosa's conception of 'shared sonic environments'. The architecture of the system is described in detail, including the multi-level analysis of vocal input, the communication of that analysis data across the network, and the mapping of that data onto a software synthesizer.
Counting more than two billion devices, Android is nowadays one of the most popular open-source g... more Counting more than two billion devices, Android is nowadays one of the most popular open-source general-purpose operating systems, based on Linux. Because of the diversity of applications that can be installed, it manages a number of different workloads, many of them requiring performance/QoS guarantees. When running audio processing applications, the user would like an uninterrupted, glitch-free, output stream that reacts to the user input, typically with a delay not bigger than 4 − 10 ms, while keeping the energy consumption of the mobile device as low as possible. This work focuses on improvements to the real-time audio processing performance on Android. Such improvements are achieved by using a deadline based scheduler and an adaptive scheduling strategy that dynamically and proactively modulates the allocated runtime. The proposed strategy is evaluated through an extensive set of experiments, showing that 1) compared to the existing way to ensure low-latency audio processing, the proposed mechanism provides an energy saving of almost 40%, and 2) compared to the existing way to achieve a good balance between power consumption and latency in a glitch-free audio processing experience, the proposed solution reduces audio latency from 26.67 ms to 2.67 ms, at the expense of a limited power consumption increase of 6.25%.
ndio Abstract This paper describes a new open-source cross-platform ‘C’ library for audio input a... more ndio Abstract This paper describes a new open-source cross-platform ‘C’ library for audio input and output. It is designed to simplify the porting of audio applications between various platforms, and also to simplify the development of audio programs in general by hiding the complexities of device interfacing. The API was worked out through community discussions on the music-dsp mailing list. A number of people have contributed to the development of the API and are listed on the web-site. Implementations of PortAudio for Windows MME and DirectSound, the Macintosh Sound Manager, and Unix OSS have been developed and are freely available on the web. Support for other platforms is being planned. The paper describes the use of PortAudio and discusses the issues involved in its development including the design philosophy, latency, callbacks versus blocking read/write calls, and efficiency.
This paper describes a software system called the TransJam Server that allows several musicians t... more This paper describes a software system called the TransJam Server that allows several musicians to log into an Internet web site and perform music together. The system is general purpose so programmers can develop web based applications in a variety of styles. A single server can support several different applications simultaneously, for example musical applications, games, or conferencing. A simple protocol allows clients to enter a lobby, obtain a list of active sessions, join a session, and then exchange information with other members of the session. Server operations such as object locking and data broadcasting allow users to create and edit shared data objects without corrupting them. The server is written in 'C' and runs on PC or Unix based hosts with low overhead. Client applications are typically written in 'C' or Java. A chat feature is available which allows musicians to discuss musical strategies and to interact socially. The Java version can be used with ...
JSyn provides real-time unit generator based synthesis for stand-alone Java applications, or Appl... more JSyn provides real-time unit generator based synthesis for stand-alone Java applications, or Applets in a web page. Units can be created and connected “on the fly” to allow dynamic modification of synthesis topologies. The synthesis is performed by ‘C’ code hidden in a Netscape plug-in or DLL beneath Java native methods. JSyn uses a time-hashed event buffering system to provide accurate timing for output events. JSyn is available at “http://www.softsynth.com/jsyn”.
... "@"is the Forth word ("fetch") for retrieving the content... more ... "@"is the Forth word ("fetch") for retrieving the contents of that variable. "!" is the Forth word ("store") for storing to a variable. ... ( store object's address in variable ) and later, elsewhere in the code: COOL-LICK-NEEDED? IF ( check to see if cool-lick-need is true? ...
We have implemented a high-level vocal gesture classifier which uses Adaptive Principal Component... more We have implemented a high-level vocal gesture classifier which uses Adaptive Principal Component EXtraction (APEX), a neural network implementation of Principal Components Analysis (PCA), to reduce a multi-dimensional space of statistical features into a three-dimensional highlevel feature space. The classifier is used within Auracle, a real-time, collaborative, Internet-based instrument: highlevel features, along with envelope data extracted from lowlevel voice analysis, are used to drive sound synthesis. The APEX neural network is initially trained with a sample database of vocal gestures, and it continues to adapt (both within single user sessions and over longer time periods) in response to user interaction. Both training and evolution are accomplished without supervision, so that the nature of the classifications is determined more by how users interact with the system than by the preconceptions of its designers.
Auracle is a voice-controlled, networked sound instrument that enables users to control a softwar... more Auracle is a voice-controlled, networked sound instrument that enables users to control a software synthesizer with their voice and to interact with each other in real time over the Internet. This paper discusses the historical background of the project, beginning with Neuhaus' 'virtual aural spaces' in the 1960s and relating them to Barbosa's conception of 'shared sonic environments'. The architecture of the system is described in detail, including the multi-level analysis of vocal input, the communication of that analysis data across the network, and the mapping of that data onto a software synthesizer.
Uploads
Papers by Phil Burk