mecomp-core 0.6.1

Core library for the mecomp project, includes the core schemas, shared utils, and other such things.
Documentation
# Example Settings File

# General Daemon Settings
[daemon]
## The port to listen on for RPC requests. (default: 6600, the default port for MPD)
rpc_port = 6600
## The root paths of the music library.
library_paths = ["~/Music"]
## Separators for artist names in song metadata.
## For example, "Foo, Bar, Baz" would be split into ["Foo", "Bar", "Baz"]. if the separator is ", ".
## If the separator is not found, the entire string is considered as a single artist.
## If unset, will not split artists.
##
## Users can provide one or many separators, and must provide them as either a single string or an array of strings.
##
## ```toml
## [daemon]
## artist_separator = " & "
## # or
## artist_separator = [" & ", "; "]
## ```
artist_separator = ["; ", ", ", " & ", " feat. ", " ft. "]
## Exceptions for artist name separation, for example:
## "Foo & Bar; Baz" would be split into \["Foo", "Bar", "Baz"\] if the separators are set to "&" and "; ".
## 
## However, if the following exception is set:
## ```toml
## [daemon]
## protected_artist_names = ["Foo & Bar"]
## ```
## Then the artist "Foo & Bar; Baz" would be split into \["Foo & Bar", "Baz"\].
## 
## Note that the exception applies to the entire "name", so:
## ```toml
## [daemon]
## protected_artist_names = ["Foo & Bar"]
## ```
## would split "Foo & Bar" into \["Foo & Bar"\], 
## but "Foo & BarBaz" would still be split into \["Foo", "BarBaz"\].
protected_artist_names = []
## Separators for genres in song metadata.
## For example, "Foo, Bar, Baz" would be split into ["Foo", "Bar", "Baz"]. if the separator is ", ".
## If the separator is not found, the entire string is considered as a single genre.
## If unset, will not split genres.
genre_separator = ", "
## how conflicting metadata should be resolved
## "overwrite" - overwrite the metadata with new metadata
## "skip" - skip the file (keep old metadata)
conflict_resolution = "overwrite"
## What level of logging to use.
## Possible values are "trace", "debug", "info", "warn", "error".
## Default is "info".
log_level = "info"

# Parameters for the reclustering algorithm.
[reclustering]
## The number of reference datasets to use for the gap statistic.
## (which is used to determine the optimal number of clusters)
## 50 will give a decent estimate but for the best results use more,
## 500 will give a very good estimate but be very slow.
## We default to 50.
gap_statistic_reference_datasets = 50
## The maximum number of clusters to create.
## This is the upper bound on the number of clusters that can be created.
## Increase if you're getting a "could not find optimal k" error.
## Default is 24.
max_clusters = 24
## The clustering algorithm to use.
## Either "kmeans" or "gmm".
algorithm = "gmm"
## The projection method to preprocess the data with before clustering.
## Either "tsne", "pca" (not implemented yet), or "none".
## Default is "none".
projection_method = "tsne"

# Settings for the TUI
[tui]
## How many songs should be queried for when starting a radio.
## Default is 20.
radio_count = 20
##  The color scheme to use for the TUI.
## Each color is either:
## - a hex string in the format "#RRGGBB".
##   example: "#FFFFFF" for white.
## - a material design color name in format "<COLOR>_<SHADE>".
##   so "pink", "red-900",  "light-blue_500", "red900", etc. are all invalid.
##   but "PINK_900", "RED_900", "LIGHT_BLUE_500" are valid.
##   - Exceptions are "WHITE" and "BLACK", which are always valid.
[tui.colors]
### app border colors
app_border = "PINK_900"
app_border_text = "PINK_300"
### border colors
border_unfocused = "RED_900"
border_focused = "RED_200"
### popup border color
popup_border = "LIGHT_BLUE_500"
### text colors
text_normal = "WHITE"
text_highlight = "RED_600"
text_highlight_alt = "RED_200"
### gauge colors, such as song progress bar
gauge_filled = "WHITE"
gauge_unfilled = "BLACK"