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 341458 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

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

Reply #675
@meooms, you didn't comment about regor's clarification that unless you alter configuration options, skipping is only done when playback advances to the track. Unless you enabled the "Skip even manually selected tracks" you can't double click the test track to see if skipping works. Perhaps you knew this, I just wanted to make sure.

I tested the behavior with foobar2000 v1.6.10 beta 2 and SimPlaylist. I see no issues.

If there is no hint about the problem in the foobar's console and you still can't make it work today, I could make you a test version with extra console logging.

Btw, there is no need to manually touch DSP configuration. The component automatically takes care of that.

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

Reply #676
Case, thanks for your offer. Today I added a field called DONTPLAY. This somehow automatically appears WITH angle brackets as <DONTPLAY> in the properties dialog.

With skip set to
%DONTPLAY% IS 1
it all works ok! Tracks with this field set to 1 are skipped, others are not.

Very strange. Perhaps h-h is right, and does Foobar2000 have an issue with certain tags?
I use flac files and have the metadata writing mode for FLAC set to 'More compatible with other software'.

Now this leaves me with a problem: how to convert from RATING to <RATING>? And will this work?

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

Reply #677
^ It probably just means you have added to Preferences > Advanced > Display > Properties Dialog > Standard Fields. Assuming you added Rating=RATING it should make no difference. (It should work regardless)

I suggest try a fresh portable install of foobar with just foo_skip. Without foo_playcount the default skip query should work looking at the file tag. Drop a bunch of different rated files in the playlist to test.

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

Reply #678
^ It probably just means you have added to Preferences > Advanced > Display > Properties Dialog > Standard Fields. Assuming you added Rating=RATING it should make no difference. (It should work regardless)

I suggest try a fresh portable install of foobar with just foo_skip. Without foo_playcount the default skip query should work looking at the file tag. Drop a bunch of different rated files in the playlist to test.

Instead of a fresh install, I removed the playcount plugin. Now it works using the RATING field!
I have no idea why it works without the plugin, but I don't think that I have any use for the playcount plugin.
Thanks for your suggestion.

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

Reply #679
That doesn't explain why tracks were not skipped when you said "I even added ratings via playcount plugin". Since the queries marc posted (with and without %) should have worked at some point either with the file tags or the library data.
Also... if playcount is installed, and a track has no data on the plugin library, why the file tag is not being used instead as fallback?

I mean, if you finally solved it for your use case, then that's great. But your reports still point to either a bad configuration (then it's fine and solved now) a compatibility problem (between both plugins when rating is also a tag) or a bug.

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

Reply #680
That doesn't explain why tracks were not skipped when you said "I even added ratings via playcount plugin". Since the queries marc posted (with and without %) should have worked at some point either with the file tags or the library data.
Also... if playcount is installed, and a track has no data on the plugin library, why the file tag is not being used instead as fallback?

I mean, if you finally solved it for your use case, then that's great. But your reports still point to either a bad configuration (then it's fine and solved now) a compatibility problem (between both plugins when rating is also a tag) or a bug.

Agreed, I did not figure out if it's a bug or bad configuration. I will try a portable install with Simplaylist, playcount and my library and report for the greater good.

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

Reply #681
Regarding the skip on Rating IS 1 problem  reported on:
- I did a portable install of ver 1.6.9 and added the latest foo_skip.fb2k-component .
Skipping worked fine with RATING IS 1
- Then I added Playback Statistics.fb2k-component
 Now skip track did not work with , not with $meta(%rating%)  IS 1 , and not with $meta(rating)  IS 1.

Also, in the default playlist view, without the Playback Statistics.fb2k-component the Rating field was displayed ok. After adding it, this only worked when set to $meta(rating) .  This is mentioned as default behavior for the latest version, but this method apparently does not work for Skip-trac.

IMHO this points to a bug when using both the skip-tag and the Playback Statistics component. This was done one a fresh stable install, with no additional components.

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

Reply #682
I have both installed working without any problems though. Not saying there can not be a problem, but it is not so immediate.

Quote
$meta(%rating%)  IS 1 , and not with $meta(rating)  IS 1.
Those are wrong. This is the right expression:
Code: [Select]
"$meta(rating)" IS 1
BUT that's is meant to read tags from files.

Also the right query to read from database is:
Code: [Select]
%rating% IS 1

marc already pointed to it.
Code: [Select]
rating IS 1

should do it. The lack of %% means read file tags.

You could use $meta(rating) but you have to wrap it in double quotes when used in queries..

Code: [Select]
"$meta(rating)" IS 1

 

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

Reply #683
@regor
"$meta(rating)" IS 1 did it in both 1.6.9 and 1.6.10. I want it to read the file tags, not the database.
I really on't know why I could not get it to work earlier  :-[  , I tried them all. But it is working now. Thanks for the help!

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

Reply #684
@regor
"$meta(rating)" IS 1 did it in both 1.6.9 and 1.6.10. I want it to read the file tags, not the database.
I really on't know why I could not get it to work earlier  :-[  , I tried them all. But it is working now. Thanks for the help!
I meant it for the plugin, since that was the last thing not working on your tests. Anyway glad you finally sorted it out.

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

Reply #685
Hi!

Could you add ability to auto change DSP preset according to some conditions? For example if "%genre% HAS Audiobook" then it should be such-and-such preset, if "%genre% HAS Club" then such preset. If none matches then such preset (default).

Thank you in advance.

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

Reply #686
Hi!

Could you add ability to auto change DSP preset according to some conditions? For example if "%genre% HAS Audiobook" then it should be such-and-such preset, if "%genre% HAS Club" then such preset. If none matches then such preset (default).

Thank you in advance.

I use Dynamic DSP plugin for that. I have a DSP that will switch from my default DSP chain to Dolby Headphone if it detects more than 2 channels. foo_dynamicdsp
Think millionaire, but with cannons.

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

Reply #687
I use Dynamic DSP plugin for that. I have a DSP that will switch from my default DSP chain to Dolby Headphone if it detects more than 2 channels. foo_dynamicdsp
Cannonaire, thank you!
Your suggestion works. Although it took some time to figure out how does it work and how to define operable script.

The only questions remained are: 1) how to turn on/off "Stop after current",  and 2) how to switch Order (random, shuffle, default)? It is supposed that it'd be switched automatically depending on titleformat query.

Thank you in advance!

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

Reply #688
I don't know of any way to activate or deactivate Stop After Current, or to change playback order, using DynamicDSP or any titleformat script. Sorry.
Think millionaire, but with cannons.

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

Reply #689
@Case's component Stop After Queue activates FB2k's "Stop After Current" when the last track of the queue is played.

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

Reply #690
I use Stop After Queue all the time. Several times a day, for sure. I kinda wish foobar2000 had a "Play once (Album)" playback mode though, which would automatically stop playback at the end of the album.
Think millionaire, but with cannons.


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

Reply #692
I'll try not to take us even further off topic, but using the Stop After Current function is different from a dedicated playback mode. I would rather have something that didn't rely on that. I'd really like dedicated playback modes for "Play once (Track)", "Play once (Album)", and "Repeat (Album)" that didn't make use of Stop After Current because that would be better for my workflow. We already have "Repeat (Track)" and "Shuffle (Albums)", so most of the functionality is already written, but just not implemented in that particular way.

Going back to Palash's request, are there any ways to trigger Stop After Current or change Playback Mode/order using title query? Is that even something that would be covered by foo_skip? I could see that being useful.
Think millionaire, but with cannons.

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

Reply #693
Going back to Palash's request, are there any ways to trigger Stop After Current or change Playback Mode/order using title query? Is that even something that would be covered by foo_skip? I could see that being useful.
For now foo_skip already can operate with titleformat query (I meen adding bookmark according to it).
So if I may, it's for the better, if another query would control "Stop After Current".

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

Reply #694
Hello! Awesome forum here, looking forward to poking around some more. I'm a beginner programmer just trying out random small projects for fun. I would like to build a component that only plays the first 30 seconds of a song before automatically skipping. I listen to a lot of new music & would like to run through those songs faster so I can pick out the ones that really catch my fancy off the bat.

I tried using foo_skip but I'm not sure if the query I'm trying out 'SKIP=0:00:45-0:06:00' works. I tried setting up the SDK in Visual Studios but was struggling a bit -- which isn't a problem, just learning curves :)! I would really like to look into the time expressions code, if foo_skip's source files are available somewhere?

ty!


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

Reply #696
This is how to use the SKIP tag field for partly playing a title:

SKIP=-<time>   to skip from the beginning to <time>.
SKIP=<time>-   to skip from <time> to the next track.
SKIP=<a>-<b>   to skip from position <a> to later position <b>.
SKIP=-<a>;<b>-   to skip from start to <a> and from <b> to next track.
SKIP=<a>-<b>;<c>-<d>   to skip from <a> to <b> and from <c> to <d>.

Timecodes use format [hh:][mm:]ss[.mmm]

To jump to the next track after 30s, the SKIP Tag would have to be set to '30-'.
If you want to start playing a track at time 45s and end playing this track at 6:00 minutes, the SKIP tag would be '-45;6:00-'
Setting the tag SKIP to '0:00:45-0:06:00' would mean that the track is played from the beginning to 45s, then the playback would jump to 6:00 and play from there to the end of the track.

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

Reply #697
Is there a way to have Skip Track avoid playing songs from a certain playlist?

Example: I have an autoplaylist which is in a shared folder with other users, so I can't delete the song. I also can't use the <DONTPLAY> tag because if I do, that metadata will transfer to the other computers, which are also using the <DONTPLAY> feature in Skip Track.

So instead, what if I have a playlist called "DONTPLAY", and I manually put the songs on that list that I don't want to play. Skip Track checks that playlist to see if the song is on there and then skips it without disturbing the other users of the song.

Does that make sense?

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

Reply #698
Uhm... you are in fact looking for an autoplaylist which uses other playlists as sources (see playlist manager).

But probably you can do it with the component by using DONTPLAY as a multitag pointing to the user who doesn't want to play it.

Instead of %DONTPLAY% = 1 all users may tag %DONTPLAY% with multi-values: USERA; USERB; ...

%DONTPLAY% = USERA; USERC
Then you would add %DONTPLAY% IS USERA
Other user would add %DONTPLAY% IS USERB
Another user would add %DONTPLAY% IS USERC

B would play the track fine, while A and C would skip it.

Obviously I'm assuming the files are in a shared disk accessed by all the users, while every user a personal foobar installation (so every user may have its own query for the component).

Adding your user value to a multi-tag is trivial with button bars + foo_masstag. So it takes a second to tag any track to be skipped that way.

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

Reply #699
Uhm... you are in fact looking for an autoplaylist which uses other playlists as sources (see playlist manager).

But probably you can do it with the component by using DONTPLAY as a multitag pointing to the user who doesn't want to play it.

Instead of %DONTPLAY% = 1 all users may tag %DONTPLAY% with multi-values: USERA; USERB; ...

%DONTPLAY% = USERA; USERC
Then you would add %DONTPLAY% IS USERA
Other user would add %DONTPLAY% IS USERB
Another user would add %DONTPLAY% IS USERC

B would play the track fine, while A and C would skip it.

Obviously I'm assuming the files are in a shared disk accessed by all the users, while every user a personal foobar installation (so every user may have its own query for the component).

Adding your user value to a multi-tag is trivial with button bars + foo_masstag. So it takes a second to tag any track to be skipped that way.
BRILLIANT! Thank you!!