Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Software Frameworks for Music Information Retrieval


Published on

Tutorial that I gave in ISMIR conference in 2004. I shared the tutorial with G. Tzanetakis but this presentation includes only my part.

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Software Frameworks for Music Information Retrieval

  1. 1. Software Frameworks for MIR Because Code also Matters... ISMIR 2004 Xavier Amatrian
  2. 2. The value of implementation ● Code is documentation ● Code is publication ● Code is test ● Code is prove of concept
  3. 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. 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. 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. 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.
  7. 7. General Classification of  Audio/Music Environments
  8. 8. Classification of MIR­related  Environments
  9. 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 ( ● It is used by many “top” institutions such as NASA ● It has an interesting open and growing repository: Octave­ Forge
  10. 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. 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. 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