Как я могу получить rhythmbox, чтобы увидеть, что разные альбомы с одинаковыми именами разные?


8

В моей библиотеке Rhythmbox есть и лучшие хиты потомков, и лучшие хиты королевы. Когда я сортирую по альбому, это выглядит так:

введите описание изображения здесь

Как я могу сказать, чтобы rhythmbox сортировал по альбомам таким образом, чтобы он не чередовал альбомы разных исполнителей с одинаковыми именами?


2
Я не знаю ни одного способа сделать это, однако, так как это большой вопрос, и мне очень любопытно, если бы это можно было решить, я бы предложил вам отправить этот вопрос разработчикам Rhythmbox, когда их сайт находится здесь, поскольку Вы сможете либо сказать, как это сделать, если он уже работает, либо сказать, что это не работает, и вы можете предложить его в качестве дополнения в будущем выпуске и внести свой вклад в то, чтобы сделать его лучшим музыкальным проигрывателем;)
Oyibo

Ответы:


4

Изначально Rhythmbox не имеет возможности различать разные альбомы с "лучшими хитами", потому что он рассматривает названия альбомов как уникальный идентификатор.

С помощью coverart -browser плагина rhythmbox мы рассматриваем как название альбома, так и имя исполнителя альбома как уникальный идентификатор.

Imgur

Как показано на рисунке - два исполнителя с одинаковыми названиями "лучших хитов", но альбомы показаны отдельно, поскольку оба альбома принадлежат разным исполнителям.

Обратите внимание: при копировании компакт-дисков альбом-исполнитель часто не копируется и остается пустым.

Еще хуже то, что для альбомов (сборников) с несколькими исполнителями поля «Исполнитель альбома» и «Исполнитель» также остаются пустыми. Таким образом, вы можете остаться с двумя альбомами с одинаковым названием.

Хитрость заключается в том, чтобы выбрать все треки для альбома, щелкнуть правой кнопкой мыши и выбрать свойства, а затем заполнить поле исполнителя альбома, чтобы сделать его уникальным

введите описание изображения здесь

Смотрите ссылки ниже для инструкций по установке.

Связанный вопрос:


2

Я видел эту проблему на разных системах и на разных проигрывателях, и единственное решение, которое я нашел, - это назвать альбомы с префиксом исполнителя.

Например:

"Red Hot Chilli Peppers Greatest Hits" вместо просто "Величайших хитов".

Я знаю, что это большая работа, но если у кого-то есть способ получше, я бы хотел это услышать.


Я получил 2 отрицательных отзыва за мой ответ, который я нахожу озадачивающим, учитывая, что на данный момент моя единственная возможность достичь того, что было задано в вопросе. Отвечать, что это невозможно, хорошо, но я предложил альтернативу, которая работает.
CoalaWeb

Изменение названий альбомов на что-то неправильное не является решением для всех. Это обходной путь, который, скорее всего, сломается, так как это делает название альбома неправильным. Любой, кто использует любые инструменты, которые автоматически исправляют метаданные, будет перезаписан такими изменениями. Ваш ответ также приглашает к дальнейшему обсуждению. Единственный правильный ответ - это то, что в настоящее время это ошибка, которая не работает, и о ней нужно сообщить как таковую, и исправить ее в восходящем направлении.
Добей

Я не согласен, что я использую эту систему в течение многих лет и, таким образом, является жизнеспособным решением в нынешних условиях. Вы делаете широкие заявления, такие как «единственный правильный ответ», который состоит в том, чтобы представить отчет об ошибке, который, скорее всего, займет месяцы или даже годы, поэтому я предлагаю альтернативу, пока этот процесс имеет место (я не заставляю кто-нибудь, чтобы использовать это). Мой первоначальный комментарий состоит в том, что я чувствую, что два отрицательных голоса необоснованны, не стесняйтесь не голосовать за мой ответ, но это очень отличается от того, чтобы дать ему отрицательный.
CoalaWeb

2

Вы не можете сделать это в Rhythmbox. Тем не менее, я бы посчитал ошибкой, что это происходит. Вы должны открыть ошибку об этом в апстриме, если она еще не открыта. При сортировке по альбому нужно выполнить сортировку по альбому, затем по исполнителю, затем по исполнителю, затем по номеру диска, а затем по номеру дорожки. Тем не менее, это в настоящее время не делает этого.


2

Выберите все треки из альбома, щелкните правой кнопкой мыши, выберите свойства. Не меняйте исполнителя или тег альбома. Установите «Исполнитель альбома», если хотите, или нажмите на вкладку «Сортировка». Здесь вы можете установить исполнителя и тег альбома, которые не будут отображаться, но будут использоваться специально для сортировки. Если вы установите для «Порядка сортировки альбома» значение «наибольшие хиты 1», например, и установите для него «наибольшие хиты 2» для другого альбома, они все равно будут отображаться как «Величайшие хиты» в библиотеке, но будут отсортированы. как отдельные альбомы. Лучшим решением было бы изменить поле «порядок сортировки по исполнителю» на имя соответствующего исполнителя. Это также хорошее решение для альбомов с несколькими исполнителями.

Вы также можете использовать это, если вам нравятся ваши альбомы, отсортированные в хронологическом порядке, поскольку Rhythmbox не имеет функции «альбом по году», которую я когда-либо видел только в iTunes.

Сортировка вашей библиотеки с использованием заголовка «Исполнитель», а не «Альбом» решит эту проблему гораздо легче; ваши альбомы будут по-прежнему отсортированы в алфавитном порядке, их треки расположены по порядку, а альбомы одного и того же исполнителя будут сгруппированы. Таким образом, Аутспринг и Королева даже не будут рядом друг с другом, не говоря уже о том, что все так смешалось.

Я знаю, что этот вопрос довольно старый, но, похоже, никто не опубликовал это решение. Надеюсь, я кому-то помог.


0

Я разработчик и добавил 'сортировать по исполнителю' в 'rhythmdb_query_model_album_sort_func' - см. Ниже.

Если вы конечный пользователь, который может подготовить вашу систему к сборке пакетов, исправьте исходный код, создайте новые пакеты, установите и продолжайте! ;-) .

Этот патч был сделан с rb v2.97, более новые версии могут иметь разные номера строк (еще не проверяли), но в основном код должен быть таким же.

Description: sort albums with same title first by artist, remove unnecesary space and tab
--- rhythmbox-2.97.orig/rhythmdb/rhythmdb-query-model.c
+++ rhythmbox-2.97/rhythmdb/rhythmdb-query-model.c
@@ -2192,7 +2192,7 @@ rhythmdb_query_model_drag_data_received
        return FALSE;
 }

-/* 
+/*
  * determines whether reordering is possible by checking up
  * the chain for a model with a sort function set.
  */
@@ -2921,7 +2921,7 @@
  * @data: nothing
  *
  * Sort function for sorting by album.  Sorts by album, then
- * disc number, then track number, then title.
+ * artist, then disc number, then track number, then title.
  *
  * Returns: result of sort comparison between a and b.
  */
@@ -2959,6 +2959,31 @@ rhythmdb_query_model_album_sort_func (Rh
        if (ret != 0)
                return ret;

+       /* Then by artist */
+        a_val = rhythmdb_entry_get_string (a, RHYTHMDB_PROP_ARTIST_SORTNAME_SORT_KEY);
+        if (a_val[0] == '\0') {
+                a_val = rhythmdb_entry_get_string (a, RHYTHMDB_PROP_ARTIST_SORT_KEY);
+        }
+        b_val = rhythmdb_entry_get_string (b, RHYTHMDB_PROP_ARTIST_SORTNAME_SORT_KEY);
+        if (b_val[0] == '\0') {
+                b_val = rhythmdb_entry_get_string (b, RHYTHMDB_PROP_ARTIST_SORT_KEY);
+        }
+
+        if (a_val == NULL) {
+                if (b_val == NULL)
+                        ret = 0;
+                else
+                        ret = -1;
+        } else if (b_val == NULL)
+                ret = 1;
+        else
+                ret = strcmp (a_val, b_val);
+
+        if (ret != 0)
+                return ret;
+        /*else
+                return rhythmdb_query_model_album_sort_func (a, b, data); */
+
        /* Then by disc number (assume 1 if non-existent) */
        a_num = rhythmdb_entry_get_ulong (a, RHYTHMDB_PROP_DISC_NUMBER);
        b_num = rhythmdb_entry_get_ulong (b, RHYTHMDB_PROP_DISC_NUMBER);
@@ -3168,7 +3193,7 @@
                                    gpointer data)
 {
        gulong a_val, b_val;
-       
+
        if (rhythmdb_entry_is_lossless (a)) {
                if (rhythmdb_entry_is_lossless (b))
                        return rhythmdb_query_model_location_sort_func (a, b, data);

Дальнейшие инструкции по сборке пакетов здесь и здесь


1
Добро пожаловать в Спросите Ubuntu! ;-) Не могли бы вы рассказать, как конечный пользователь может активировать эту функцию для своего распространения? (думаю, конечный пользователь)
Fabby

В следующий раз, не предлагайте эти изменения как анонимный пользователь, но войдите и затем отредактируйте, чтобы не проходить процесс проверки. Теперь вам повезло получить одного и того же рецензента два раза подряд, но нас несколько сотен, и в следующий раз вам не повезет! : P
Fabby
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.