Skip to main content
Log in

A framework for efficient and rapid development of cross-platform audio applications

  • Regular Paper
  • Published:
Multimedia Systems Aims and scope Submit manuscript

Abstract

In this article, we present CLAM, a C++ software framework, that offers a complete development and research platform for the audio and music domain. It offers an abstract model for audio systems and includes a repository of processing algorithms and data types as well as all the necessary tools for audio and control input/output. The framework offers tools that enable the exploitation of all these features to easily build cross-platform applications or rapid prototypes for media processing algorithms and systems. Furthermore, included ready-to-use applications can be used for tasks such as audio analysis/synthesis, plug-in development, feature extraction or metadata annotation. CLAM represents a step forward over other similar existing environments in the multimedia domain. Nevertheless, it also shares models and constructs with many of those. These commonalities are expressed in the form of a metamodel for multimedia processing systems and a design pattern language.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Ackermann, P.: Direct manipulation of temporal structures in a multimedia application framework. In: Proceedings of the 1994 ACM Multimedia Conference, 1994

  2. Alexandrescu A. (2001). Modern C++ design. Addison–Wesley, Pearson Education, New York

    Google Scholar 

  3. Amatriain, X.: An object-oriented metamodel for digital signal processing with a focus on audio and music. PhD thesis, Universitat Pompeu Fabra, Barcelona, Spain, 2004

  4. Amatriain X. (2007). Clam: a framework for audio and music application development. IEEE Softw. 24(1): 82–85

    Article  Google Scholar 

  5. Amatriain X. (2007). A domain-specific metamodel for multimedia processing systems. IEEE Trans. Multimed. 9(6): 1284–1298

    Article  Google Scholar 

  6. Amatriain, X., Arumi, P.: Developing cross-platform audio and music applications with the CLAM Framework. In: Proceedings of International Computer Music Conference, 2005

  7. Amatriain X., Bonada J., Loscos A. and Serra X. (2002). DAFX: Digital Audio Effects (Udo Z+áalzer ed.), chapter Spectral Processing. Wiley, New York, 373–438

    Google Scholar 

  8. Amatriain, X., de Boer, M., Robledo, E., Garcia, D.: CLAM: an OO framework for developing audio and music applications. In: Proceedings of the 2002 Conference on Object Oriented Programming, Systems and Application (OOPSLA 2002)(Companion Material), Seattle, USA. ACM, New York (2002)

  9. Amatriain, X., Massaguer, J., Garcia, D., Mosquera, I.: The clam annotator: a cross-platform audio descriptors editing tool. In: Proceedings of the 2005 International Symposium on Music Information Retrieval, ISMIR ’05, 2005

  10. Arumi, P., Garcia, D., Amatriain, X.: A dataflow pattern language for sound and music computing. In: Proceedings of Pattern Languages of Programming (PloP 06), 2006

  11. Aucouturier, J.: Ten experiments on the modelling of polyphonic timbre. PhD thesis, University of Paris 6/Sony CSL Paris, 2006

  12. Beck K. (2000). Test Driven Development by Example. Addison– Wesley, New York

    Google Scholar 

  13. Burbeck, S.: Application programming in smalltalk-80: how to use model-view-controller (mvc). Technical report, Xerox PARC, 1987

  14. Chaudhary, A., Freed, A., Wright, M.: An open architecture for real-time audio processing software. In: Proceedings of the Audio Engineering Society 107th Convention, 1999

  15. Cointe P., Briot J.P. and Serpette B. (1987). Object-Oriented Concurrent Programming, chapter The FORMES Language: a Musical Application of Object Oriented Concurrent Programming. MIT Press, Cambridge

    Google Scholar 

  16. Cook, P.: Synthesis Toolkit in C++. In: Proceedings of the 1996 SIGGRAPH, 1996

  17. Dannenberg, R.B.: Combining visual and textual representations for flexible interactive audio signal processing. In: Proceedings of the 2004 International Computer Music Conference (ICMC’04) (2004)

  18. Dannenberg, R.B.: Combining visual and textual representations for flexible interactive audio signal processing. In: Proceedings of the 2004 International Computer Music Conference (ICMC’04) (2004)

  19. Fowler M., Beck K., Brant J., Opdyke W. and Roberts D. (1999). Refactoring: improving the design of existing code. Addison–Wesley, New York

    Google Scholar 

  20. François, A.R.J., Medioni, G.G.: A modular middleware flow scheduling framework. In: Proceedings of ACM Multimedia 2000, pp. 371–374, Los Angeles, CA, November 2000

  21. François, A.R.J., Medioni, G.G.: A modular software architecture for real-time video processing. In: IEEE International Workshop on Computer Vision Systems, pp. 35–49. Vancouver, B.C., Canada, July 2001

  22. Johnson R., Gamma E., Helm R. and Vlissides J. (1996). Design Patterns—Elements of Reusable Object-Oriented Software. Addison– Wesley, New York

    Google Scholar 

  23. Garcia, D., Amatrian, X.: XML as a means of control for audio processing, synthesis and analysis. In: Proceedings of the MOSART Workshop on Current Research Directions in Computer Music, Barcelona, Spain, 2001

  24. Green T.R.G. and Petre M. (1996). Usability analysis of visual programming environments: a “cognitive dimensions” framework. J. Vis. Lang. Comput. 7(2): 131–174

    Article  Google Scholar 

  25. Haas, J.: SALTO—a spectral domain saxophone synthesizer. In: Proceedings of MOSART Workshop on Current Research Directions in Computer Music, Barcelona, Spain, 2001

  26. Hebel K.J. (1991). The well-tempered object. musical applications of object-oriented software technology, chapter Javelina: An Environment for Digital Signal Processor Software Development. MIT Press, Cambridge, 171–187

    Google Scholar 

  27. Hylands C. (2003). Overview of the Ptolemy Project. Technical report, Department of Electrical Engineering and Computer Science, University of California. Berklee, CA, USA

    Google Scholar 

  28. Johnson R.E. and Foote J. (1988). Designing Reusable Classes. J. Object Oriented Program. 1(2): 22–35

    Google Scholar 

  29. Lazzarini, V.: Sound processing with the SndObj Library: an overview. In: Proceedings of the 4th International Conference on Digital Audio Effects (DAFX ’01), 2001

  30. Lee, E.A., Park, T.: Dataflow process networks. In: Proceedings of the IEEE, vol. 83, pp. 773–799 (1995)

  31. Lindblad C.J. and Tennenhouse D.L. (1996). The VuSystem: A Programming System for Compute-Intensive Multimedia. IEEE J. Sel. Areas Commun. 14(7): 1298–1313

    Article  Google Scholar 

  32. Lourens, T.: TiViPE—Tino’s visual programming environment. In: Proceedings of the 28th Annual International Computer Software and Applications Conference (COMPSAC’04), pp. 10–15, 2004

  33. Lucid, H., Huljenid, D.: Developing multimedia services using high-performance concurrent communication design patterns. In: Proceedings of the 7th International Conference on Telecommunications. ConTEL 2003, 2003

  34. Manolescu, D.A.: A dataflow pattern language. In: Proceedings of the 4th Pattern Languages of Programming Conference, 1997

  35. Mayer-Patel, K., Rowe, L.: Design and performance of the Berkeley continuous media toolkit. In: Proceedings of Multimedia Computing and Networking 1997, pp. 194–206, San Jose, CA (1997)

  36. Mellinger D.K., Garnett G.E. and Mont-Reynaud B. (1991). The Well- tempered Object Musical Applications of Object-Oriented Software Technology, chapter Virtual Digital Signal Processing in an Object-Oriented System. MIT Press, Cambridge, 188–194

    Google Scholar 

  37. Parks, T.M.: Bounded Schedule of Process Networks. PhD thesis, University of California at Berkeley, 1995

  38. Pope S.T. (2001). Squeak: Open Personal Computing and Multimedia, chapter Music and Sound Processing in Squeak Using Siren. Prentice- Hall, Englewood Cliffs

    Google Scholar 

  39. Pope, S.T., Ramakrishnan, C.: The Create Signal Library (“Sizzle”): Design, Issues and Applications. In: Proceedings of the 2003 International Computer Music Conference (ICMC ’03), 2003

  40. Puckette, M.: Pure data. In: Proceedings of the 1996 International Computer Music Conference, pp. 269–272 (1996)

  41. Puckette M. (2002). Max at seventeen. Comput. Music J. 26(4): 31–43

    Article  Google Scholar 

  42. Roberts, D., Johnson, R.: Evolve frameworks into domain-specific languages. In: Proceedings of the 3rd International Conference on Pattern Languages for Programming, Monticelli, IL, USA, September 1996

  43. Robledo, E.: RAPPID: robust real time audio processing with CLAM. In: Proceedings of 5th International Conference on Digital Audio Effects, Hamburg, Germany, 2002

  44. Scaletti, C., Johnson, R.E.: An interactive environment for object-oriented music composition and sound synthesis. In: Proceedings of the 1988 Conference on Objec-Oriented Programming, Systems, Languages, and Applications (OOPSLA’88), pp. 25–30, September 1988

  45. Tzanetakis, G., Cook, P.: Marsyas3D: a prototype audio browser-editor using a large-scale immersive visual and audio display. In: Proceedings of the International Conference on Auditory Display (ICAD). IEEE, 2001

  46. Tzanetakis G. and Cook P. (2002). Audio Information Retrieval using Marsyas. Kluewer, Dordrecht

    Google Scholar 

  47. Upson C. (1989). The application visualization system: a computational environment for scientific visualization. IEEE Comput. Graph. Appl. 9(4): 32–40

    Article  Google Scholar 

  48. van Dijk, H.W., Sips, H.J., Deprettere, Ed F.: On context-aware process networks. In: Proceedings of the International Symposium on Mobile Multimedia & Applications (MMSA 2002), December 2002

  49. Vercoe, B.L.: CSound. The CSound Manual Version 3.48. A Manual for the Audio Processing System and supporting program with Tutorials, 1992

  50. Weinand, A., Gamma, E., Marty, R.: Design and implementation of ET++, a seamless object-oriented application framework. Struct. Program. 10(2) (1989)

  51. Whelan P.F. and Molloy D. (2000). Machine Vision Algorithms in Java: Techniques and Implementation. Springer, Berlin

    Google Scholar 

  52. Wilson D.A. (1990). Programming With Macapp. Addison–Wesley, New York

    Google Scholar 

  53. Wright, M.: Implementation and performance issues with open sound control. In: Proceedings of the 1998 International Computer Music Conferen ce (ICMC ’98). Computer Music Association, 1998

  54. www CLAM. CLAM website: http://www.iua.upf.es/mtg/clam, 2004.

  55. www Dannenberg. Dannenberg website: http://www.cs.cmu.edu/rbd/doc/icmc2005workshop/, 2004

  56. Young M., Argiro D. and Kubica S. (1995). Cantata: visual programming environment for the khoros system. Comput. Graph. 29(2): 22–24

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Xavier Amatriain.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Amatriain, X., Arumi, P. & Garcia, D. A framework for efficient and rapid development of cross-platform audio applications. Multimedia Systems 14, 15–32 (2008). https://doi.org/10.1007/s00530-007-0109-6

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00530-007-0109-6

Keywords

Navigation