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
Comments
-
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!