This release improves many areas making it easier to install, configure and use Bard for a new user as well as adding tons of new features and fixes.
New features and improvements:
- Big refactor of database engine which now uses sqlalchemy models to create all schemas and to perform many of the queries. Also alembic is now used to handle database schema migrations.
- Integration of essentia so Bard can now perform high level analysis of music and use classifier models to automatically extract more information from songs.
- Generated playlists (aka Dynamic playlists). Playlists that add songs automatically when the current song approaches the last song on the playlist.
- Use the BARDCONFIGFILE environment variable to specify the config file to use (the default is ~/.config/bard)
- Refactor how artist images are stored in the database.
- Add mediaSession / metadata support in bard web so the KDE Plasma media player applet shows information about the bard player and can also control it.
- Add feature to select which artists to show when browsing artists on the web ui. This way the user can select if browsing all artists,
only "main artists" (artists who are credited in a release group or release) or "main+ artists" (artists who are credited in a release group, release or recording). - Import also the collaborators relationship and use it in the web ui (This is used for example to relate Jon Anderson and Vangelis with
the "Jon and Vangelis" artist). - Installing bard now installs web static files and jinja templates to the package directory so
bard web
can no longer needs to be run from the source directory. - Add more config defaults and improve the handling of config values
- Add support to process wav and dsf files (with id3 tags)
- Add the Bard plugin for Picard and a recommended file naming script to the
picard_plugin
directory. - Add LOTS of documentation
- Make the generate-keys.sh script more user friendly
New commands:
- New command
analyze-songs
to perform a highlevel analysis of the collection. - The
ls
/list
command now has a--duration
flag to show the duration of each song listed. - The
ls
/list
command now has new--rating
,--my-rating
and--others-rating
flags to filter
the listing using each type of rating (i.e.bard ls --rating "> 8"
) - Add
update-musicbrainz-artists
command to search for artist images in directories containing an.artist_mbid
file. - Add
-a
/--show-analysis
parameter to theinfo
command to show the analysis information of a song. - Add new
init
command to initialize the database and create an example config file. - New command
process-songs
, a shortcut forfind-audio-duplicates
+analyze-songs
. - New commands
mb-update
andmb-import
to update and import the data from musicbrainz. Alsomb-import --update
does both at the same time. - The
update
command has a new--process
flag which performs all audio processing (likeprocess-songs
) after the database collection has been updated.
New config options:
- Add an 'ignore_extensions' config parameter
- Add a preferred_locales config option instead of having it hardcoded. For example with preferred_locales = ["es", "en"], if an artist has aliases in different locales, a "es" locale is preferred (primary aliases before non primary ones), then "en" locales, and if none of those are avialable, any primary alias followed by non primary ones.
- Rename some config options so now all config options use
snake_case
:musicPaths
has been renamed tomusic_paths
.storeThreshold
has been renamed tostore_threshold
.shortSongStoreThreshold
has been renamed toshort_song_store_threshold
.shortSongLength
has been renamed toshort_song_length
.immutableDatabase
has been renamed toimmutable_database
.matchThreshold
has been renamed tomatch_threshold
.musicbrainzTaggedMusicPaths
has been renamed tomusicbrainz_tagged_music_paths
.sslCertificateChainFile
has been renamed tossl_certificate_chain_file
.sslCertificateKeyFile
has been renamed tossl_certificate_key_file
.databasePath
has been renamed todatabase_path
.translatePaths
has been renamed totranslate_paths
.pathTranslationMap
has been renamed topath_translation_map
.
- Rename the
ignore_extensions
config option toignore_files
and use globs so it's more flexible.
Fixes and other changes:
- Fix length of some files for which mutagen returned a length of 0 seconds
- Normalize also the style TXXX id3 tags
- Improve the song ratings storage in database and small refactor to speed it up
- Fix queries which should be outer joins
- Fix find-audio-duplicates when it's the first time it's run
- Fix importing from musicbrainz when we don't need any item from a table
- Fix importing ratings on newly imported artists
- Add all commands and options to the bash autocompletion scripts
- Keep artist images aspect ratio in the web ui
- Don't print null when a release event has no date assigned
- Also compare the file checksums when comparing files in a backup to recognize files modified since a backup was done.
- Fix sending a non-existing file to the web ui.
- Fix 'hostname' config option which was wrongly referred as 'host'
- Don't fail if ssl_certificate_chain_file or ssl_certificate_key_file don't exist
- Don't fail to create a MBImporter object when mbdump files haven't been downloaded yet
- Create the web private_key file correctly
- Remove the logo rotation animation in the web ui
- Create the musicbrainz_schema_importer_names file on demand