package shakuhachi

  1. Overview
  2. Docs
A music collection manager

Install

dune-project
 Dependency

Authors

Maintainers

Sources

shakuhachi-0.4.0.tar.gz
sha256=8bd4675792ec93d705e68d4e43dc04aa1124fcaf644ae3a1a3fda68464276f95
sha512=712efcbe13e6e9d3336f72c2c25d4b41225cdd245f21adeeadc8aa4ad31ca9c905077e0873a3d1165d7c09357c009c859c4a7cd9c2d0c9bffc27144525594e72

doc/CHANGELOG.html

CHANGELOG

[0.4.0]

  • feat : float variables are finally usable from commandline (%avg_rating, %avg_duration, %avg_size, %created_at, %modified_at, %played_at)
  • feat : [skhc] - -E flag (show variables environment).
  • feat : 2 env variables SKHC_CONFIG_PATH (resp. SKHC_COLLECTION_NAME) as default values for -c (resp. -C).
  • misc : [skhc-playlist] - little info display change
  • fix : api - some functions around playlist ignored smart playlists.
  • feat : new key - %music_count

    • BREAKING: mode album %album_count : number of song inside the album -> 1
  • feat : compute stats for artist.
  • feat : [skhc-tag] : -x option (remove property).
  • fix : don't use composers to find albums eg: 2 differents albums from 2 differents artists but same album name and composer was considered one album.
  • feat : tagging options : add -j, -J for setting the join phrase between artists
  • misc : tagging - Set ARTISTS (resp. ALBUMARTISTS) for multiple values and ARTIST (resp. ALBUMARTIST) as a single value joined.
  • misc : ARTIST and ALBUMARTIST handling - read ARTISTS and ALBUMARTISTS in priority, fallback to the none s property if missing.
  • refacto : [skhc-modify] : uses exactly the same tagging option than [skhc-tag]

    • BREAKING : skhc-modify(1) - interactive + field cover - dont ask for the kind of cover anymore.

API CHANGES

  • Added function

    • SkhcMetadata.Metadata.Keys.{artists, album_artists}
    • SkhcMetadata.Metadata.property_list_first_non_empty
    • SkhcMetadata.Metadata.set_properties
    • SkhcMetadata.Metadata.{set_artists_join,set_album_artists_join}
    • SkhcMetadata.Metadata.{artists_v2,artist_v2,album_artists_v2,album_artist_v2}
    • SkhcDb.Query.artist
    • SkhcQuery.Keys.music_count
    • SkhcQuery.Field.Int.music_count
    • SkhcQuery.Field.music_count
    • Skhclibs.Collection.Artist.{query,kquery}
    • SkhcDb.MusicProperty.{filter_map,all,fold}
    • Skhclibs.Collection.Playlist.find_from_id
  • Added modules

    • SkhcDb.Artist.Stats
  • Modified functions

    • SkhcDb.AlbumParticipant.find_or_insert
    • SkhcMetadata.Metadata.apply
    • SkhcDb.Query.artists
    • SkhcDb.Query.matches_artists
    • SkhcDb.Query.compare_artist_key
    • Skhclibs.Collection.Artist.sort
    • Skhclibs.Format.{artist,artist_f}
  • Modified types

    • SkhcQuery.Field.Int.Keys.t

[0.3.3]

  • fix : modified or replaced musics [skhc-modify], [skhc-replace], [Music.add] were delete from playlists.
  • fix : [skhc-tag]: Actually use -p option.
  • feat : populated %created_at, %modified_at and %played_at for musics, albums and artists (on format)
  • feat : Add %created_at, %modified_at and %played_at Float keys
  • fix : [skhc-modify]: Artist-mode - handle constraints when participants merge into an already existing participants for the {album,music}
  • fix : skhc-query : substring nodes matches against all participants (not only the last one).

API CHANGES

  • Added functions

    • SkhcDb.Album.Stats.played_at
    • SkhcDb.MusicFile.keep_stats
    • SkhcDb.MusicParticipant.filter_map
    • SkhcDb.MusicParticipant.remove_all_id
    • SkhcDb.MusicProperty.remove_key
    • SkhcDb.MusicProperty.remove_all_id
    • SkhcDb.{AlbumParticipant,MusicParticipant}.{set_artist_id,set_role}
    • Skhclibs.Collection.Album.kquery
    • Skhclibs.Collection.Album.query
    • Skhclibs.Collection.Music.kquery
    • SKhclibs.COllection.Music.query
    • SkhcQuery.Keys.created_at
    • SkhcQuery.Keys.updated_at
    • SKhcQuery.Keys.played_at
    • SkhcQuery.Field.Float.{created_at, modified_at, played_at}
    • SKhcQuery.Field.{created_at, modified_at, played_at}
    • SkhcMetadata.Metadata.iter
    • SkhcMetadata.Metadata.filter
  • Modified functions

    • Skhclibs.Collection.Music.Scrobble
  • Modified types

    • SkhcQuery.Float.Float.Keys.t

[0.3.2]

  • doc : Add examples to commands + add man_xrefs
  • fix : [skhc-modify]: Album-mode - also modify album-participant.
  • fix : Add music participants to the corresponding album even if the album already exists.

API CHANGES

  • Added functions

    • SkhcDb.AlbumParticipant.remove
    • SkhcDB.AlbumParticipant.filter_map
    • SkhcDb.AlbumParticipant.filter_map_with_album_id
    • SkhcDb.AlbumParticipant.album_id
    • SkhcDb.AlbumParticipant.artist_id
    • SkhcDb.AlbumParticipant.role
    • SkhcDb.MusicParticipant.remove
  • Modified functions

    • SkhcDb.AlbumParticipant.find_or_insert

[0.3.1]

  • feat : [skhc-list]: add -O option to sort items
  • fix : [skhc-modify]: keep [has_cover] and [played_at] fields from updated musics.
  • fix : Album Stats wrong values generated

API CHANGES

  • Added functions

    • SkhcQuery.Query.of_keys_with_negation
    • SkhcQuery.Query.compare_music_key
    • SkhcQuery.Query.compare_album_key
    • SkhcQuery.Query.compare_artist_key
    • SkhcQuery.Query.sort_with_keys
    • Skhclibs.Collection.Album.sort
    • Skhclibs.Collection.Artist.sort
    • Skhclibs.Collection.Music.sort

[0.3.0]

  • feat : Add tagging options to skhc-add(1) (same options than skhc-tag(1))

    • BREAKING CHANGE : skhc-tag(1) option rename : -e -> -E
  • feat : add options -D and --ignore-duplicate to specify a duplicate query or to add musics regardless of duplicates.
  • misc : tagging option uniformization
  • feat : add configuration entry to write a query to check if a duplicate music exists
  • fix : can properly displaying value which are equal to Keys (ie. album name == %id)
  • improvement : speed of displaying formatted string
  • feat : skhc-query : allow matching arbitrary music properties with %:<key>
  • feat : Accept dsf audio file
  • fix : Add album's coverpath inside database when adding musics
  • misc : skhc-list - -S little info display change
  • feat : skhc-tag - add -T option to load a plugin for adding extra tagging capacities.
  • feat : skhc-replace - add -K option to replace a music but keep the previous location
  • fix : force linkage of skhc* libraries into skhc for plugins to be successfully loaded.
  • misc : test - raise qcheck version 0.27 -> 0.90
  • misc : Metadata.pp - add breakline
  • improvement : try to extract album_sort_name from metatada when creating an album.
  • improvement : skhc-replace - The replacing music uses the main name instead of a duplicated one (ie. song (1).mp3).
  • doc : fix typo + misc improvement

API CHANGES

  • Added functions

    • SkhcDb.Artist.find_from_id
    • SkhcDb.Album.find_from_id
    • SkhcDb.Playlist.find_from_id
    • SkhcDb.MusicFile.find_from_id
    • SkhcDb.PlaylistMusics.playlist_find_from_id
    • SkhcDb.Query.album
    • SkhcDb.Query.music
    • SkhcDb.Database.sqlite3
    • SKhcDb.AlbumParticipant.find
    • SKhcDb.AlbumParticipant.find_from_metadata
    • SkhcQuery.Field.arbitrary
    • SkhcQuery.Field.String.arbitrary
    • SkhcQuery.Field.{String,Bool,Int,Float}.{key,value}
    • SkhcQuery.Field.arbitrary
    • SkhcQuery.Field.fold
    • SkhcQuery.Query.of_string_keys
    • SKhcQuery.Query.to_sexp_keys
    • SkhcQuery.Query.to_string_f
    • SkhcQuery.Query.to_sexp_f
    • SkhcQuery.Query.matches_metadata_subset
    • Skhclibs.Format.filename_f
    • Skhclibs.Format.music_f
    • Skhclibs.Format.album_f
    • Skhclibs.Format.album_metadata_f
    • Skhclibs.Format.artist_f
    • Skhclibs.Collection.Music.find_with_metadata
    • SkhcConfig.Config.set_duplicate_query
    • SkhcConfig.Misc.duplicate_query
    • SkhcConfig.Misc.set_duplicate_query
    • SkhcMetadata.Metadata.remove_property
  • Added modules

    • SkhcUtil
    • SkhcPlugin.Tagger
    • SkhcDb.Album.Column
    • SkhcDb.AlbumParticipant.Column
    • SkhcDb.Artist.Column
    • SkhcDb.MusicFile.Column
    • SkhcDb.MusicParticipant.Column
    • SkhcDb.MusicProperty.Column
    • SkhcDb.Playlist.Column
    • SkhcDb.PlaylistMusic.Column
    • SkhcQuery.Int64
    • SkhcQuery.String.Key
    • SkhcQuery.Bool.Key
    • SkhcQuery.Int.Key
    • SkhcQuery.Format
  • Modified modules

    • SkhcQuery.Field
  • Modified functions

    • SkhcDb.Query.musics
    • SkhcDb.Query.albums
    • Skhclibs.Collection.database
    • Skhclibs.Collection.with_database
    • SkhcConfig.Misc.init
  • Modified types

    • SkhcQuery.Field.String.field
    • SkhcQuery.Node.t
    • SkhcQuery.Query.t

[0.2.0]

  • misc : LICENSES

    • ocaml libraries installled with skhc : GPL-3.0-or-later -> MPL-2.0
  • fix : move artist's artwork and album's cover on modify.
  • misc : always print to stderr warning (ignore quiet flag).
  • feat : parameterize artist's artwork and album's cover filename in configuration file instead of hardcoding.
  • fix : improve TRACKNUMBER metadata parsing.
  • fix : plugin's name mismatch between config section name and plugin code
  • fix : forgotten variable population.

    • BREAKING

      • artist %title : Artist name -> not populated

API CHANGES

  • Added functions

    • SkhcConfig.Plugin.init
    • SkhcConfig.Section.to_string
    • SkhcConfig.Section.pp
    • SkhcConfig.Format.artist_artwork
    • SkhcConfig.Format.album_cover
  • Added modules

    • Skhclibs.Format
  • Modified functions

    • SkhcConfig.Format.init

[0.1.0]

  • Initial release