SlideShare a Scribd company logo
Developing Cross-Platform  Audio and Music Applications with the CLAM Framework  ACM Multimedia '06 Xavier Amatriain (UCSB) Pau Arumí (UPF) David Garcia (UPF)
Index Introduction Applications Infrastructure Repositories Tools Conclusions Demo!
Started in October 2000 There are more than 250 C++ classes (50.000 loc), compiled under GNU/ Linux, Windows and OSX. CLAM has been used for various audio projects: time-stretching, real-time sax synthesis, content analysis and Mpeg7 description, real-time audio effects, audio annotation... It has also been used for educational purposes. Factsheet
Highlights Although it currently specializes in audio and music, it presents a metamodel that has proven valid for general multimedia.  Deals well with   spectral-domain   processing Can process streams with   different   kinds of   data   types, even user-defined Two different working modes: application framework and   rapid-prototyping .   It is really   Object-oriented  and has been documented through a Pattern Language It is   efficient   and can be used for real-time applications
Applications. Annotator
Applications. SMSTools
Applications. Network Editor
Applications. Others
CLAM Components
Infrastructure. CLAM Network model The CLAM network is a graphical model of computation based on Dataflow Process Networks  Scheduling can be performed both statically and dynamically, depending on the particular application.
Infrastructure. Ports,  Controls, and Configurations Two kinds of connection mechanisms between Processing Objects: Ports Data is transmitted synchronously through FIFO queues Controls Events are transmitted asynchronously Configurations , unlike Controls, hold parameters that produce expensive or structural changes in a Processing Object They can only be set when the Processing Object is not running
Infrastructure. Processing
Infrastructure. Dynamic vs. Static Compositions Processing Objects can be grouped using two different mechanisms: Networks Created dynamically at run-time Strive for flexibility and understandability Offer automatic flow and data management Processing Composites Created statically at compile-time Strive for efficiency The programmer is in charge of most flow management issues.
Repositories (black-box) Ready-to-use  processing classes  (almost 150): Analysis (FFT, spectral analysis, SMS analysis, Tonal Analysis, descriptor extraction...), Arithmetic Operators, Input/Output Processing Objects (Audio, AudioFile, MIDI, SDIF), Generators, Transformation, Synthesis Ready-to-use  data classes :  Audio, Spectrum, SpectralPeakArray, Fundamental, Frame, Segment, Descriptors...
Tools. Platform Abstraction Audio I/O MIDI I/O Audio File I/O: wav, aiff, mp3, ogg... ID3 tags. SDIF File support Support for OSC, JACK, LADSPA, SDIF, VST, ASIO...
Tools XML Any Processing Data or Configuration has automatic  XML persistency. GUI Visualization module based on the Qt toolkit Plus many ready-to-use graphical components (widgets) Including debugging tools
External Open Source libraries FFTW (FFT) Xercesc & libxml (XML using DOM API) FLTK and QT GUI toolkits RtAudio, PortAudio or DirectX (for Windows audio) Libsndfile, Ogg-Vorbis, libmad (mp3), id3lib, for handling audio files. oscpack libjack CppUnit (testing framework, only used for development) pthreads (multithreading on Windows)
Conclusions CLAM is currently in release 0.91 and we plan on getting to 1.0 by the end of 2006. But it already offers: A powerful framework that can yield efficient and robust applications.  A prototyping tool for rapid development A number of ready-to-use applications.
Demo
Visit us at.... www.clam.upf.es Xavier Amatriain, Pau Arumi,  David Garcia ...

More Related Content

ODP
Multilevel Audio Descriptors @WWW09 develtrack
PPTX
Intel’S Larrabee
PPTX
Eclipse Con Europe 2014 How to use DAWN Science Project
PPT
TXM background
PDF
Characterization of CDROMs for Emulation-based Access. Klaus Rechert, Thomas ...
PPT
TXM import process
PDF
One Core Preservation System for all your Data. No Exceptions! Marco Klindt a...
Multilevel Audio Descriptors @WWW09 develtrack
Intel’S Larrabee
Eclipse Con Europe 2014 How to use DAWN Science Project
TXM background
Characterization of CDROMs for Emulation-based Access. Klaus Rechert, Thomas ...
TXM import process
One Core Preservation System for all your Data. No Exceptions! Marco Klindt a...

What's hot (8)

PDF
Parallel Algorithms
PDF
PAKDD2016 Tutorial DLIF: Introduction and Basics
PDF
Haskell Accelerate
PDF
Aca2 08 new
PPT
Hadoop and MapReduce
PDF
A Common Backend for Hardware Acceleration of DSLs on FPGA
PPTX
Logic synthesis,flootplan&placement
PPTX
Madeo - a CAD Tool for reconfigurable Hardware
Parallel Algorithms
PAKDD2016 Tutorial DLIF: Introduction and Basics
Haskell Accelerate
Aca2 08 new
Hadoop and MapReduce
A Common Backend for Hardware Acceleration of DSLs on FPGA
Logic synthesis,flootplan&placement
Madeo - a CAD Tool for reconfigurable Hardware
Ad

Similar to The CLAM Framework (20)

PDF
Free Software for Free Sound
PPT
Csc533 ch3a mm_framework
PPT
Prograamção Paralela Baseada em Componentes (Introduzido o Modelo #)
PPT
Interoperability
PPT
Arch stylesandpatternsmi
PDF
Cardamom Omg
PDF
Cardamom Omg
PDF
Skype testing overview
PDF
Skype testing overview
PPT
Clusters (Distributed computing)
PPT
3. Distributed System Models ssssssssssssssssss.ppt
PPT
06 uml-component
PDF
Giddings
PDF
Standardizing the Data Distribution Service (DDS) API for Modern C++
PPT
Wk6a
PPT
SWE6653_Implementing Software Architecture.ppt
PDF
Intro to Software Engineering - Requirements Analysis
PDF
Cardamom O M G
PPT
Multi Processor Architecture for image processing
Free Software for Free Sound
Csc533 ch3a mm_framework
Prograamção Paralela Baseada em Componentes (Introduzido o Modelo #)
Interoperability
Arch stylesandpatternsmi
Cardamom Omg
Cardamom Omg
Skype testing overview
Skype testing overview
Clusters (Distributed computing)
3. Distributed System Models ssssssssssssssssss.ppt
06 uml-component
Giddings
Standardizing the Data Distribution Service (DDS) API for Modern C++
Wk6a
SWE6653_Implementing Software Architecture.ppt
Intro to Software Engineering - Requirements Analysis
Cardamom O M G
Multi Processor Architecture for image processing
Ad

More from Xavier Amatriain (20)

PDF
Data/AI driven product development: from video streaming to telehealth
PDF
AI-driven product innovation: from Recommender Systems to COVID-19
PDF
AI for COVID-19 - Q42020 update
PDF
AI for COVID-19: An online virtual care approach
PDF
Lessons learned from building practical deep learning systems
PDF
AI for healthcare: Scaling Access and Quality of Care for Everyone
PDF
Towards online universal quality healthcare through AI
PDF
From one to zero: Going smaller as a growth strategy
PDF
Learning to speak medicine
PDF
ML to cure the world
PDF
Recommender Systems In Industry
PDF
Medical advice as a Recommender System
PDF
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
PDF
Past present and future of Recommender Systems: an Industry Perspective
PDF
Staying Shallow & Lean in a Deep Learning World
PDF
Machine Learning for Q&A Sites: The Quora Example
PDF
BIG2016- Lessons Learned from building real-life user-focused Big Data systems
PDF
Strata 2016 - Lessons Learned from building real-life Machine Learning Systems
PDF
Past, present, and future of Recommender Systems: an industry perspective
PDF
Barcelona ML Meetup - Lessons Learned
Data/AI driven product development: from video streaming to telehealth
AI-driven product innovation: from Recommender Systems to COVID-19
AI for COVID-19 - Q42020 update
AI for COVID-19: An online virtual care approach
Lessons learned from building practical deep learning systems
AI for healthcare: Scaling Access and Quality of Care for Everyone
Towards online universal quality healthcare through AI
From one to zero: Going smaller as a growth strategy
Learning to speak medicine
ML to cure the world
Recommender Systems In Industry
Medical advice as a Recommender System
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
Past present and future of Recommender Systems: an Industry Perspective
Staying Shallow & Lean in a Deep Learning World
Machine Learning for Q&A Sites: The Quora Example
BIG2016- Lessons Learned from building real-life user-focused Big Data systems
Strata 2016 - Lessons Learned from building real-life Machine Learning Systems
Past, present, and future of Recommender Systems: an industry perspective
Barcelona ML Meetup - Lessons Learned

Recently uploaded (20)

PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
Tartificialntelligence_presentation.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Encapsulation theory and applications.pdf
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Spectroscopy.pptx food analysis technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
cuic standard and advanced reporting.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Programs and apps: productivity, graphics, security and other tools
Group 1 Presentation -Planning and Decision Making .pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
SOPHOS-XG Firewall Administrator PPT.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Tartificialntelligence_presentation.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Per capita expenditure prediction using model stacking based on satellite ima...
A comparative analysis of optical character recognition models for extracting...
20250228 LYD VKU AI Blended-Learning.pptx
Electronic commerce courselecture one. Pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Encapsulation theory and applications.pdf
NewMind AI Weekly Chronicles - August'25-Week II
“AI and Expert System Decision Support & Business Intelligence Systems”
Spectroscopy.pptx food analysis technology
Reach Out and Touch Someone: Haptics and Empathic Computing
cuic standard and advanced reporting.pdf
Unlocking AI with Model Context Protocol (MCP)
Programs and apps: productivity, graphics, security and other tools

The CLAM Framework

  • 1. Developing Cross-Platform Audio and Music Applications with the CLAM Framework ACM Multimedia '06 Xavier Amatriain (UCSB) Pau Arumí (UPF) David Garcia (UPF)
  • 2. Index Introduction Applications Infrastructure Repositories Tools Conclusions Demo!
  • 3. Started in October 2000 There are more than 250 C++ classes (50.000 loc), compiled under GNU/ Linux, Windows and OSX. CLAM has been used for various audio projects: time-stretching, real-time sax synthesis, content analysis and Mpeg7 description, real-time audio effects, audio annotation... It has also been used for educational purposes. Factsheet
  • 4. Highlights Although it currently specializes in audio and music, it presents a metamodel that has proven valid for general multimedia. Deals well with spectral-domain processing Can process streams with different kinds of data types, even user-defined Two different working modes: application framework and rapid-prototyping . It is really Object-oriented and has been documented through a Pattern Language It is efficient and can be used for real-time applications
  • 10. Infrastructure. CLAM Network model The CLAM network is a graphical model of computation based on Dataflow Process Networks Scheduling can be performed both statically and dynamically, depending on the particular application.
  • 11. Infrastructure. Ports, Controls, and Configurations Two kinds of connection mechanisms between Processing Objects: Ports Data is transmitted synchronously through FIFO queues Controls Events are transmitted asynchronously Configurations , unlike Controls, hold parameters that produce expensive or structural changes in a Processing Object They can only be set when the Processing Object is not running
  • 13. Infrastructure. Dynamic vs. Static Compositions Processing Objects can be grouped using two different mechanisms: Networks Created dynamically at run-time Strive for flexibility and understandability Offer automatic flow and data management Processing Composites Created statically at compile-time Strive for efficiency The programmer is in charge of most flow management issues.
  • 14. Repositories (black-box) Ready-to-use processing classes (almost 150): Analysis (FFT, spectral analysis, SMS analysis, Tonal Analysis, descriptor extraction...), Arithmetic Operators, Input/Output Processing Objects (Audio, AudioFile, MIDI, SDIF), Generators, Transformation, Synthesis Ready-to-use data classes : Audio, Spectrum, SpectralPeakArray, Fundamental, Frame, Segment, Descriptors...
  • 15. Tools. Platform Abstraction Audio I/O MIDI I/O Audio File I/O: wav, aiff, mp3, ogg... ID3 tags. SDIF File support Support for OSC, JACK, LADSPA, SDIF, VST, ASIO...
  • 16. Tools XML Any Processing Data or Configuration has automatic XML persistency. GUI Visualization module based on the Qt toolkit Plus many ready-to-use graphical components (widgets) Including debugging tools
  • 17. External Open Source libraries FFTW (FFT) Xercesc & libxml (XML using DOM API) FLTK and QT GUI toolkits RtAudio, PortAudio or DirectX (for Windows audio) Libsndfile, Ogg-Vorbis, libmad (mp3), id3lib, for handling audio files. oscpack libjack CppUnit (testing framework, only used for development) pthreads (multithreading on Windows)
  • 18. Conclusions CLAM is currently in release 0.91 and we plan on getting to 1.0 by the end of 2006. But it already offers: A powerful framework that can yield efficient and robust applications. A prototyping tool for rapid development A number of ready-to-use applications.
  • 19. Demo
  • 20. Visit us at.... www.clam.upf.es Xavier Amatriain, Pau Arumi, David Garcia ...