-
Notifications
You must be signed in to change notification settings - Fork 3
Third Party Libraries in Modulo7
Since Modulo7 is a significant software engineering effort, numerous third party libraries have been used for different subcomponents.
The Echo Nest API is a general purpose Inforamtion Retrieval and Data mining framework for music sources. Echo Nest provides API for similarity searches, Track Analysis etc. Echo Nest API is used for the mp3 track analysis.
Audiveris is a CLI and GUI service for OMR (Optical Music recognition). Optical Music Recognition is a challenging problem for both academia and industry and Audiveris is the only good Open Source solution for the problem. Modulo7 treats audiveris as a black box and calls the CLI directly.
Apache Lucene is a high-performance, full-featured text search engine library written entirely in Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform applications and elastic search. Lucene is used a document indexing and query by example framework for lyrics in Modulo7.
Apache Avro is a data serialization system. Avro is used for disk persistence of Modulo7 objects and a primer for distribution in HDFS.
JSoup is an XML parser and in case of Modulo7 is used to parse basic music xml files.
Antlr (Another Tool for Language Recognition) is a powerful parser generator. Antlr is used in Modulo7 to parse custom SQL like queries input by users.
On Top of this Third Party libraries like Apache Commons IO etc are used for rudimentary processing.
Alchemy is an NLP as a service API. It provides support for semantic intent and language identification for text. Modulo7 uses it for analyzing aspects of the lyrical content of songs.