SlideShare a Scribd company logo
Software Frameworks for MIR



    Because Code also Matters...

           ISMIR 2004
            Xavier Amatrian
The value of implementation
●   Code is documentation
●   Code is publication
●   Code is test
●   Code is prove of concept
Why using a framework
●   We do not want to “reinvent the wheel”
    –   Reuse of code + Reuse of implementation
●   We want to dedicate as less time as possible to 
    implemtation, why not use something that has 
    proven to be useful in a similar situation.
    –   Framework = Patterns + Implementation
Frameworks, libraries, applications
                   (I)
●   A Framework is a general pool of constructs that 
    is not tightly enough organized to constitute a 
    predictive theory.
●   A Software Framework is an abstract design that 
    can be instantiated in a particular way for a 
    particular application.
●   An OO Software Framework is a set of classes 
    that embodies an abstract design for solutions to a 
    family of problems.
Frameworks, libraries, applications 
                   (II)
●   A Software Framework must offer:
    –   Ready­to­use components (black­box)
    –   Extension capabilities (white­box)
●   A Software Framework has to somehow grant 
    access to source code.
Frameworks, libraries, applications 
                  (III)
●   A software library is simply a collection of 
    functionalities that are conveniently packed and 
    can be accessed through an API
●   It is used from an application.
General Classification of 
Audio/Music Environments
Classification of MIR­related 
        Environments
Matlab and similar environments:
        What is wrong with Matlab anyway?
●   Matlab is Proprietary
    –   Everyone has it?
         ●   What about the toolkits
    –   Do I really know what is going on inside? Does that 
        matter?
    –   This problem has an obvious solution: Octave (
        www.octave.org)
         ●   It is used by many “top” institutions such as NASA
         ●   It has an interesting open and growing repository: Octave­
             Forge
Matlab and similar environments:
        What is wrong with Matlab anyway?
●   Matlab is Unefficient
    –   Some disciplines such as MIR have to really do 
        number­crunching and large database analysis.
    –   Matlab code may take many times more than its 
        functional equivalent in a compiled programming 
        language.
●   Matlab is Unstructured
    –   By definition Matlab and similar environments favor 
        unstructured code
    –   They do not favor reusability
C++ Software Frameworks
●   Why C++?
    –   It is efficient
    –   It can be OO
    –   It is a non­proprietary standard
    –   Many existing tools are on C++
●   Other languages
    –   Java
         ●   it is not efficient and it is proprietary
    –   Perl
         ●   it is not efficient and it is not OO
Conclusions
●   It is worth to use a framework
●   It is important to know what is out there and what 
    we can expect from it
●   Frameworks are evolving by nature
●   Frameworks generate metamodels

More Related Content

PDF
End-to-End Machine learning pipelines for Python driven organizations - Nick ...
PDF
Stairway to scala flyer
PDF
PyData2015
PDF
Collaborative modeling with sirius
PPTX
C++ in object oriented programming
ODP
Poio API and GraF-XML @ Balisage 2013
PPTX
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
ODP
Dc python programming day 1
End-to-End Machine learning pipelines for Python driven organizations - Nick ...
Stairway to scala flyer
PyData2015
Collaborative modeling with sirius
C++ in object oriented programming
Poio API and GraF-XML @ Balisage 2013
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
Dc python programming day 1

What's hot (20)

PPTX
Dl4j in the wild
PPTX
Programming Paradigms Seminar 1
PDF
Kotlin & arrow: the functional way
PDF
Guglielmo iozzia - Google I/O extended dublin 2018
ODP
Weaving aspects in PHP with the help of Go! AOP library
PDF
RoboCon 2018: How did we get here? Where do we go next?
PDF
Kotlin & Arrow the functional way
PPTX
Php traits
PDF
Acceptance Test Drive Development with Robot Framework
PPTX
C++ programming Assignment Help
PDF
Elixir Brasil 2019 - Quality: A Panacéia para seu código Elixir
PPTX
PPTX
PPTX
PPT
Basta! 2010 - VB6 Migration: Tips, Traps, and Techniques
PPT
Linq presentation by vaidhesh
PPTX
The Practice of Programming - Notation
PDF
Technical screening .Net Developer
PDF
Towards a Uniform User Interface for Editing Mapping Definitions
PDF
The Rise of Functional Programming
Dl4j in the wild
Programming Paradigms Seminar 1
Kotlin & arrow: the functional way
Guglielmo iozzia - Google I/O extended dublin 2018
Weaving aspects in PHP with the help of Go! AOP library
RoboCon 2018: How did we get here? Where do we go next?
Kotlin & Arrow the functional way
Php traits
Acceptance Test Drive Development with Robot Framework
C++ programming Assignment Help
Elixir Brasil 2019 - Quality: A Panacéia para seu código Elixir
Basta! 2010 - VB6 Migration: Tips, Traps, and Techniques
Linq presentation by vaidhesh
The Practice of Programming - Notation
Technical screening .Net Developer
Towards a Uniform User Interface for Editing Mapping Definitions
The Rise of Functional Programming
Ad

Viewers also liked (20)

PPTX
Design Frameworks for Analysis and Synthesis of Complex Systems
PDF
Teaching requirements analysis REET 2014 at RE2014
PDF
A Security Analysis Framework Powered By An Expert System
PPTX
Expert system
PPTX
EXPERT SYSTEM FOR EFFECTIVE EXTENSION SERVICE by sabanna.k.meti(M.Sc agri) u...
PPT
Decision Support System for clinical practice created on the basis of the Un...
PPTX
Expert Systems
PPTX
Expert systems in artificial intelegence
PPTX
Nimble framework
PDF
DRE REPORT- 2014 (1)
PPTX
Framework Design Guidelines For Brussels Users Group
PPTX
Overview of entity framework by software outsourcing company india
PPTX
Domain Driven Design Framework
PDF
Process Design on Prabandhan Framework
PDF
Framework for the analysis and design of encryption strategies based on d...
PPT
E learning analysis and design framework
PDF
OSVR Software Framework - Core - April 2015
PDF
Software Engineering - 02. Framework
PDF
How UI Framework improves design process
PPTX
ADUF - Adaptable Design Up Front
Design Frameworks for Analysis and Synthesis of Complex Systems
Teaching requirements analysis REET 2014 at RE2014
A Security Analysis Framework Powered By An Expert System
Expert system
EXPERT SYSTEM FOR EFFECTIVE EXTENSION SERVICE by sabanna.k.meti(M.Sc agri) u...
Decision Support System for clinical practice created on the basis of the Un...
Expert Systems
Expert systems in artificial intelegence
Nimble framework
DRE REPORT- 2014 (1)
Framework Design Guidelines For Brussels Users Group
Overview of entity framework by software outsourcing company india
Domain Driven Design Framework
Process Design on Prabandhan Framework
Framework for the analysis and design of encryption strategies based on d...
E learning analysis and design framework
OSVR Software Framework - Core - April 2015
Software Engineering - 02. Framework
How UI Framework improves design process
ADUF - Adaptable Design Up Front
Ad

Similar to Software Frameworks for Music Information Retrieval (20)

PPTX
object oriented programming examples
PPT
Java ppt-class_Introduction_class_Objects.ppt
PPT
Java ppt-class_basic data types methods definitions
PPT
JAVA object oriented programming (oop).ppt
PPTX
Introduction to Spring & Spring BootFramework
PDF
Shuzworld Analysis
PPSX
Elements of Java Language
PPTX
Untitled presentation about object oriented.pptx
PPTX
Session 02 - Elements of Java Language
PPT
Java for C++ programers
PPT
Object oriented programming_Unit1_Introduction.ppt
PDF
Bledar Gjocaj - Java open source
PPTX
Introduction to Java.pptx sjskmdkdmdkdmdkdkd
PPT
Unit 1- Basic concept of object-oriented-programming.ppt
PPTX
Unit 1 introduction to c++.pptx
PPTX
CS4443 - Modern Programming Language - I Lecture (1)
PDF
Difference between java and c#
PPTX
Oop lecture1-chapter1(review of java)
PPTX
Oop lecture1-chapter1(review of java)
PDF
Orthogonality: A Strategy for Reusable Code
object oriented programming examples
Java ppt-class_Introduction_class_Objects.ppt
Java ppt-class_basic data types methods definitions
JAVA object oriented programming (oop).ppt
Introduction to Spring & Spring BootFramework
Shuzworld Analysis
Elements of Java Language
Untitled presentation about object oriented.pptx
Session 02 - Elements of Java Language
Java for C++ programers
Object oriented programming_Unit1_Introduction.ppt
Bledar Gjocaj - Java open source
Introduction to Java.pptx sjskmdkdmdkdmdkdkd
Unit 1- Basic concept of object-oriented-programming.ppt
Unit 1 introduction to c++.pptx
CS4443 - Modern Programming Language - I Lecture (1)
Difference between java and c#
Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)
Orthogonality: A Strategy for Reusable Code

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
MYSQL Presentation for SQL database connectivity
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Encapsulation theory and applications.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
A Presentation on Artificial Intelligence
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
Machine Learning_overview_presentation.pptx
PPTX
Big Data Technologies - Introduction.pptx
PPT
Teaching material agriculture food technology
PDF
Approach and Philosophy of On baking technology
MYSQL Presentation for SQL database connectivity
20250228 LYD VKU AI Blended-Learning.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Programs and apps: productivity, graphics, security and other tools
Encapsulation theory and applications.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Assigned Numbers - 2025 - Bluetooth® Document
Spectral efficient network and resource selection model in 5G networks
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
The Rise and Fall of 3GPP – Time for a Sabbatical?
A Presentation on Artificial Intelligence
NewMind AI Weekly Chronicles - August'25-Week II
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Spectroscopy.pptx food analysis technology
A comparative analysis of optical character recognition models for extracting...
Machine Learning_overview_presentation.pptx
Big Data Technologies - Introduction.pptx
Teaching material agriculture food technology
Approach and Philosophy of On baking technology

Software Frameworks for Music Information Retrieval

  • 1. Software Frameworks for MIR Because Code also Matters... ISMIR 2004 Xavier Amatrian
  • 2. The value of implementation ● Code is documentation ● Code is publication ● Code is test ● Code is prove of concept
  • 3. Why using a framework ● We do not want to “reinvent the wheel” – Reuse of code + Reuse of implementation ● We want to dedicate as less time as possible to  implemtation, why not use something that has  proven to be useful in a similar situation. – Framework = Patterns + Implementation
  • 4. Frameworks, libraries, applications (I) ● A Framework is a general pool of constructs that  is not tightly enough organized to constitute a  predictive theory. ● A Software Framework is an abstract design that  can be instantiated in a particular way for a  particular application. ● An OO Software Framework is a set of classes  that embodies an abstract design for solutions to a  family of problems.
  • 5. Frameworks, libraries, applications  (II) ● A Software Framework must offer: – Ready­to­use components (black­box) – Extension capabilities (white­box) ● A Software Framework has to somehow grant  access to source code.
  • 6. Frameworks, libraries, applications  (III) ● A software library is simply a collection of  functionalities that are conveniently packed and  can be accessed through an API ● It is used from an application.
  • 9. Matlab and similar environments: What is wrong with Matlab anyway? ● Matlab is Proprietary – Everyone has it? ● What about the toolkits – Do I really know what is going on inside? Does that  matter? – This problem has an obvious solution: Octave ( www.octave.org) ● It is used by many “top” institutions such as NASA ● It has an interesting open and growing repository: Octave­ Forge
  • 10. Matlab and similar environments: What is wrong with Matlab anyway? ● Matlab is Unefficient – Some disciplines such as MIR have to really do  number­crunching and large database analysis. – Matlab code may take many times more than its  functional equivalent in a compiled programming  language. ● Matlab is Unstructured – By definition Matlab and similar environments favor  unstructured code – They do not favor reusability
  • 11. C++ Software Frameworks ● Why C++? – It is efficient – It can be OO – It is a non­proprietary standard – Many existing tools are on C++ ● Other languages – Java ● it is not efficient and it is proprietary – Perl ● it is not efficient and it is not OO
  • 12. Conclusions ● It is worth to use a framework ● It is important to know what is out there and what  we can expect from it ● Frameworks are evolving by nature ● Frameworks generate metamodels