/MusicRecognizer

An Android application for music recognition that uses the AudD service as a Music Recognition API.

Primary LanguageKotlinGNU General Public License v3.0GPL-3.0

Audile

Audile is a music recognition application, that can help you quickly and accurately recognize a music track playing nearby you. This application uses AudD service to perform song identification and Odesli service to retrieve additional platform-specific track links.

Get it on F-Droid Get it on GitHub

F-Droid releases cannot be upgraded to other releases as they are compiled and signed by F-Droid.

Features

  • Recognition - Audile allows you to perform song recognition in one click. The app will save the recording if there is no internet, and the recognition process will be executed when you come back online. You can customize the default behavior for unsuccessful recognition (no internet, no matches, another failure) via the preferences.
  • Notification service - You can use the application from the notification drawer. Manage the recognition process and receive information about the track.
  • About track - In case of successful recognition, information about the track, such as the name, artist, album and year, artwork, links to this track on popular music services, lyrics is provided.
  • Library - All recognized tracks are stored in the application's library. You can filter the track list, create a favorites collection, search for tracks, or delete tracks.
  • Preferences - The application has a number of options for customizing its behavior and appearance, which can be found on the settings screen.

Tech

Audile is written in Kotlin and runs on Android 8.0 or higher.
App architecture inspired by clean arch practices. The application is modularized with a feature-based approach (definitely overkill for such small app).
UI completely written in Jetpack Compose with MVVM pattern in Material3 design.
The app uses the AudioRecord/MediaCodec API for audio recording and encoding.
Stack: Kotlin, Coroutines, Jetpack Compose, Hilt, WorkManager, Room, OkHttp, Moshi, DataStore, Coil, Junit.

Screenshots

API Key

This application uses AudD service as a Music Recognition API. Please note that AudD service is not free, and you will need a special API token provided by the service to use this application. If you don't have an API token, you can sign up for a trial one.

There is also the option to use the app without a token, but please note that this will significantly restrict the number of daily recognitions that can be performed. Please keep in mind that this behavior is not guaranteed by the service and can be restricted at any time.

License

Copyright (C) 2023 [Aleksey Saenko].

The license is GNU GPLv3.