clangen / musikcube

a cross-platform, terminal-based music player, audio engine, metadata indexer, and server in c++
https://musikcube.com
BSD 3-Clause "New" or "Revised" License
4.08k stars 295 forks source link

support multi-disc albums #655

Open llfw opened 6 months ago

llfw commented 6 months ago

i'm happy to write the code for this and submit a PR, but i wanted to check if this is something you'd be interested in first.

currently, musikcube doesn't support multi-disc albums, so they appear like this in the browser:

│Beacon Theatre - Live From New York - 1:59:00                                                                                       │
│  1   72nd St. Subway Blues (Intro)  ·····    1:05   Joe Bonamassa    │
│  2   Slow Train                     ·····    6:35   Joe Bonamassa    │
│  3   Cradle Rock                    ·····    4:22   Joe Bonamassa    │
│  4   When The Fire Hits The Sea     ·····    3:43   Joe Bonamassa    │
│  5   Midnight Blues                 ·····    7:49   Joe Bonamassa    │
│  6   Dust Bowl                      ·····    7:06   Joe Bonamassa    │
│  7   The River                      ·····    6:36   Joe Bonamassa    │
│  8   I'll Take Care Of You          ·····    5:41   Joe Bonamassa &..│
│  9   Sinner's Prayer                ·····    5:04   Joe Bonamassa &..│
│ 10   You Better Watch Yourself      ·····    4:10   Joe Bonamassa    │
│ 11   Steal Your Heart Away          ·····    3:52   Joe Bonamassa    │
│  1   Bird On A Wire                 ·····    5:45   Joe Bonamassa    │
│  2   Down Around My Place           ·····    5:51   Joe Bonamassa &..│
│  3   I Know A Place                 ·····    4:38   Joe Bonamassa &..│
│  4   Blue And Evil                  ·····    6:50   Joe Bonamassa    │
│  5   Walk In My Shadow              ·····    4:58   Joe Bonamassa &..│
│  6   Fire And Water                 ·····    4:38   Joe Bonamassa &..│
│  7   Mountain Time                  ·····   12:32   Joe Bonamassa    │
│  8   Young Man Blues                ·····    9:39   Joe Bonamassa    │
│  9   If Heartaches Were Nickles     ·····    8:06   Joe Bonamassa    │

it would be better to display a header for each disc, so it would appear like this:

│Beacon Theatre - Live From New York - 1:59:00                                                                                       │
| Disc 1 - Title of disc 1
│  1   72nd St. Subway Blues (Intro)  ·····    1:05   Joe Bonamassa    │
[...]
| Disc 2 - Title of disc 2
│  1   Bird On A Wire                 ·····    5:45   Joe Bonamassa    │
[...]

both FLAC and ID3 have a way to encode the number and title of a multi-disc set.

henriquenunez commented 3 months ago

Definitely interested! +1

How are we defining multi disc albums? By some field in the metadata?

llfw commented 3 months ago

How are we defining multi disc albums? By some field in the metadata?

that's how i would do it (and is how other music players do it).

in FLAC:

in ID3v2.4:

i am not sure about other formats or tagging systems since i only use FLAC and ID3v2.4.

unfortunately i'm no longer using musikcube (due to other issues) so i probably won't work on this feature.