Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_skip: skip tracks that match a specified search query (Read 331463 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

Re: foo_skip: skip tracks that match a specified search query

Reply #550
It seems the component does not skip ftp:// playlist items.
For example, these AHX files (to add them to playlist use "Add location...") and test for "Skip track query: %rating% LESS 1":
Code: [Select]
ftp://ftp.modland.com/pub/favourites/AHX/Daiz'l/zero impression f.ahx
ftp://ftp.modland.com/pub/favourites/AHX/Gavin Lucas/forbidden colours2.1.ahx

Re: foo_skip: skip tracks that match a specified search query

Reply #551
^This component behavior is decoder dependent.
So the foo_input_zxtune decoder does not skip ftp:// tracks, and foo_input_hvl skips properly.
And it seems that depends on processing the ftp:// file properties. Both decoders do this differently.
After playing and loading ftp:// file information using foo_input_hvl, then foo_input_zxtune will also skips tracks properly.

Re: foo_skip: skip tracks that match a specified search query

Reply #552
I couldn't replicate that problem. Using the skip string you provided skipped these tracks as they don't have rating present. But when I tried more complex scenario I noticed that External Tags doesn't work correctly with foo_input_zxtune, at least with those urls. I don't know how it can evade the meta info filters.

Re: foo_skip: skip tracks that match a specified search query

Reply #553
It’s a mystery black box, so only the author knows for sure.

 

Re: foo_skip: skip tracks that match a specified search query

Reply #554
Thanks for the awesome plugin! It's been awhile since I've updated and I love the new changes/fixes.

I think I found a small problem though. When using %playback_order% in the skip query, the "Shuffle" options don't work if the word is capitalized. Using "Random" with a capital R still works though.

My old skip track query is:

Code: [Select]
(%playback_order% IS random OR %playback_order% IS "Shuffle (tracks)") AND (%rating% IS 1 OR %rating% IS 2)

Changing the capital S to lowercase s fixes the problem though:

Code: [Select]
(%playback_order% IS random OR %playback_order% IS "shuffle (tracks)") AND (%rating% IS 1 OR %rating% IS 2)

A minor issue but I thought you'd like to know. Thanks again!

Re: foo_skip: skip tracks that match a specified search query

Reply #555
Thanks for the comments. The capitalization issue is now fixed.

Re: foo_skip: skip tracks that match a specified search query

Reply #556
How do I set a bookmark with this plugin? Thanks.

Re: foo_skip: skip tracks that match a specified search query

Reply #557
There's a menu entry "Bookmark current position" under the Playback main menu. It's only visible if you are actually playing something. Using that command will bookmark the playing track at the current playback position.

The preferences page offers another option. When the setting "Automatically bookmark tracks that are in media library" is enabled the component will automatically bookmark tracks if you stop playback in the middle of a track.

Re: foo_skip: skip tracks that match a specified search query

Reply #558
Hello, dear Case!
I'd like to propose one feature. Now preferences has checkbox "Automatically bookmark tracks that are in media library". It means auto bookmarking either all tracks or none. My point is to auto bookmark only some tracks by some criteria. For myself, for example, it would be "%genre% HAS Audiobook", also it could be Track duration or something. As I see it is really cosy feature.
What do you think about?
And thank you in advance!

Re: foo_skip: skip tracks that match a specified search query

Reply #559
Decent idea. Added in version 1.21.

Re: foo_skip: skip tracks that match a specified search query

Reply #560
Decent idea. Added in version 1.21.
You are the man! Fantastic responsiveness! I've just updated and prima facie works fine.
1) And 10 seconds postponement is also for good (and it could be not just 10 sec from file start, but also 10 sec for file browsing).

2) If you don't mind I have one more idea. Some times I also use another bookmarking plugin (foo_bookmarks), and maybe there are another ones. So time-to-time there is an awful confusion in interface and items names: this Bookmark and that Bookmark, which is which?
So I propose to rename your UI items to something like "ST Bookmark" (which means SkipTrack Bookmark).

What do you think?
And of course thank you!

Re: foo_skip: skip tracks that match a specified search query

Reply #561
Would it be enough to add mention of Skip Track to the description that you see on the statusbar? Just ST alone is a bit unclear and spelling Skip Track would make the commands too long in my opinion. Also the Playback-menu commands are grouped together so it should be clear the bookmark command below Skip track enable switch belongs to the component.

Adding delay after seek for bookmarking is also a decent idea. I think I'll add it.

Re: foo_skip: skip tracks that match a specified search query

Reply #562
It seems statusbar tip not sufficient for hard-thinker but nevertheless can be helpful.
Also context menu has "Remove bookmark" but hasn't Add bookmark, is this on some purpose?

P.S. Thank you one more time for implementing "Limit autobookmarking to tracks matching query". In my case it makes listening to audiobooks far cosy and comfortable.

Re: foo_skip: skip tracks that match a specified search query

Reply #563
New version out with clarified command names and seeking requires some playback time too before autobookmarking uses the time stamp.
Context menu has bookmark removal because it's a valid action for any track. Bookmarking playback position only has meaning for a track that is playing so I didn't want to place that command under the context menu at all.

Re: foo_skip: skip tracks that match a specified search query

Reply #564
<practically insignificant feedback>

The perfectionist in me notices the capital B "Bookmark" on the new add command verses lower b "bookmark" on remove. Perhaps they should both be lower? (The statusbar tip should have been enough, really...)

Also seeing you have divided the preferences page for the two features, why not section them with bold text and horizontal lines same as native foobar... "Skip tracks" and "Bookmarks" headings?

</practically insignificant feedback> ;)

Edit: I should add, the query bookmarking is gonna be really useful! Great idea...

Re: foo_skip: skip tracks that match a specified search query

Reply #565
• Bug:
1) you play file that already has bookmark; 2) you click "Remove Skip Track bookmark" (it clears bookmark); 3) and then go to play another file (it brings bookmark back). And this restored bookmark will contain either real time position in file (for example 56:25) or just duration of current session (0:34).
• Near bug:
Sometimes bookmark updates not to real time position in file, but to apparently duration of current session (or something similar to it).

Re: foo_skip: skip tracks that match a specified search query

Reply #566
The first issue isn't really a bug but perhaps unexpected behavior. If you have auto bookmarking enabled it will re-add the bookmark when you stop playing a track that matches bookmarking rule. You can stop playback or switch track first to circumvent that. You apparently want a track that has had its bookmark removed be off-limits from bookmarking until it is played again in the future?

The timestamp issue you see is most likely the result of requiring 10 seconds of playback after seeking before the new timestamp sticks. It stores last playback position where you had 10 continuous seconds of playback and reverts to storing that if you don't play long enough.

It is a bit confusing system. I think I'll remove that change.

The perfectionist in me notices the capital B "Bookmark" on the new add command verses lower b "bookmark" on remove. Perhaps they should both be lower? (The statusbar tip should have been enough, really...)
Thanks, I don't understand how I didn't notice the difference. I'll fix it for the next version. Do you think the new command names are too long?

Also seeing you have divided the preferences page for the two features, why not section them with bold text and horizontal lines same as native foobar... "Skip tracks" and "Bookmarks" headings?
I'll consult Peter for instructions how those are done.

Re: foo_skip: skip tracks that match a specified search query

Reply #567
You apparently want a track that has had its bookmark removed be off-limits from bookmarking until it is played again in the future?
Yes, if bookmark just has had removed by user it should not be auto set again, except if user manualy click "Add Skip Track bookmark". Or until it's played again in the future. I suppose it'd be more expected behavior for users.

It stores last playback position where you had 10 continuous seconds of playback and reverts to storing that if you don't play long enough.
It is a bit confusing system. I think I'll remove that change.
What if propagate this delay only for clear files (without bookmark). But if file already has bookmark it should be updated irrespective of seeking (playing) time? The point is that if user just testing clear file, no need to set bookmark so fast.
Or maybe let think twice? But nevertheless it is not the main feature, so if it is buggy or hard-predictable for users maybe you're right when think to remove it.

And about new command names. The idea is to unambiguously distinguish items of different bookmarking plugins (components). I think it is quite important. But let think about concrete names.

Re: foo_skip: skip tracks that match a specified search query

Reply #568
I'll consult Peter for instructions how those are done.

If you figure this out, could you me a clue. I'm pretty sure it's done with CStaticSeparator from libPPUI/Controls.h but I'm clearly doing something wrong.

I have this as a member of my preferences page...

Code: [Select]
CStaticSeparator m_header;

I then stuck this inside OnInitDialog...

Code: [Select]
CFont fnt;
CreatePreferencesHeaderFont(fnt, m_hWnd);
m_header.SubclassWindow(GetDlgItem(IDC_HEADER));
m_header.SetFont(fnt.m_hFont);

It sort of works but doesn't look like built-in pages (see attached image)




Re: foo_skip: skip tracks that match a specified search query

Reply #569
Peter said he'll add it to the SDK sample component. But these are the instructions I received:

In resource file: CONTROL "TITLE", ID, "foobar2000:separator", 0, 0, 0, 332, 12
Peter actually used tab stop style but I removed it.

In the page constructor: CSeparator::Register();

Your CFont variable needs to be member variable. You can't define it in the local function or you'll get default font.

In OnInitDialog:
::CreatePreferencesHeaderFont(m_headerFont, *this);
GetDlgItem(ID).SetFont(m_fnt);

Also the resource font seems to need to be FONT 8, "MS Shell Dlg 2".


Re: foo_skip: skip tracks that match a specified search query

Reply #571
New version released.

Removing the bookmark from the playing track will now keep it off the track when stopping.

Automatic bookmarking behavior now uses the following experimental rule: seeking in a track will now reduce accumulated playback time by five seconds. When the playback stops bookmark will be written if the position is at or beyond 10 second marker if the track already had an existing bookmark. If the track doesn't have a bookmark the playback counter needs to be at 10 seconds or more for bookmarking to take place.

There's also a new titleformat parameter to use: %playback_reason%. Its possible values are auto, manual, next, prev & rand.

Context menu capital letter bookmark string is fixed. And preferences page now uses big bold headers.

Re: foo_skip: skip tracks that match a specified search query

Reply #572
In the release notes for v1.17, I see: Doesn't use %SKIP% tag for time based partial skipping if it's used in the skip query.
I don't understand why this restriction has been added, as it breaks my previous settings.

My skip query is:
%rating% IS 1 OR %skip% IS all
So, indeed, %SKIP%=all is used in the query, to skip completely a specific track.
But I have also a lot of %SKIP% tags set to <time>- or -<time>, and they do not work any more.
I know that it is possible to skip a track with rating 1, or to define another tag, like %SKIPALL%, but IMO, it is better to keep all Skip Track related stuff in a single tag, without having to change the rating.  IMO, %SKIP% should be used for skipping a part of a track as well as the complete track.  I've tried %SKIP%=0-  but that doesn't work.

Is it possible to restore the old behaviour while retaining a way to skip completely a specific track without creating a new tag ?
If it's not possible, may I suggest to add the possibility to define %SKIP%=all or %SKIP%=0- to skip the whole track ?

Re: foo_skip: skip tracks that match a specified search query

Reply #573
^ Yeah, that was unfortunately my suggestion and my fear afterwards. I kind of expected it to be a conversation and not an instant feature. :) ;D   (I was not aware what was happening with my SKIP=1 tags being interpreted as a time code, or something, hard to remember now...)

At any rate I agree - I'd be fine with it reverting to previous behavior, too. Case, sorry for the steering you in the wrong direction there.

Cheers

Re: foo_skip: skip tracks that match a specified search query

Reply #574
Seems you were right the change would break someone's usage. I hope this one doesn't.
New version out with the change introduced in v1.17 removed and instead timestamp parsing requires the time to include colons or dots.