CLAM: a framework for efficient and rapid development of cross-platform audio applications

CLAM is a C++framework that offers a complete development and research platform for the audio and music domain. Apart from offering an abstract model for audio systems, it also includes a repository of processing algorithms and data types as well as a number of tools such as audio or MIDI input/output. All these features can be exploited to build cross-platform applications or to build rapid prototypes to test signal and media processing algorithms and systems. The framework also includes a number of stand-alone applications that can be used for tasks such as audio analysis/synthesis, plug-in development or metadata annotation.In this article we give a brief overview of CLAM's features and applications.

[1]  Xavier Amatriain,et al.  An Object-oriented metamodel for digital signal processing with a focus on audio and music , 2005 .

[2]  Gérard G. Medioni,et al.  A modular middleware flow scheduling framework (poster session) , 2000, ACM Multimedia.

[3]  Barry Vercoe,et al.  A Manual for the Audio Processing System and Supporting Programs with Tutorials , 2001 .

[4]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[5]  Joachim Haas SALTO A Spectral Domain Saxophone Synthesizer , 2001 .

[6]  Xavier Amatriain CLAM: A Framework for Audio and Music Application Development , 2007, IEEE Software.

[7]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[8]  David H. Laidlaw,et al.  The application visualization system: a computational environment for scientific visualization , 1989, IEEE Computer Graphics and Applications.

[9]  Victor Lazzarini SOUND PROCESSING WITH THE SndObj LIBRARY: AN OVERVIEW , 2001 .

[10]  David L. Tennenhouse,et al.  The VuSystem: A Programming System for Compute-Intensive Multimedia , 1996, IEEE J. Sel. Areas Commun..

[11]  Roger B. Dannenberg Combining Visual and Textual Representations for Flexible Interactive Audio Signal Processing , 2004, ICMC.

[12]  Ralph Johnson,et al.  An interactive environment for object-oriented music composition and sound synthesis , 1988, OOPSLA 1988.

[13]  X. Amatriain,et al.  XML as a means of control for audio processing, synthesis and analysis , 2001 .

[14]  David A. Wilson,et al.  C++ Programming With Macapp , 1990 .

[15]  Edward A. Lee,et al.  Overview of the Ptolemy project , 2001 .

[16]  Pau Arumí,et al.  Developing Cross-Platform audio and Music Applications with the CLAM Framework , 2005, ICMC.

[17]  George Tzanetakis,et al.  MARSYAS3D: A PROTOTYPE AUDIO BROWSER-EDITOR USING A LARGE SCALE IMMERSIVE VISUAL AND AUDIO DISPLAY , 2001 .

[18]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[19]  Andrei Alexandrescu,et al.  Modern C++ Design , 2001 .

[20]  C Haythornwaite,et al.  Gamma, E., Helm, R., Johnson, R. & Vlissides, J. Design Patterns: Elements of Reusable Object Oriented Software. New York: Addison-Wesley, 1995. , 2002 .

[21]  Amar Chaudhary,et al.  An Open Architecture for Real-Time Audio Processing Software , 1999 .

[22]  Philipp Ackermann,et al.  Direct manipulation of temporal structures in a multimedia application framework , 1994, MULTIMEDIA '94.

[23]  Miller Puckette,et al.  Max at Seventeen , 2002, Computer Music Journal.

[24]  Paul F. Whelan,et al.  Machine Vision Algorithms in Java: Techniques and Implementation , 2000 .

[25]  H. Lucic,et al.  Developing multimedia services using high-performance concurrent communication design patterns , 2003, Proceedings of the 7th International Conference on Telecommunications, 2003. ConTEL 2003..

[26]  Stephen Travis Pope The well-tempered object: musical applications of object-oriented software technology , 1991 .

[27]  Matthew Wright Implementation and Performance Issues with OpenSound Control , 1998, ICMC.

[28]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[29]  Lawrence A. Rowe,et al.  Design and performance of the Berkeley Continuous Media Toolkit , 1997, Electronic Imaging.

[30]  David García,et al.  The CLAM Annotator: A Cross-Platform Audio Descriptors Editing Tool , 2005, ISMIR.

[31]  Steve Kubica,et al.  Cantata: visual programming environment for the Khoros system , 1995, COMG.

[32]  Tino Lourens,et al.  TiViPE - Tino's Visual Programming Environment , 2004, Proceedings of the 28th Annual International Computer Software and Applications Conference, 2004. COMPSAC 2004..

[33]  Gérard G. Medioni,et al.  A Modular Software Architecture for Real-Time Video Processing , 2001, ICVS.

[34]  David García,et al.  CLAM: an OO framework for developing audio and music applications , 2002, OOPSLA '02.

[35]  Chandrasekhar Ramakrishnan,et al.  The CREATE Signal Library ("Sizzle"): Design, Issues, and Applications , 2003, ICMC.

[36]  Erich Gamma,et al.  Design and Implementation of ET++, a Seamless Object-Oriented Application Framework 1 , 1989 .

[37]  Xavier Amatriain,et al.  A dataflow pattern catalog for sound and music computing , 2006, PLoP '06.

[38]  Brian Foote,et al.  Designing Reusable Classes , 2001 .

[39]  Xavier Amatriain,et al.  A Domain-Specific Metamodel for Multimedia Processing Systems , 2007, IEEE Transactions on Multimedia.

[40]  Edward A. Lee,et al.  Dataflow process networks , 1995, Proc. IEEE.

[41]  Ed F. Deprettere,et al.  Context-aware process networks , 2003, Proceedings IEEE International Conference on Application-Specific Systems, Architectures, and Processors. ASAP 2003.

[42]  Pierre Cointe,et al.  The Formes system: a musical application of object-oriented concurrent programming , 1987 .