-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Grouped crates #13978
base: main
Are you sure you want to change the base?
Grouped crates #13978
Conversation
* 20241011 Cues & Loops & Widget for Stems --------- Co-authored-by: Evelynne <Evelynne@Evelynne-Veys.com>
This reverts commit 07c4d99.
I haven't had a chance to look at the code but I love the idea! This is basically why I haven't used crate as much as I wanted to. I particularly like the fact that this can be based off the name and doesn't need some complex parenting mecanism. Just one early feedback, I think it would be grate to have that as part of the main |
thank you. Can you give me an example where more levels are absolutely needed (I mean it giving an extra value), because that implies more clicking to. I never had crates / music maps / music boxes / playlists divided in more then 1 level. That would mean eg Crates name Techno ///// Industrial //// 125-129 etc would become |
Like the idea too, probably the easiest easiest/most backwards-compatible way of adding support for nested crates. Making it opt-in to avoid surprises with any particular delimiters is a good idea.
I think it would be really useful to make this configurable, i.e. have an option to support arbitrarily deep nesting. My library heavily relies on this for subgenres, but I can see why this would make the UI too hard to navigate for others. Also, one thought that occurred to me, what do the groups/"folders" present when selected in the library? Do they show the union of all crates below (IMO that would be most useful)? |
You'd prefer a selection between possible delimiters? Can you list some?
Can you write / screenshot some examples?
I was wandering about this to, iTunes makes the Union. But this means recalculating the groups elements each time, even when it's just passing by with up/down ... could be a lot for slower machines and it would make some users unhappy when their machine gets slow. |
No, I think a text box is just fine. What I meant is that we should leave this setting off by default to avoid surprising users that e.g. already use "/" or "-" as part of an intentionally flat crate hierarchy.
For ballroom dances I do something similar:
I think it might be worth benchmarking that. If we can compute the union in a single SQL query, this doesn't necessarily have to be slow, SQLite is pretty good at churning through huge datasets. And given that we're probably "just" dealing with libraries on the order of tens of thousands of tracks (in the common case), I don't see why this should be much more of a performance issue than in other programs like iTunes. |
Top
I understand, I would have merged some group titles but I do know that it's important that people find themselves 'at ease' . This wil result in an extra sqlsearch like ' select .... where id = 'idOf1stGroupmember' or ... id = 'idOfLastGroupmember'. |
IMO we shouldn't limit the depth (or at the very least make it configurable) |
This is the solution I proposed in #5634, as it continued spinning in my head since sunday, I had to create it, I couldn't concentrate on anything else. A sideproject.
I hope I can make somebody happy with it.
In this PR I made an extra library feature by analogy to 'history' playlists.
In history playlists, playlists are 'grouped' on the year in creationdate.
For grouped crates you can select in options->preferences->library->grouped crates
to group crates based on a fixed length or a variable length with a delimiter (eg /////)
Grouped crates will make a 'group' for all crates starting with the same defined string.
This is NOT nested crates or multilevel crates, This adds 1 level, a grouping level to the cratesfeature.
For me this 1 level is more than enough but I can imagine that other people need a multilevel structure.
eg: if you have crates like
Pop - 60's
Pop - 70's
Pop - 80's
Pop - 90's
you can choose to group on 6 characters, the result will be:
group: Pop -
crates: 60's / 70's / 80's / 90's
or you can choose to use variable length with delimiter ' - ' the result will be:
group: Pop
crates : 60's / 70's / 80's / 90's
the advantage with variable length with delimiter is that the crates
Rock - 60's
Rock - 70's
Rock - 80's
Rock - 90's
New-Wave - 60's
New-Wave - 70's
New-Wave - 80's
New-Wave - 90's
will be processed in the same handling, the result will be
group: Rock
crates: 60's / 70's / 80's / 90's
group: New-Wave
crates: 60's / 70's / 80's / 90's
all crate functions stay the same
groups with only 1 crate (all unique names with no similarity in the beginning of the name) are NOT displayed as a group, but as the crate itself, so you get a mixxx of crates and groups.
20241112 - Eve Mixxx
-> with variable length (mask) groups crates can be multileveled grouped, (sub)groups are only created if group has more then 1 crate, tracks in crates are displayed in all parent (sub)groups, group decoration when track is in one of the (sub)groups member crates.