快速登录:  

Forum: VirtualDJ Skins

话题: point & click tagging
locoDogPRO InfinityModeratorMember since 2013


an idea I'm working on, I can't skin pretty but it's not a bad idea, it's horrible mouse work but some people just can't give it up.
Just the 4 tags that express what the track is about, genre, user1 & 2, comment.
20-30 boxes to just append a tag.

when browser focused I can show off some scrolling tricks to do several tracks in a batch.
 

发表时间 Thu 23 Feb 23 @ 4:53 pm
locoDogPRO InfinityModeratorMember since 2013


no prizes for prettiness, but with text inserts filled it will be functional. Just need to make some decisions on the custom button scripts, then I can finish the scroller
 

发表时间 Thu 23 Feb 23 @ 9:40 pm
Hey Locodog,
I want to add tags too in a fast way. So (actually before User 1 field handled tags) I created a PAD-mapping with multiple pages, that contains all tags that I need. Pressing on a tag appends the tag to the user 1 field if it's not there already.

Like this I was able to tag very fast. But it was not easy to create the scripts. At least for me ;-). I ended up to create a little program that takes an 2-dimensional 2x8 array of tags and multiple pages to create the XML for the pad-page. Here is the outcome of the pad-page for my tags:

<?xml version="1.0" encoding="UTF-8"?>
<page name="Tagging">
<pad1 color="var '$tagmode' 0 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'GG' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'GG' ? color 'orange' : off :
var '$tagmode' 1 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Trancy' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Trancy' ? color 'orange' : off :
var '$tagmode' 2 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Weird' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Weird' ? color 'orange' : off :
var '$tagmode' 3 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'SambaBeat' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'SambaBeat' ? color 'orange' : off :
off" name="`var '$tagmode' 0 ? get_text 'GG' : var '$tagmode' 1 ? get_text 'Trancy' : var '$tagmode' 2 ? get_text 'Weird' : var '$tagmode' 3 ? get_text 'SambaBeat' : nothing`">
var '$tagmode' 0 ? get_browsed_song 'User 1' & param_contains '#GG' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#GG' : get_browsed_song 'User 1' & param_add ' #GG' & browsed_song 'User 1' :
var '$tagmode' 1 ? get_browsed_song 'User 1' & param_contains '#Trancy' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Trancy' : get_browsed_song 'User 1' & param_add ' #Trancy' & browsed_song 'User 1' :
var '$tagmode' 2 ? get_browsed_song 'User 1' & param_contains '#Weird' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Weird' : get_browsed_song 'User 1' & param_add ' #Weird' & browsed_song 'User 1' :
var '$tagmode' 3 ? get_browsed_song 'User 1' & param_contains '#SambaBeat' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#SambaBeat' : get_browsed_song 'User 1' & param_add ' #SambaBeat' & browsed_song 'User 1' :
nothing
</pad1>
<pad2 color="var '$tagmode' 0 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Famous' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Famous' ? color 'orange' : off :
var '$tagmode' 1 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Top' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Top' ? color 'orange' : off :
var '$tagmode' 2 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Housy' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Housy' ? color 'orange' : off :
var '$tagmode' 3 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Ballade' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Ballade' ? color 'orange' : off :
off" name="`var '$tagmode' 0 ? get_text 'Famous' : var '$tagmode' 1 ? get_text 'Top' : var '$tagmode' 2 ? get_text 'Housy' : var '$tagmode' 3 ? get_text 'Ballade' : nothing`">
var '$tagmode' 0 ? get_browsed_song 'User 1' & param_contains '#Famous' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Famous' : get_browsed_song 'User 1' & param_add ' #Famous' & browsed_song 'User 1' :
var '$tagmode' 1 ? get_browsed_song 'User 1' & param_contains '#Top' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Top' : get_browsed_song 'User 1' & param_add ' #Top' & browsed_song 'User 1' :
var '$tagmode' 2 ? get_browsed_song 'User 1' & param_contains '#Housy' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Housy' : get_browsed_song 'User 1' & param_add ' #Housy' & browsed_song 'User 1' :
var '$tagmode' 3 ? get_browsed_song 'User 1' & param_contains '#Ballade' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Ballade' : get_browsed_song 'User 1' & param_add ' #Ballade' & browsed_song 'User 1' :
nothing
</pad2>
<pad3 color="var '$tagmode' 0 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Hard' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Hard' ? color 'orange' : off :
var '$tagmode' 1 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Intro' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Intro' ? color 'orange' : off :
var '$tagmode' 2 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Outro' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Outro' ? color 'orange' : off :
var '$tagmode' 3 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'GG' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'GG' ? color 'orange' : off :
off" name="`var '$tagmode' 0 ? get_text 'Hard' : var '$tagmode' 1 ? get_text 'Intro' : var '$tagmode' 2 ? get_text 'Outro' : var '$tagmode' 3 ? get_text 'GG' : nothing`">
var '$tagmode' 0 ? get_browsed_song 'User 1' & param_contains '#Hard' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Hard' : get_browsed_song 'User 1' & param_add ' #Hard' & browsed_song 'User 1' :
var '$tagmode' 1 ? get_browsed_song 'User 1' & param_contains '#Intro' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Intro' : get_browsed_song 'User 1' & param_add ' #Intro' & browsed_song 'User 1' :
var '$tagmode' 2 ? get_browsed_song 'User 1' & param_contains '#Outro' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Outro' : get_browsed_song 'User 1' & param_add ' #Outro' & browsed_song 'User 1' :
var '$tagmode' 3 ? get_browsed_song 'User 1' & param_contains '#GG' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#GG' : get_browsed_song 'User 1' & param_add ' #GG' & browsed_song 'User 1' :
nothing
</pad3>
<pad4 color="var '$tagmode' 0 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Dark' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Dark' ? color 'orange' : off :
var '$tagmode' 1 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains '303' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains '303' ? color 'orange' : off :
var '$tagmode' 2 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Funky' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Funky' ? color 'orange' : off :
var '$tagmode' 3 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'HandsUp' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'HandsUp' ? color 'orange' : off :
off" name="`var '$tagmode' 0 ? get_text 'Dark' : var '$tagmode' 1 ? get_text '303' : var '$tagmode' 2 ? get_text 'Funky' : var '$tagmode' 3 ? get_text 'HandsUp' : nothing`">
var '$tagmode' 0 ? get_browsed_song 'User 1' & param_contains '#Dark' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Dark' : get_browsed_song 'User 1' & param_add ' #Dark' & browsed_song 'User 1' :
var '$tagmode' 1 ? get_browsed_song 'User 1' & param_contains '#303' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#303' : get_browsed_song 'User 1' & param_add ' #303' & browsed_song 'User 1' :
var '$tagmode' 2 ? get_browsed_song 'User 1' & param_contains '#Funky' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Funky' : get_browsed_song 'User 1' & param_add ' #Funky' & browsed_song 'User 1' :
var '$tagmode' 3 ? get_browsed_song 'User 1' & param_contains '#HandsUp' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#HandsUp' : get_browsed_song 'User 1' & param_add ' #HandsUp' & browsed_song 'User 1' :
nothing
</pad4>
<pad5 color="var '$tagmode' 0 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Relaxed' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Relaxed' ? color 'orange' : off :
var '$tagmode' 1 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Organic' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Organic' ? color 'orange' : off :
var '$tagmode' 2 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'African' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'African' ? color 'orange' : off :
var '$tagmode' 3 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Remix' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Remix' ? color 'orange' : off :
off" name="`var '$tagmode' 0 ? get_text 'Relaxed' : var '$tagmode' 1 ? get_text 'Organic' : var '$tagmode' 2 ? get_text 'African' : var '$tagmode' 3 ? get_text 'Remix' : nothing`">
var '$tagmode' 0 ? get_browsed_song 'User 1' & param_contains '#Relaxed' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Relaxed' : get_browsed_song 'User 1' & param_add ' #Relaxed' & browsed_song 'User 1' :
var '$tagmode' 1 ? get_browsed_song 'User 1' & param_contains '#Organic' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Organic' : get_browsed_song 'User 1' & param_add ' #Organic' & browsed_song 'User 1' :
var '$tagmode' 2 ? get_browsed_song 'User 1' & param_contains '#African' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#African' : get_browsed_song 'User 1' & param_add ' #African' & browsed_song 'User 1' :
var '$tagmode' 3 ? get_browsed_song 'User 1' & param_contains '#Remix' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Remix' : get_browsed_song 'User 1' & param_add ' #Remix' & browsed_song 'User 1' :
nothing
</pad5>
<pad6 color="var '$tagmode' 0 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'GVocal' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'GVocal' ? color 'orange' : off :
var '$tagmode' 1 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Dreaming' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Dreaming' ? color 'orange' : off :
var '$tagmode' 2 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Lok' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Lok' ? color 'orange' : off :
var '$tagmode' 3 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Schnulz' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Schnulz' ? color 'orange' : off :
off" name="`var '$tagmode' 0 ? get_text 'GVocal' : var '$tagmode' 1 ? get_text 'Dreaming' : var '$tagmode' 2 ? get_text 'Lok' : var '$tagmode' 3 ? get_text 'Schnulz' : nothing`">
var '$tagmode' 0 ? get_browsed_song 'User 1' & param_contains '#GVocal' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#GVocal' : get_browsed_song 'User 1' & param_add ' #GVocal' & browsed_song 'User 1' :
var '$tagmode' 1 ? get_browsed_song 'User 1' & param_contains '#Dreaming' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Dreaming' : get_browsed_song 'User 1' & param_add ' #Dreaming' & browsed_song 'User 1' :
var '$tagmode' 2 ? get_browsed_song 'User 1' & param_contains '#Lok' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Lok' : get_browsed_song 'User 1' & param_add ' #Lok' & browsed_song 'User 1' :
var '$tagmode' 3 ? get_browsed_song 'User 1' & param_contains '#Schnulz' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Schnulz' : get_browsed_song 'User 1' & param_add ' #Schnulz' & browsed_song 'User 1' :
nothing
</pad6>
<pad7 color="var '$tagmode' 0 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'GBrass' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'GBrass' ? color 'orange' : off :
var '$tagmode' 1 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Monoton' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Monoton' ? color 'orange' : off :
var '$tagmode' 2 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Minimal' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Minimal' ? color 'orange' : off :
var '$tagmode' 3 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'RB' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'RB' ? color 'orange' : off :
off" name="`var '$tagmode' 0 ? get_text 'GBrass' : var '$tagmode' 1 ? get_text 'Monoton' : var '$tagmode' 2 ? get_text 'Minimal' : var '$tagmode' 3 ? get_text 'RB' : nothing`">
var '$tagmode' 0 ? get_browsed_song 'User 1' & param_contains '#GBrass' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#GBrass' : get_browsed_song 'User 1' & param_add ' #GBrass' & browsed_song 'User 1' :
var '$tagmode' 1 ? get_browsed_song 'User 1' & param_contains '#Monoton' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Monoton' : get_browsed_song 'User 1' & param_add ' #Monoton' & browsed_song 'User 1' :
var '$tagmode' 2 ? get_browsed_song 'User 1' & param_contains '#Minimal' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Minimal' : get_browsed_song 'User 1' & param_add ' #Minimal' & browsed_song 'User 1' :
var '$tagmode' 3 ? get_browsed_song 'User 1' & param_contains '#RB' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#RB' : get_browsed_song 'User 1' & param_add ' #RB' & browsed_song 'User 1' :
nothing
</pad7>
<pad8 color="var '$tagmode' 0 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'GMellow' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'GMellow' ? color 'orange' : off :
var '$tagmode' 1 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'Lifting' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'Lifting' ? color 'orange' : off :
var '$tagmode' 2 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'SpeedChange' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'SpeedChange' ? color 'orange' : off :
var '$tagmode' 3 ? param_equal '`get_filepath`' '`get_browsed_filepath`' ? get_browsed_song 'User 1' & param_contains 'BB' ? color 'cyan' : off : get_browsed_song 'User 1' & param_contains 'BB' ? color 'orange' : off :
off" name="`var '$tagmode' 0 ? get_text 'GMellow' : var '$tagmode' 1 ? get_text 'Lifting' : var '$tagmode' 2 ? get_text 'SpeedChange' : var '$tagmode' 3 ? get_text 'BB' : nothing`">
var '$tagmode' 0 ? get_browsed_song 'User 1' & param_contains '#GMellow' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#GMellow' : get_browsed_song 'User 1' & param_add ' #GMellow' & browsed_song 'User 1' :
var '$tagmode' 1 ? get_browsed_song 'User 1' & param_contains '#Lifting' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#Lifting' : get_browsed_song 'User 1' & param_add ' #Lifting' & browsed_song 'User 1' :
var '$tagmode' 2 ? get_browsed_song 'User 1' & param_contains '#SpeedChange' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#SpeedChange' : get_browsed_song 'User 1' & param_add ' #SpeedChange' & browsed_song 'User 1' :
var '$tagmode' 3 ? get_browsed_song 'User 1' & param_contains '#BB' ? nothing : get_browsed_song 'User 1' & param_equal '' ? browsed_song 'User 1' '#BB' : get_browsed_song 'User 1' & param_add ' #BB' & browsed_song 'User 1' :
nothing
</pad8>
</page>

 

发表时间 Tue 28 Feb 23 @ 7:36 pm
locoDogPRO InfinityModeratorMember since 2013
Thanks, I thought of a pad, but I didn't like it. It would do the job, but not quite the way I want to do the job. [fussy I suppose, but I'm catering to myself]
I went the custom_button route and the scripts are very functional but kind of long to type out. so many conditionals, marking; deck or browser focused, part of a batch marking. There's also a thing to write quick_filter 0.
Quick filters as is never sat right with me*, I'm more into more fuzzy filters, eg;
thing && ( other thing || third thing )
and quick filters, as is default, don't really do || with dynamic stuff

plus; I know there's no hard reason to have marking and filtering in the same interface, one is a down time task, the other has to be optimised for performance.
Even still there's a clarity, an efficiency, to make filters live in the same format you marked tracks.

my next iteration, is super simple custom buttons, just
set_var $string "String"
then clickthru to a button that uses var $string and my script

thinking about it out loud, I'll use 1 multibutton element instead, WAAAAAY easier.

* = I'm not saying atomix got quick filters wrong, they made it accessible for the most people [that's the main job] , but quick_filter 0 is atomix all over, it's not really documented. Either you worked it out, or you asked a question that needed it, or you didn't need to think about it because you weren't doing that kind of thing.
 

发表时间 Tue 28 Feb 23 @ 9:12 pm
locoDogPRO InfinityModeratorMember since 2013


Got something working, genre function is in use and finding me results.
Still to decide on the "Feeling" tag params.
30 options for genre and feeling doesn't quite do it [almost enough] but user 1 & user 2 I only use for flags so I can use those buttons as overspill.

the script for custom buttons aren't quite as short as I like [having the button led logic came at a cost] but not that bad.

having dynamic exact key filtering and bpm range for 0.5* | 1* | 2* is nice
 

发表时间 Sat 04 Mar 23 @ 8:19 pm
locoDogPRO InfinityModeratorMember since 2013
 

发表时间 Tue 07 Mar 23 @ 2:10 pm
I and I'm sure a few others have made this same request a while back...this is a major music organization deficiency wrt hashtagging.

My viewpoint was it being a feature (not a skin design choice), similar in behavior to Rekordbox - a new sidelist with batch add/remove tag capability, or at the very least, a new context menu option.
 

发表时间 Thu 30 Mar 23 @ 6:00 pm
locoDogPRO InfinityModeratorMember since 2013
I'm not convinced with the sidebar idea, it doesn't have the space.
Tagging is a downtime task.
While the videos showing 1 or 2 uses look neat enough I think repeated use with a broad range of inputs scrolling would start to get annoying.

I made the thing I could make now, I don't think it's right either. Just the idea of what there could be with what we have now.
 

发表时间 Thu 30 Mar 23 @ 6:50 pm
locodog wrote :

I'm not convinced with the sidebar idea, it doesn't have the space.


The sideview is a resizeable, tabbed and scrollable interface in the software, that already displays various listings with potentially a lot of information, so I'm not sure I agree with the viewpoint of lack of space. Rekordbox's implementation is a scrollable sidebar/sideview essentially. It doesn't have to be a permanent fixture in the sideview...it can be optional.

locodog wrote :

Tagging is a downtime task.


This isn't completely true/is a personal choice. You can choose to tag offline, but there are cases where you could be playing songs, even during a gig, and you see the potential to add a new tag to it that the song didn't have already. Rekordbox allows for this workflow (I used to do it when I used Rekordbox), as well as offline tagging...the choice is up to the user.

locodog wrote :

While the videos showing 1 or 2 uses look neat enough I think repeated use with a broad range of inputs scrolling would start to get annoying.


Again, respectfully, this is personal taste/opinion. The current tag selection narrowing from a filter button is a scrollable list, as well as Tag entry in the info sidebar...the idea is a natural extension to that.

I will say, I'm not trying to compete with ideas...I just wanted to state my agreement with you on this being a deficiency that should be addressed, as it would save time im organization.
 

发表时间 Thu 30 Mar 23 @ 9:40 pm