Description

Bard is a music manager I've been working on in the last few years . Currently, it can manage a collection of music files, analyze them (tags and audio features) and store all the information in a database so all kind of searches can be run easily. It has a (very) basic web interface although the main interface is using the command line, running locally.

There are two scenarios where I'd like to use bard. First, I would like to be able to run it in a headless raspberry pi connected to a DAC/speakers and control what's playing using my phone. Also, it would be nice to be able to just play the music on the phone.

Goals of Hack Week 24

  • Make bard use ffmpeg-7 and remove usage of deprecated functions. Improve the test suite so that it's easier to test that decoding works exactly the same as when using ffmpeg-6 with correct music files and at least as good as before with corrupted files.
  • Improve the bard web interface and adapt it to be usable on a phone (maybe reimplement the web interface once again using vue?)
  • Implement a local player and streamer and have bard really manage them, not just run mpv or serve a local file over https.
  • Make it possible to recode an audio file on-the-fly in order to stream it in a lower bitrate .
  • Create a release of the latest sources and package it in obs.

Resources

  • https://github.com/antlarr/bard

Looking for hackers with the skills:

Nothing? Add some keywords!

This project is part of:

Hack Week 24

Activity

  • about 1 month ago: enavarro_suse liked this project.
  • about 1 month ago: aplanas liked this project.
  • about 2 months ago: alarrosa started this project.
  • about 2 months ago: alarrosa originated this project.

  • Comments

    • alarrosa
      23 days ago by alarrosa | Reply

      I started by adding ffmpeg-7 support to bard but allowing to use the deprecated functions in case it's built in an old distribution. I also improved the test suite and generated reference test output files for ffmpeg-5, ffmpeg-6 and ffmpeg-7 (since in some versions ffmpeg handles decoding errors differently in corrupted files). This was mainly done on Monday.

      After doing that, I continued with the implementation of the recoding feature. For this I needed to refactor the sources first and doing that I got into some problems (that were noticed thanks to the new test suite). I only was able to fix the refactored code to work as before, at the end of Thursday which was quite a downer.

      On Friday I implemented a first version of the recoding code (so far, only to a file on disk). This allows to recode any file to mp3, aac or flac (probably others too, but I'm mainly interested on those three). There was just a small issue by which the recoded output was always missing a few samples at the end of the output, but I fixed that issue on Sunday.

      The goals were definitely too many and too complex to do in a week, but I'm happy with the end result (specially when all the issues that I encountered were fixed).

    Similar Projects

    This project is one of its kind!