software frameworks for music information retrieval

12
Software Frameworks for MIR Because Code also Matters... ISMIR 2004 Xavier Amatrian

Upload: xavier-amatriain

Post on 26-Jan-2015

102 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Software Frameworks for Music Information Retrieval

Software Frameworks for MIR

Because Code also Matters...

ISMIR 2004

Xavier Amatrian

Page 2: Software Frameworks for Music Information Retrieval

The value of implementation

● Code is documentation● Code is publication● Code is test● Code is prove of concept

Page 3: Software Frameworks for Music Information Retrieval

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

Page 4: Software Frameworks for Music Information Retrieval

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.

Page 5: Software Frameworks for Music Information Retrieval

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.

Page 6: Software Frameworks for Music Information Retrieval

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.

Page 7: Software Frameworks for Music Information Retrieval

General Classification of Audio/Music Environments

Page 8: Software Frameworks for Music Information Retrieval

Classification of MIR­related Environments

Page 9: Software Frameworks for Music Information Retrieval

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

Page 10: Software Frameworks for Music Information Retrieval

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

Page 11: Software Frameworks for Music Information Retrieval

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

Page 12: Software Frameworks for Music Information Retrieval

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