Skip to content

acejordin/song-id-site

Repository files navigation

song-id-site

Goal here is to develop a small website with one page, running on a raspi that is also hooked up via USB to a turntable. The one page when hit will listen in to the turntable audio and make a call to the Shazam API, then return the track, artist and album art in the page.

This raspi is also running darkice/icecast to stream the audio, which Sonos hooks into to play over Sonos. But Sonos cannot show audio metadata.

The purpose here is to provide a way to show current audio info via webpage, since Sonos does not support metadata for custom streams.

Shazam support is owed to:

https://github.com/marin-m/SongRec which showed that it is actually possible to use the Shazam API directly without ShazamKit

https://github.com/AlekseyMartynov/shazam-for-real/ which I used to actually get it working in .NET, with some tweaks

Ongoing research links:

https://stackoverflow.com/questions/13793514/monodevelop-naudio-ubuntu-linux-tells-me-winmm-dll-not-found https://medium.com/@niteshsinghal85/using-channels-for-asynchronous-queuing-in-c-ed96c51d4576 https://learn.microsoft.com/en-us/dotnet/core/docker/build-container?tabs=windows&pivots=dotnet-8-0 https://devblogs.microsoft.com/dotnet/improving-multiplatform-container-support/ https://learn.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-8.0&tabs=windows

Open issues

TODO

Install Steps (WORK IN PROGRESS)

  1. Install Docker on Raspberry Pi
  2. Download the Docker Image TODO
  3. Set up icecast secrets TODO
  4. Modify Docker Compose template variables TODO
  5. Use Docker Compose template to run the container TODO
  6. Browse to site TODO