davidtakac / horton

Extensible music recognition app
GNU General Public License v3.0
25 stars 5 forks source link

Horton

Music recognition app for Android.

Description

Horton recognizes songs playing in your surroundings (e.g. coffee shop, bar, club, car) and saves them to local storage for easy access later. It only communicates with services required for song recognition.

Screenshots and features

Most notable features:

Song recognition services

Currently, the supported recognition services are:

The project's architecture is set up in a way that allows for easy addition and removal of song recognition services so that other services can be added later without disturbing the UI and independent parts of the codebase.

You can provide additional song recognition services by writing a *recognizer module. The only thing this module requires is that you extend the SongRecognizer interface and provide your implementation. Refer to the auddrecognizer module as an example.

Project architecture

This project draws heavy inspiration from Uncle Bob's clean architecture. It aims to separate business rules from implementation details such as network access, database operations and the user interface towards easier development and maintenance.

The project is split into multiple Gradle modules:

Dependency diagram

Buzzwords

The project uses the following Android mechanisms and libraries:

Similar projects