Skip to content

Commit

Permalink
metadata mgmt docs
Browse files Browse the repository at this point in the history
  • Loading branch information
azuline committed Oct 27, 2023
1 parent fe5419d commit ec44b7d
Show file tree
Hide file tree
Showing 10 changed files with 278 additions and 49 deletions.
48 changes: 37 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,15 +141,14 @@ This section contains a concise list of Rosé's features.
- Virtual Filesystem
- Read audio files and cover art
- Modify files and cover art
- Filter releases by album artist, genre, label, and "new"-ness.
- Filter releases by album artist, genre, label, and "new"-ness
- Browse and edit collages and playlists
- Group artist aliases together
- Toggle release "new"-ness
- Whitelist/blacklist entries in the artist, genre, and label views
- Command Line
- Edit release metadata as a text file.
- Import metadata and cover art from third-party sources: Discogs,
MusicBrainz, Tidal, Deezer, Apple, Junodownload, Beatport, and fanart.tv
- Edit release metadata as a text file
- Import metadata and cover art from third-party sources
- Extract embedded cover art to a file
- Automatically update metadata via patterns and rules
- Collage and playlist management
Expand Down Expand Up @@ -266,13 +265,34 @@ finally (3) play music!
to the configured `fuse_mount_dir`, and you should see your music available
in the virtual filesystem!

```bash
$ cd $fuse_mount_dir

$ ls -1
'1. Releases'
'2. Releases - New'
'3. Releases - Recently Added'
'4. Artists'
'5. Genres'
'6. Labels'
'7. Collages'
'8. Playlists'

$ ls -1 "1. Releases/"
'BLACKPINK - 2016. SQUARE ONE - Single [K-Pop] {YG Entertainment}'
'BLACKPINK - 2016. SQUARE TWO - Single [K-Pop] {YG Entertainment}'
'LOOΠΔ ODD EYE CIRCLE - 2017. Mix & Match - EP [K-Pop] {BlockBerry Creative}'
'YUZION - 2019. Young Trapper [Hip Hop]'
'{NEW} LOOΠΔ - 2017. Kim Lip - Single [K-Pop]'
```

3. Let's play some music! You should be able to open a music file in your music
player of choice.

Mine is `mpv`:

```bash
$ mpv "1. Releases/LOOΠΔ ODD EYE CIRCLE - 2017. Mix & Match - EP [K-Pop] {BlockBerry Creative}/04. LOOΠΔ ODD EYE CIRCLE - Chaotic.opus"
$ mpv "1. Releases/LOOΠΔ ODD EYE CIRCLE - 2017. Mix & Match - EP [K-Pop] {BlockBerry Creative}/04. LOOΠΔ ODD EYE CIRCLE - Chaotic.opus"
(+) Audio --aid=1 'Chaotic' (opus 2ch 48000Hz)
File tags:
Artist: LOOΠΔ ODD EYE CIRCLE
Expand Down Expand Up @@ -301,6 +321,10 @@ We recommend using Rosé with:
[mc](https://midnight-commander.org/), and [ranger](https://github.com/ranger/ranger).
2. A media player, such as [mpv](https://mpv.io/).

You also need not use the complete feature set of Rosé. Everything will
continue to work if you only use the virtual filesystem and ignore the
metatdata tooling, and vice versa.

# Learn More

For additional documentation, please read the following files:
Expand Down Expand Up @@ -332,12 +356,14 @@ limitations under the License.

# Contributions

Bug fixes are happily accepted!

However, please do not open a pull request for a new feature without prior
discussion.

Rosé is a pet project that I developed for personal use. Rosé is designed to
match my specific needs and constraints, and is never destined to be widely
adopted.

Bug fix contributions are happily accepted! However, please do not open a pull
request for a new feature without prior discussion.
adopted. Therefore, I will lean towards keeping the feature set focused and
small, and will not add too many features over the lifetime of the project.

Rose is provided as-is: there are no promises of future maintenance or feature
development.
Rosé is provided as-is: I may not maintain it in the future.
6 changes: 3 additions & 3 deletions docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ This has some nice consequences:
because conflict resolution is then ambiguous. Whereas in Rosé, there are no
conflicts.

## Stable Release & Track Identifiers
# Stable Release & Track Identifiers

Rosé assigns UUIDs to each release and track in order to identify them across
arbitrarily large metadata changes. These UUIDs are persisted to the source
Expand All @@ -59,7 +59,7 @@ files.
- Each track has a custom `roseid` tag. This tag is written to the source audio
file. Read the `tagger.py` file for the exact field name used.

## Read Cache Update
# Read Cache Update

The read cache update is optimized to minimize the number of disk accesses, as
it's a hot path and quite expensive if implemented poorly.
Expand All @@ -74,7 +74,7 @@ queries to batch the writes.
The update process is also parallelizable, so we shard workloads across
multiple processes.

## Logging
# Logging

Logs are written to stderr and to `${XDG_STATE_HOME:-$HOME/.local/state}/rose/rose.log`.
Debug logging can be turned on with the `--verbose/-v` option. Rosé is heavily
Expand Down
2 changes: 1 addition & 1 deletion docs/CACHE_MAINTENANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ cache update --force`.

It would be pretty annoying if you had to run this command by hand after each
metadata update. So Rosé will automatically run this command whenever an update
happens _through_ Rosé. That means:
happens _through_ Rosé. That means:

- If a file is modified in the virtual filesystem, a cache update is
triggered when the file handle closes.
Expand Down
4 changes: 2 additions & 2 deletions docs/CONFIGURATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ fuse_labels_whitelist = [ "xxx", "yyy" ]
# These options remove specific entities from their respective top-level
# virtual filesystem directories. This is useful if there are a few values you
# don't find useful, e.g. a random featuring artist or one super niche genre.
#
#
# These options are mutually exclusive with the fuse_*_whitelist options; if
# both are specified for a given entity type, the configuration will not
# validate.
Expand All @@ -77,7 +77,7 @@ max_proc = 4

```

## Systemd Unit Files
# Systemd

If you want Rosé to always be on, you can configure systemd to manage Rosé.
Systemd can ensure that Rosé starts on boot and restarts on failure.
Expand Down
Loading

0 comments on commit ec44b7d

Please sign in to comment.