Music recognition requires an internet connection. The Shazam API must be reachable to return a match — offline recognition is not supported.
How to start recognition
- Home screen widget
- Quick Settings tile
Recognition states
During recognition, both the in-app UI and any active notification reflect the current stage:Listening
Metrolist is recording audio from your microphone. Hold your device near the sound source and keep background noise to a minimum.
Processing
The audio fingerprint has been generated and is being sent to the Shazam API. This typically takes one to two seconds.
Match found
A song was identified. The result shows the title, artist, and album art. Tap it to play the track in Metrolist.
No match
Shazam could not identify the audio. This can happen with very short clips, heavy distortion, or unusual recordings. Try again with a clearer sample.
Recognition history
Every successfully recognized song is saved to your local recognition history. Metrolist stores the title, artist, album, cover art URL, genre, release date, and the timestamp of recognition in a local database — no cloud sync required. To view past recognitions, open the recognition screen within the app. Each entry shows the song details and the time it was recognized. Tap any entry to play that track in Metrolist.Permissions
Music recognition requires the Record Audio (RECORD_AUDIO) permission. Metrolist checks for this permission before starting recognition and prompts you to grant it if it has not been given. No audio data is stored on your device — only the Shazam fingerprint is transmitted to the API.
Technical details
How the fingerprint is generated
How the fingerprint is generated
Metrolist records mono audio at 44,100 Hz using the device microphone, then resamples it to the sample rate required by the VibraSignature algorithm. The resulting signature is sent to the Shazam API along with the sample duration. The entire implementation is pure Kotlin with no native code (NDK), rewritten in v13.2.0 to reduce APK size and improve compatibility.
QS tile notification behavior
QS tile notification behavior
When recognition is triggered from the Quick Settings tile, Metrolist starts a foreground service (
RecognitionForegroundService) that shows a low-priority persistent notification during recording and processing. On completion, the notification becomes dismissible and shows the result — including cover art if one can be fetched — with a Listen on Metrolist action button. Added in v13.3.0, with notification-based result delivery refined in v13.4.0.Duplicate result handling
Duplicate result handling
When recognition is started from the home screen widget, the widget service persists the result to the database. The recognition screen detects this and skips inserting a duplicate entry, so each recognition event appears exactly once in history.