Functional framework for sound synthesis

  • Authors:
  • Jerzy Karczmarczuk

  • Affiliations:
  • Dept. of Computer Science, University of Caen, France

  • Venue:
  • PADL'05 Proceedings of the 7th international conference on Practical Aspects of Declarative Languages
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present an application of functional programming in the domain of sound generation and processing. We use the lazy language Clean to define purely functional stream generators, filters and other processors, such as reverberators. Audio signals are represented (before the final output to arrays processed by the system primitives) as co-recursive lazy streams, and the processing algorithms have a strong dataflow taste. This formalism seems particularly appropriate to implement the ‘waveguide’, or ‘physically-oriented’ sound models. Lazy programming allocates the dynamical memory quite heavily, so we do not propose a real-time, industrial strength package, but rather a pedagogical library, offering natural, easy to understand coding tools. We believe that, thanks to their simplicity and clearness, such functional tools can be also taught to students interested in audio processing, but with a limited competence in programming.