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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Strutt, J.W. (Lord Rayleigh): The Theory of Sound (1877)
Hudak, P., Makucevich, T., Gadde, S., Whong, B.: Haskore Music Notation – an Algebra of Music. J. Func. Prog. 6(3), 465–483 (1996); Hudak, P.: Haskore Music Tutorial. In: Advanced Functional Programming, pp. 38–67 (1996), The system is maintained at http://www.haskell.org/haskore/
Boulanger, R.: The Csound Book (2000), See also the site, http://www.csounds.com
Smith, J.O.: Center for Computer Research in Music and Acoustics (CCRMA), Stanford University (2003), Web publications at http://www-ccrma.stanford.edu/~jos/ ; Also: Physical modelling using digital waveguides, Computer Mus. Journal 16, 74–87 (1992)
Chowning, J.: The Synthesis of Complex Audio Spectra by Means of Frequency Modulation. Journal of Audio Eng. Soc. 21(7) (1973)
Karplus, K., Strong, A.: Digital Synthesis of Plucked Strings and Drum Timbres. Computer Mus. Journal 7(2), 43–55 (1983); See also: Jaffe, D.A., Smith, J.O.: Extensions of the Karplus-Strong Plucked String Algorithm. Comp. Mus. Journal 7(2), 56–69 (1983)
Bill Schottstaedt and others, Common Lisp Music, site http://ccrma-www.stanford.edu/software/clm/
Dannenberg, R.B.: Nyquist Reference Manual, http://www-2.cs.cmu.edu/~rbd/doc/nyquist/
Thielemann, H.: Audio Processing Using Haskell. In: Proc. 7th Int. Conf. on Digital Audio Effects (DAFx 2004), Naples, pp. 201–206 (2004)
Donadio, M.: HaskellDsp sources, site, http://haskelldsp.sourceforge.net
Cook, P.: site, http://www-ccrma.stanford.edu/CCRMA/Software/STK/ , See also the book: Real Sound Synthesis for Interactive Applications, A.K. Peters (2002)
Plasmeijer, R., van Eekelen, M.: Clean Language Report, version 2.1., site www.cs.kun.nl/~clean/
Tammelin, O., Buzz, J.: Modular software music studio, see e.g. www.buzzmachines.com/ or http://www.jeskola.net/
Puckette, M.: Pure Data: PD, Documentation, http://crca.ucsd.edu/~msp/Pd_documentation/
Déchelle, F.: Various IRCAM free software: jMax and OpenMusic, Linux Audio Developers Meeting, Karlsruhe, (2003), See also http://freesoftware.ircam.fr/
Wang, G., Cook, P.: ChucK: a Concurrent, On-the-fly, Audio Programming Language. In: Intern. Comp. Music Conf., Singapore (2003), See also: http://chuck.cs.princeton.edu/
Steiglitz, K.: A DSP Primer: With Applications to Digital Audio and Computer Music. Addison-Wesley, Reading (1996)
Karczmarczuk, J.: Generating power of Lazy Semantics. Theor. Comp. Science 187, 203–219 (1997)
Hänninen, R., Välimäki, V.: An improved digital waveguide model of a flute with fractional delay filters. In: Proc. Nordic Acoustical Meeting, Helsinki, pp. 437–444 (1996)
Orphanidis, S.: Introduction to Signal Processing. Prentice-Hall, Englewood Cliffs (1995)
Thiran, J.P.: Recursive digital filters with maximally flat group delay. IEEE Trans. Circuit Theiry 18(6), 659–664 (1971)
Schroeder, M.R., Logan, B.F.: Colorless artificial reverberation. IRE Transactions AU-9, 209–214 (1961)
Smith, J.O.: A new approach to digital reverberation using closed waveguide networks. In: Proceedings, ICMC (1985)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Karczmarczuk, J. (2005). Functional Framework for Sound Synthesis. In: Hermenegildo, M.V., Cabeza, D. (eds) Practical Aspects of Declarative Languages. PADL 2005. Lecture Notes in Computer Science, vol 3350. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30557-6_3
Download citation
DOI: https://doi.org/10.1007/978-3-540-30557-6_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-24362-5
Online ISBN: 978-3-540-30557-6
eBook Packages: Computer ScienceComputer Science (R0)