From 2b2a738e1dcc78a5dac3f9d4557309bcb2022c7f Mon Sep 17 00:00:00 2001 From: Sophist Date: Thu, 6 Mar 2014 19:07:53 +0000 Subject: [PATCH 1/5] Add %_absolutetracknumber% variable... ...so you can number tracks sequentially on multi-track discs without using a disc number. See http://forums.musicbrainz.org/viewtopic.php?pid=25326 for requirement. --- NEWS.txt | 2 ++ picard/album.py | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/NEWS.txt b/NEWS.txt index 72fefcc27..a45ecca9d 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -29,6 +29,8 @@ * New Composer Sort Order tag (variable %composersort%). * Improve the Other Releases list to prioritise and separate releases which match the correct number of tracks and your Options / Metadata / Prefered Releases settings for Country and Format. + * New %_absolutetracknumber% variable numbering tracks sequentially regardless of disc structure + (so you can numbers tracks on multi-disc releases without a disc number) Version 1.2 - 2013-03-30 * Picard now requires at least Python 2.6 diff --git a/picard/album.py b/picard/album.py index bd2c2cab9..f459a6dc4 100644 --- a/picard/album.py +++ b/picard/album.py @@ -195,6 +195,7 @@ class Album(DataObject, Item): if not self._tracks_loaded: totalalbumtracks = 0 + absolutetracknumber = 0 va = self._new_metadata['musicbrainz_albumartistid'] == VARIOUS_ARTISTS_ID djmix_ars = {} @@ -218,6 +219,8 @@ class Album(DataObject, Item): tm = track.metadata tm.copy(mm) track_to_metadata(track_node, track) + absolutetracknumber += 1 + tm["_absolutetracknumber"] = absolutetracknumber track._customize_metadata() self._new_metadata.length += tm.length @@ -235,6 +238,8 @@ class Album(DataObject, Item): for track in self._new_tracks: track.metadata["~totalalbumtracks"] = totalalbumtracks + if "~releaselanguage" in self._new_metadata and not "language" in track.metadata: + track.metadata["language"] = self._new_metadata["~releaselanguage"] del self._release_node self._tracks_loaded = True From dc130383466364fdb69cccaf610e868130461408 Mon Sep 17 00:00:00 2001 From: Sophist Date: Thu, 6 Mar 2014 19:22:47 +0000 Subject: [PATCH 2/5] Change name to albumtracknumber to fit better with totalalbumtracks cf. tracknumber and totaltracks --- picard/album.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/picard/album.py b/picard/album.py index f459a6dc4..d09a2b2f1 100644 --- a/picard/album.py +++ b/picard/album.py @@ -195,7 +195,7 @@ class Album(DataObject, Item): if not self._tracks_loaded: totalalbumtracks = 0 - absolutetracknumber = 0 + albumtracknumber = 0 va = self._new_metadata['musicbrainz_albumartistid'] == VARIOUS_ARTISTS_ID djmix_ars = {} @@ -219,8 +219,8 @@ class Album(DataObject, Item): tm = track.metadata tm.copy(mm) track_to_metadata(track_node, track) - absolutetracknumber += 1 - tm["_absolutetracknumber"] = absolutetracknumber + albumtracknumber += 1 + tm["_albumtracknumber"] = albumtracknumber track._customize_metadata() self._new_metadata.length += tm.length From 8ec906b093984329b25fb927f7ce6d581274c190 Mon Sep 17 00:00:00 2001 From: Sophist Date: Sat, 8 Mar 2014 11:18:34 +0000 Subject: [PATCH 3/5] D'oh - should be ~ not _ --- picard/album.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/album.py b/picard/album.py index d09a2b2f1..1c94a2109 100644 --- a/picard/album.py +++ b/picard/album.py @@ -220,7 +220,7 @@ class Album(DataObject, Item): tm.copy(mm) track_to_metadata(track_node, track) albumtracknumber += 1 - tm["_albumtracknumber"] = albumtracknumber + tm["~albumtracknumber"] = albumtracknumber track._customize_metadata() self._new_metadata.length += tm.length From ddbf2e636b8f85a07b12f590375698b437dcd832 Mon Sep 17 00:00:00 2001 From: Sophist Date: Thu, 13 Mar 2014 06:49:03 +0000 Subject: [PATCH 4/5] Address bitmap comment. --- picard/album.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/picard/album.py b/picard/album.py index 1c94a2109..4b89d73ab 100644 --- a/picard/album.py +++ b/picard/album.py @@ -238,8 +238,6 @@ class Album(DataObject, Item): for track in self._new_tracks: track.metadata["~totalalbumtracks"] = totalalbumtracks - if "~releaselanguage" in self._new_metadata and not "language" in track.metadata: - track.metadata["language"] = self._new_metadata["~releaselanguage"] del self._release_node self._tracks_loaded = True From 7e6567245a6538d3f48176924a7acb2bd4fe6eca Mon Sep 17 00:00:00 2001 From: Sophist Date: Tue, 18 Mar 2014 13:13:41 +0000 Subject: [PATCH 5/5] Switch back to %_absolutetracknumber% --- picard/album.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/album.py b/picard/album.py index 4b89d73ab..8cc654b86 100644 --- a/picard/album.py +++ b/picard/album.py @@ -220,7 +220,7 @@ class Album(DataObject, Item): tm.copy(mm) track_to_metadata(track_node, track) albumtracknumber += 1 - tm["~albumtracknumber"] = albumtracknumber + tm["~absolutetracknumber"] = albumtracknumber track._customize_metadata() self._new_metadata.length += tm.length