私のRhythmboxライブラリには、子孫によるグレイテストヒットとクイーンによるグレイテストヒットの両方があります。アルバムで並べ替えると、次のようになります。
リズムボックスに同じ名前の異なるアーティストのアルバムが交互にならないようにアルバムで並べ替えさせるにはどうすればよいですか?
私のRhythmboxライブラリには、子孫によるグレイテストヒットとクイーンによるグレイテストヒットの両方があります。アルバムで並べ替えると、次のようになります。
リズムボックスに同じ名前の異なるアーティストのアルバムが交互にならないようにアルバムで並べ替えさせるにはどうすればよいですか?
回答:
リズムボックスはアルバムのタイトルを一意の識別子として扱うため、箱から出して、「最大のヒット」アルバムを区別する機能はありません。
rhythmboxプラグインcoverart-browserを使用して、アルバムタイトルとアルバムアーティストの両方を一意の識別子として扱います。
写真が示すように、同じ「最大のヒット」タイトルを持つ2人のアーティストですが、2つのアルバムは異なるアーティストによるものであるため、アルバムは別々に表示されます。
注意-CDをリッピングするとき、多くの場合、アルバムアーティストはリッピングされず、空白のままになります。
さらに悪いことに、マルチアーティストアルバム(編集)の場合、アルバムアーティストとアーティストの両方のフィールドも空白のままです。したがって、まったく同じタイトルの2つのアルバムを残すことができます。
ここでの秘訣は、アルバムのすべてのトラックを選択し、右クリックしてプロパティを選択し、アルバムアーティストのフィールドに入力してユニークにすることです。
リンクされた質問:
さまざまなシステムでさまざまなプレーヤーでこの問題を見てきましたが、私が考え出した唯一の解決策は、アーティストの接頭辞が付いたアルバムに名前を付けることです。
例えば:
「Greatest Hits」だけでなく、「Red Hot Chilli Peppers Greatest Hits」。
私は多くの仕事を知っていますが、誰かがより良い方法を持っているなら、それを聞きたいです。
アルバムからすべてのトラックを選択し、右クリックしてプロパティを選択します。アーティストやアルバムのタグは変更しないでください。必要に応じて「アルバムアーティスト」を設定するか、「並べ替え」タブをクリックします。ここでは、表示されないが特にソートに使用されるアーティストとアルバムのタグを設定できます。たとえば、「アルバムの並べ替え順序」を「最大ヒット数1」に設定し、他のアルバムの「最大ヒット数2」に設定した場合、ライブラリではどちらも「最大ヒット数」として表示されますが、並べ替えられます別のアルバムとして。より良い解決策は、「アーティストの並べ替え順序」フィールドを対応するアーティストの名前に変更することです。これは、複数のアーティストがいるアルバムにも適しています。
Rhythmboxには、iTunesでしか見たことのない「年ごとのアルバム」機能がないため、アルバムを時系列で並べ替える場合にも、これを使用できます。
「アルバム」ではなく「アーティスト」という見出しを使用してライブラリを並べ替えると、この問題をはるかに簡単に解決できます。アルバムは引き続きトラックの順序でアルファベット順に並べ替えられ、同じアーティストのアルバムはグループ化されます。そうすれば、オフスプリングとクイーンはお互いに近づくことすらできなくなり、ましてやそのように混ざり合うことは言うまでもありません。
私はこの質問がかなり古いことを知っていますが、誰もこの解決策を投稿したようには見えません。私が誰かを助けたことを願っています。
私は開発者であり、「sort by artist」を「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);