Add tags relevant to classical music.

This commit adds some tags that are (mostly) interesting for listeners
of classical music.

Ensemble
--------
This is an ensemble that is playing the music, such as Wiener
Philharmoniker. The tag can be used to distinguish the ensemble from the
conductor, composer, soloist, and ensemble, that are generally all in
the "ARTIST" tag.

Movement
-------
The movement number and movement (name) of this track, i.e.  "II" and
"Allegro".

ComposerSort
------------
Allows us to look for Beethoven's 9th under B, for Beethoven, not L for
Ludwig.

Location
--------
This is the location of the recording, e.g. "Wiener Musikverein".
This commit is contained in:
Simon Persson 2020-05-03 17:30:31 +02:00 committed by Simon Persson
parent 25354b9d8c
commit 8f1e7385b7
5 changed files with 19 additions and 0 deletions

2
NEWS
View File

@ -5,6 +5,8 @@ ver 0.23 (not yet released)
* output
- pipewire: new plugin
- snapcast: new plugin
* tags
- new tags "ComposerSort", "Ensemble", "Movement", "MovementNumber", and "Location"
ver 0.22.7 (not yet released)
* protocol

View File

@ -286,10 +286,15 @@ The following tags are supported by :program:`MPD`:
* **date**: the song's release date. This is usually a 4-digit year.
* **originaldate**: the song's original release date.
* **composer**: the artist who composed the song.
* **composersort**: same as composer, but for sorting.
* **performer**: the artist who performed the song.
* **conductor**: the conductor who conducted the song.
* **work**: `"a work is a distinct intellectual or artistic creation,
which can be expressed in the form of one or more audio recordings" <https://musicbrainz.org/doc/Work>`_
* **ensemble**: the ensemble performing this song, e.g. "Wiener Philharmoniker".
* **movement**: name of the movement, e.g. "Andante con moto".
* **movementnumber**: movement number, e.g. "2" or "II".
* **location**: location of the recording, e.g. "Royal Albert Hall".
* **grouping**: "used if the sound belongs to a larger category of
sounds/music" (`from the IDv2.4.0 TIT1 description
<http://id3.org/id3v2.4.0-frames>`_).

View File

@ -28,5 +28,7 @@ const struct tag_table xiph_tags[] = {
{ "tracknumber", TAG_TRACK },
{ "discnumber", TAG_DISC },
{ "description", TAG_COMMENT },
{ "movementname", TAG_MOVEMENT },
{ "movement", TAG_MOVEMENTNUMBER },
{ nullptr, TAG_NUM_OF_ITEM_TYPES }
};

View File

@ -33,9 +33,14 @@ const char *const tag_item_names[TAG_NUM_OF_ITEM_TYPES] = {
[TAG_DATE] = "Date",
[TAG_ORIGINAL_DATE] = "OriginalDate",
[TAG_COMPOSER] = "Composer",
[TAG_COMPOSERSORT] = "ComposerSort",
[TAG_PERFORMER] = "Performer",
[TAG_CONDUCTOR] = "Conductor",
[TAG_WORK] = "Work",
[TAG_MOVEMENT] = "Movement",
[TAG_MOVEMENTNUMBER] = "MovementNumber",
[TAG_ENSEMBLE] = "Ensemble",
[TAG_LOCATION] = "Location",
[TAG_GROUPING] = "Grouping",
[TAG_COMMENT] = "Comment",
[TAG_DISC] = "Disc",

View File

@ -48,9 +48,14 @@ enum TagType
TAG_DATE,
TAG_ORIGINAL_DATE,
TAG_COMPOSER,
TAG_COMPOSERSORT,
TAG_PERFORMER,
TAG_CONDUCTOR,
TAG_WORK,
TAG_MOVEMENT,
TAG_MOVEMENTNUMBER,
TAG_ENSEMBLE,
TAG_LOCATION,
TAG_GROUPING,
TAG_COMMENT,
TAG_DISC,