Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can cmus sorted only by Album? #535

Closed
lungzeeyim opened this issue Sep 23, 2016 · 41 comments
Closed

Can cmus sorted only by Album? #535

lungzeeyim opened this issue Sep 23, 2016 · 41 comments

Comments

@lungzeeyim
Copy link

It is not convenience for user to find songs in a album that has more than one singer/writer.

@nefthy
Copy link
Collaborator

nefthy commented Sep 23, 2016

View 1 (the tree view) is sorted by Artist and then by Year, Album, Tracknumber.

@lungzeeyim
Copy link
Author

I know. But I think simply list all album that is better in some situation. It is not convenience for user to find songs in a album that has more than one singer/writer.

@skaero
Copy link

skaero commented Jul 3, 2017

Is this something that can be added as a setting or another view? I just want to have "Album" instead of "Artist / Album".

My library is 95% OST's which almost always have multiple artists, when I want to listen to a soundtrack from a particular movie/show I can't find it spread out over all the artists (+ I don't remember OST's by there artists) so I have to use the library view which is just a massive unwieldy list now thats hard to navigate and use. Simply having a lists of albums would make navigation simple and reminded me what I have in my collection.

@mahkoh
Copy link
Member

mahkoh commented Jul 3, 2017

Set the albumartist tag of the tracks to have them grouped under one artist.

@skaero
Copy link

skaero commented Jul 3, 2017

That would basically mean setting the "album artist = album title" that seems like an unnecessary work just to show a list of albums.

@mahkoh
Copy link
Member

mahkoh commented Jul 3, 2017

That would basically mean setting the "album artist = album title"

No, it means setting album artist to the correct value.

For example: https://www.amazon.com/Zootopia-Soundtrack/dp/B019H96E9U
At the top is indicates that the album artist is Michael Giacchino. If you set the tag to that value, the tracks will appear under his name and under the name of the album.

@skaero
Copy link

skaero commented Jul 3, 2017

I can understand doing that, but if I want to listen to the Zootopia Soundtrack I'm going to remember "Zootopia" not "Michael Giacchino"

Thats why I want to see the list of albums instead of the artists.

@mahkoh
Copy link
Member

mahkoh commented Jul 3, 2017

You might be interested in

cmus/Doc/cmus.txt

Lines 113 to 114 in 61d4b2b

In views 1-4 words are compared to artist, album and title tags. Type
*//WORDS* or *??WORDS* to search only artists/albums in view 1 or titles in

@skaero
Copy link

skaero commented Jul 3, 2017

That defiantly helps it makes it workable but still isn't the ideal solution since its hard to see at a glance all the soundtracks I have.

@flyingmutant
Copy link
Member

Am I naive to suggest to use the "is compilation" tag, or set the artist/albumartist to something like "Various Artists"? Cmus has always had great support for compilations, for exactly this use case.

See: https://github.com/cmus/cmus/blob/master/comment.c#L57

@skaero
Copy link

skaero commented Jul 4, 2017

It does help organize the albums but I think it would still be simpler to be able to show a list of all the albums instead of the artists.

I guess my problem is I always remember the album name but not the artist so when I'm just browsing for something to listen to I see artists I don't recognize which I have to expand to see the albums underneath of them with all of the mixed ones then showing up under the "Various Artists" artist.

@SlowRichard
Copy link

I would also like to be able to sort by albums only, if possible. It's useful with classical albums where the composer is in the title so, e.g., you can have all Bach Cantata recordings listed next to each other.

The filters are very good for this as well though.

@machin3io
Copy link

machin3io commented Feb 13, 2018

I'd like to chime in and add another use case for album sorting: It would be tremendously useful to toggle the first library view from artist first, albums second, to albums first, artist second.
It's useful in the case of using the album tag for podcast names, and using tracknumber tags for podcast episodes.

Artist A, may have done various sets on various podcasts.
Artist B, may have done sets on the same podcasts at different times(episodes).

Toggling to Album sorting would allow for viewing those podcasts and listen to episodes of it when different artists guest mixed.

Album filters work, but toggling the sorting would be much more visual.

@gastonasston
Copy link

Yeah, I too listen to Soundtracks and Compilation CDs and I listen by Album. Say if I want to listen to the Goofy Movie Sountrack. If I just want to listen to the two Powerline songs, I would have to look for Tevin Campbell for "Stand Out" and "I 2 I", but if I want to listen to "On the Open Road" or "After Today", I have to keep track the other musicians.

@linclelinkpart5
Copy link

Seconding this, I almost never use albumartist when browsing my library. Ideally, it'd be nice to have a way to show a raw "here's a list of all your album names" listing.

@rutenkolk
Copy link

Seconding this also.

I have a few Albums by Artists, whose Name I cannot remember correctly, let alone type (Japanese, Russian, Chinese). The Album and Track names however are in English. At this time I have no real way of simply listening to all the tracks in the album front-to-back in a convenient way.

@ghost
Copy link

ghost commented Nov 16, 2018

Having this feature would be great ! Please make it happen.

@7596ff
Copy link

7596ff commented Dec 3, 2018

This would be nice! OverClocked Remix albums are all compilations and it's hard to view the library when the artists are all separate.
2018-12-03t07 19 36z

@rogershijin
Copy link

I would also greatly appreciate this feature.

@kotatsuyaki
Copy link

I encountered this issue as well i.e. compilation albums are spread out under different artists in 1st view, making listening to these albums a pain. Would like the idea of having a toggle between artist first and album first.

@ecesar88
Copy link

ecesar88 commented Mar 6, 2019

I also would like to view my library by the album name instead of the artist. It makes listening to my library so much easier. Like @skaero said above, no one remebers the music name by the artist name. My library is 90% OST and the majority of the albums have more than one artist:
2019-03-05_22-32-25

@akshayupendran
Copy link

Hoping that this issue is still tracked, I am quite new to CMUS but i love the features.
But have the same query as here:
I have an album with the same album artist but differing artists.

CMUS tends to sort them by artists and inside that the album name etc. This is quite inconvenient.
It would be nice if it can atleast sort by album artist as suggested by @mahkoh .

Thank you for your patience.

image

@nefthy
Copy link
Collaborator

nefthy commented Mar 18, 2019

Mahkoh suggested that you set the "Albumartist" tag on the songs correctly. You can do that with a id3 tag editor like easytag

@nefthy nefthy closed this as completed Mar 18, 2019
@rutenkolk
Copy link

So is this a hard "will not implement"?

I disagree with the solution suggested by @mahkoh . In my opinion it should not be necessary to mutate outside data. Furthermore, I would prefer not to overwrite possibly existing meta-data.

Again, the "correct" value as pointed out by @mahkoh is a combined name of the artists. I'm repeating myself, but I have not the ability to recognize the artists name, if they are in a foreign language.

I think the feature request has been misunderstood. Please implement a View, or a way to configure a view, to exclusively sort via the "album" meta-data tag.

@nefthy
Copy link
Collaborator

nefthy commented Mar 18, 2019

Compilation support is implemented and working fine. It is not cmus' job to go out of its way to facilitate broken and/or missing tags.

@akshayupendran
Copy link

Hi @nefthy: As I mentioned in the previous comment:
I have an album with the same album artist but differing artists.

Here is the proof:
Screenshot from 2019-03-18 22-59-55
Screenshot from 2019-03-18 23-00-08

But still the CMUS sorts them as shown in previous comment.

Can you please teach me how I should do the same - i use EasyTAG.

@akshayupendran
Copy link

@mahkoh Please help with previous comment.

@nefthy
Copy link
Collaborator

nefthy commented Mar 18, 2019

Did you update your cache after changing the tags?

@nefthy
Copy link
Collaborator

nefthy commented Mar 18, 2019

cmus_compilation_tags
cmus_compilation_tree

@akshayupendran
Copy link

OH!!! Wow Updating the cache did work now 👍
Thank you so much @nefthy . 🥇

@lanpai
Copy link

lanpai commented Apr 21, 2019

Anyone who would be interested in patching their cmus to enable sorting the tree view by album, here's a hacky little patch:

https://gist.github.com/lanpai/f949c9459d892049e9ad8076a260c790

diff --git a/comment.c b/comment.c
index 13ba7f0..4b3894d 100644
--- a/comment.c
+++ b/comment.c
@@ -60,7 +60,7 @@ int track_is_compilation(const struct keyval *comments)
 
 int track_is_va_compilation(const struct keyval *comments)
 {
-	const char *c, *a, *aa;
+	/*const char *c, *a, *aa;
 
 	aa = keyvals_get_val(comments, "albumartist");
 	if (aa)
@@ -76,38 +76,39 @@ int track_is_va_compilation(const struct keyval *comments)
 
 	c = keyvals_get_val(comments, "partofacompilation");
 	if (c && is_freeform_true(c))
-		return 1;
+		return 1;*/
 
 	return 0;
 }
 
 const char *comments_get_albumartist(const struct keyval *comments)
 {
-	const char *val = keyvals_get_val(comments, "albumartist");
+	/*const char *val = keyvals_get_val(comments, "albumartist");
 
 	if (!val || strcmp(val, "") == 0)
 		val = keyvals_get_val(comments, "artist");
 
-	return val;
+	return val;*/
+    return "<Various Albums>";
 }
 
 const char *comments_get_artistsort(const struct keyval *comments)
 {
-	const char *val;
+	//const char *val;
 
-	if (track_is_va_compilation(comments))
-		return NULL;
+	/*if (track_is_va_compilation(comments))
+		return NULL;*/
 
-	val = keyvals_get_val(comments, "albumartistsort");
-	if (!track_is_compilation(comments)) {
+	//val = keyvals_get_val(comments, "albumartistsort");
+	/*if (!track_is_compilation(comments)) {
 		if (!val || strcmp(val, "") == 0)
 			val = keyvals_get_val(comments, "artistsort");
 	}
 
 	if (!val || strcmp(val, "") == 0)
-		return NULL;
+		return NULL;*/
 
-	return val;
+	return NULL;
 }
 
 int comments_get_int(const struct keyval *comments, const char *key)
diff --git a/tree.c b/tree.c
index 7cad3e3..311077e 100644
--- a/tree.c
+++ b/tree.c
@@ -519,7 +519,7 @@ static struct artist *artist_new(const char *name, const char *sort_name, int is
 	a->collkey_name = u_strcasecoll_key(a->name);
 	a->collkey_sort_name = u_strcasecoll_key0(a->sort_name);
 	a->collkey_auto_sort_name = u_strcasecoll_key0(a->auto_sort_name);
-	a->expanded = 0;
+	a->expanded = 1;
 	a->is_compilation = is_compilation;
 	rb_root_init(&a->album_root);
 
diff --git a/ui_curses.c b/ui_curses.c
index 564b205..b356ae1 100644
--- a/ui_curses.c
+++ b/ui_curses.c
@@ -1014,7 +1014,7 @@ static void update_window(struct window *win, int x, int y, int w, const char *t
 static void update_tree_window(void)
 {
 	update_window(lib_tree_win, tree_win_x, 0, tree_win_w,
-			"Artist / Album", print_tree);
+			"Album", print_tree);
 }
 
 static void update_track_window(void)

@Groctel
Copy link

Groctel commented Apr 26, 2019

@lanpai Which files do I edit to make the patch work?

@lanpai
Copy link

lanpai commented Apr 26, 2019

@Groctel You can save the file as a .patch then run git apply <filename>. There is a possibility that this .patch won't work automatically on the latest version of cmus. Therefore, I'd recommend applying the patch manually. To do so, you need to edit comment.c, tree.c, and ui_curses.c and delete the lines that are prefixed by a - and add the lines prefixed +.

@Groctel
Copy link

Groctel commented Apr 26, 2019

Thanks! @lanpai ❤️

@hjrdizwell
Copy link

I would really like the library view to not sort albums by date: it would be really helpful to be able to actually configure the precise ordering, instead of it being hard-coded. It's easy enough to alter the sort order for View 2 ("Sorted Library") to remove reference to date.

For example:

Screenshot from 2019-05-31 18-51-58

The fact that my recording of Berg's violin concerto is quite an early one shouldn't mandate that it appears at the top of the list! Violin concertos should be somewhere down the end of the list, and 'Adagio' should be at the top. For me, obviously, not everyone... but the basic point is that the album ordering on view 1 should (I feel) be amendable by each user as the mood takes him/her -and, in my specific case, date of recording shouldn't come into it at all.

Being rather new to cmus, it is entirely possible I'm using it wrong ...and if my album sorting order problem can be resolved by other means, I'd really appreciate knowing how!

Cheers.

@jaimejim
Copy link

Does the ID3 specification actually have Compilation or Album Artist as valid tags anyways?
https://en.wikipedia.org/wiki/ID3

id3tool does not seem to support those two fields.
https://www.gsp.com/cgi-bin/man.cgi?section=1&topic=id3tool

@jaimejim
Copy link

In addition to the previous comment. Would any of the still-active developers be willing to add the "sort by album" patch by @lanpai maybe enhance it? Would anyone accept currency in exchange for the effort or is cmus completely and definitely dead?

@lanpai
Copy link

lanpai commented Sep 16, 2019

@jaimejim the project is no longer being actively maintained as stated in #856. If you wish to build upon my patch and change the sorting method of cmus to make it either a different constant or a variable sorting, I will be willing to put work into it along with you. 👍

asnr added a commit to asnr/cmus that referenced this issue Apr 10, 2020
@sukulent
Copy link

Hey, I just read, that this is now maintained, so I would like to ask, how can I switch the 1st view from "Artist / Album" to only show albums? I have a big mess in artists and I don't feel like cleaning it. Everything is fine using just albums.
thanks

(I have v2.8.0 from debian buster repo.)

@lanpai
Copy link

lanpai commented Nov 19, 2021

@sukulent as far as I'm aware, this is not a feature in cmus. Though I wrote a hacky patch a couple years back, this is far from a solution. Hopefully a proper implementation of album-only sorting will be addressed now that cmus is maintained again 😄

@TheWellermann
Copy link

Resurrecting a real old thread here, but thought I'd mention I found a workaround in that CMus prioritizes sorting by AlbumArtist tag over the standard Artist tag.
I've achieved an effective Album sort by using Ex Falso to edit the tags of all my files such that the AlbumArtist field actually contains the Album name. Then I can keep the Artist names correct but also have my Library split into Albums instead of artist. I can also combine multiple Disk albums together by changing their Album field to just Disk 1, 2... and the like.

Of course, this doesn't work if you actually use Album Artists in your tracks, but a workaround is a workaround.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests