Write a Blog >>
ICFP 2019
Sun 18 - Fri 23 August 2019 Berlin, Germany
Fri 23 Aug 2019 09:40 - 10:10 at Stockholm - Sound Chair(s): Youyou Cong

We investigate in this paper the applicability of the notion monad streams to media stream programming, and, more specifically, audio processing and control. Simply said, a monad stream is sort of a list guarded by a monad action that returns either nothing when the stream is over, or, otherwise, just the current value of the stream and the guarding action of its continuation.

Applied to the IO monad, it appears that monad streams can be used for modeling both input streams and output streams, with full control of the possibly synchronism between input and output streams in stream functions. This allows for defining both synchronous or asynchronous functions, or any combination of both notions.

In the abstract, this opens quite intriguing and generic solutions towards programming systems that are globally asynchronous and locally synchronous (GALS). In the concrete, applied to real-time audio, this allows for combining, in a fairly simple and unified way, both (synchronous) audio processing and (asynchronous) audio control. As far as performance are concerned, our proposal allows non-trivial transformation of audio streams at 44100 Hz with a 10ms latency, a performance comparable to functional programing languages dedicated to real-time audio processing such as FAUST.

1996, PhD in Computer science, Bordeaux University,

2005, Habilitation à diriger les recherches, Bordeaux University

Since 2015, team leader of the research project PoSET.

Fri 23 Aug

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

09:00 - 10:00
SoundFARM at Stockholm
Chair(s): Youyou Cong Tokyo Institute of Technology
09:10
30m
Talk
Csound-expression: Haskell framework for computer music
FARM
09:40
30m
Talk
Screaming in the IO monad
FARM
David Janin Bordeaux INP / CNRS LaBRI / Bordeaux University