Jul 20, 2023

Music streaming server / subsonic server API implementation

music streaming server / subsonic server API implementation


  • browsing by folder keeping your full tree intact
  • browsing by tags using taglib - supports mp3, opus, flac, ape, m4a, wav, etc.
  • on-the-fly audio transcoding and caching requires ffmpeg thank you spijet
  • pretty fast scanning with my library of ~27k tracks, initial scan takes about 10m, and about 5s after incrementally
  • multiple users, each with their own transcoding preferences, playlists, top tracks, top artists, etc.
  • last.fm scrobbling
  • artist similarities and biographies from the last.fm api
  • a web interface for configuration set up last.fm, manage users, start scans, etc.
  • support for the album-artist tag, to not clutter your artist list with compilation album appearances
  • written in go, so lightweight and suitable for a raspberry pi, etc.
  • newer salt and token auth
  • tested on dsub, jamstash, sublime music, and soundwaves

Checkout these related ports:
  • Zynaddsubfx - Realtime software synthesizer
  • Zrythm - Modern music production system, also known as DAW
  • Zplugins-lv2 - Collection of LV2 plugins to be bundled with Zrythm
  • Zmusic - GZDoom's music system as a standalone library
  • Zita-rev1 - Reworked version of the reverb originally developed for Aeolus
  • Zita-resampler - C++ library for resampling audio signals
  • Zita-njbridge - Command line client to transmit audio over a local IP network
  • Zita-mu1 - Simple Jack app used to organise stereo monitoring
  • Zita-jclient - Library to create a Jack client with a few lines of C++
  • Zita-dpl1 - Look-ahead digital peak level limiter
  • Zita-convolver - Fast, partitioned convolution engine library
  • Zita-bls1 - Blumlein Shuffler converter of binaural signals to stereo speaker pair
  • Zita-at1 - Autotuner Jack application
  • Zita-alsa-pcmi - Easy access to ALSA PCM devices
  • Zinf - GTK-based MP3 player