aleksey-saenko / MusicRecognizer

An Android application for music recognition that uses AudD and ACRCloud services to perform song identification.
GNU General Public License v3.0
512 stars 14 forks source link
acrcloud android android-application android-widget audd foss jetpack-compose kotlin-android music music-recognition shazam-like

Audile

Audile is an open-source music recognition application, that can help you quickly and accurately recognize a music track playing nearby you. This application uses AudD and ACRCloud services 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

Screenshots

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.
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, Glance, Hilt, WorkManager, Room, OkHttp, Moshi, DataStore, Coil, Junit.

API Key

This application uses AudD service as a primary 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.

Translation

Translation progress

If you'd like to help translate the app into your native language, you can do so through Weblate. If your language isn't already available, start translating with tool -> start new translation.

Feel free to correct any errors or suggest better translation options for the current translations.

License

Copyright (C) 2023-2024 Aleksey Saenko

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.