SongRec ist ein GPL-lizenzierter Client für den Musikerkennungsdienst Shazam. Die Software kann sowohl über eine grafische Benutzeroberfläche, als auch auf der Kommandozeile bedient werden. Im ersten Fall werden auch Musikeingaben über ein Mikrofon unterstützt; im Terminal können nur Audiodateien erkannt werden.
Das Programm bietet folgende Funktionen:
- Erkennen von Audio aus einer beliebigen Audiodatei
- Erkennen von Audio vom Mikrofon
- Verwendung sowohl von der GUI als auch von der Befehlszeile aus (nur Dateierkennung)
- Historie der erkannten Lieder auf der GUI, exportierbar in CSV
- Kontinuierliche Lied-Erkennung vom Mikrofon aus, mit Auswahlmöglichkeit für das Eingabegerät
- Generierung eines Liedprofils, das Shazam beim Abspielen vormacht, es handele sich um das betreffende Lied
Eine in Python geschriebene Version für die Kommandozeile ist zu Demonstrationszwecken noch verfügbar. Diese wurde erstellt bevor der Entwickler die Anwendung aus Geschwindigkeitsgründen in Rust neu geschrieben hat. Wer mehr über die Technik der Musikerkennung mit Shazam erfahren möchte, findet auf der Projektseite von SongRec einige Informationen dazu.
Rust kann aus den Repositories der gängigen Linux-Distributionen installiert werden. Bei Debian/Ubuntu-basierten Systemen installiert man die auf der SongRec-Seite erwähnten Abhängigkeiten (build-essentials, libasound2-dev, libgtk-3-dev und libssl-dev) sowie cargo und rustc, dann installiert man SongRec mit 'cargo install songrec'. Nach der Installation gibt es keinen Anwendungsstarter oder Menüeintrag für SongRec. Stattdessen startet man es im Terminal durch die Eingabe von 'songrec'.