Skip to content

v0.5.0

Latest
Compare
Choose a tag to compare
@antlarr antlarr released this 10 Jan 20:09
· 74 commits to master since this release

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 the info 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 for find-audio-duplicates + analyze-songs.
  • New commands mb-update and mb-import to update and import the data from musicbrainz. Also mb-import --update does both at the same time.
  • The update command has a new --process flag which performs all audio processing (like process-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 to music_paths.
    • storeThreshold has been renamed to store_threshold.
    • shortSongStoreThreshold has been renamed to short_song_store_threshold.
    • shortSongLength has been renamed to short_song_length.
    • immutableDatabase has been renamed to immutable_database.
    • matchThreshold has been renamed to match_threshold.
    • musicbrainzTaggedMusicPaths has been renamed to musicbrainz_tagged_music_paths.
    • sslCertificateChainFile has been renamed to ssl_certificate_chain_file.
    • sslCertificateKeyFile has been renamed to ssl_certificate_key_file.
    • databasePath has been renamed to database_path.
    • translatePaths has been renamed to translate_paths.
    • pathTranslationMap has been renamed to path_translation_map.
  • Rename the ignore_extensions config option to ignore_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