foo_skip: skip tracks that match a specified search query, Was: [Request] Inactive Tracks |
![]() ![]() |
foo_skip: skip tracks that match a specified search query, Was: [Request] Inactive Tracks |
Nov 26 2012, 13:36
Post
#251
|
|
|
Group: Members Posts: 110 Joined: 3-November 03 Member No.: 9637 |
Hi there,
I was looking for a plugin that would make songs more likely to play based on their rating. Foo_skip seems to be exactly what I was looking for and I was all ready to write the script! Apart from one thing… how do you generate random numbers? Without random numbers, it’s impossible to control the probability of songs playing. You can only either make them always play or never play, which is not very helpful for a 0–5 rating system like mine. |
|
|
|
Dec 10 2012, 00:51
Post
#252
|
|
|
Group: Members Posts: 110 Joined: 3-November 03 Member No.: 9637 |
To be specific. Here’s what I want:
Songs rated 0 = 2% probability of playing Songs rated 1 = 25% probability of playing Songs rated 2 = 50% probability of playing Songs rated 3 = 75% probability of playing Songs rated 4 = 100% probability of playing Is this so unusual, wanting songs to play more based on how much I like them? All I need is random number generation! Please, can anyone help? |
|
|
|
Jan 27 2013, 17:19
Post
#253
|
|
|
Group: Members Posts: 307 Joined: 2-July 10 Member No.: 81991 |
May I request something that let's me skip certain tracks when foobar is in random mode, but listen to them when in album mode? There are tracks like prologues/epilogues/reprises which mess up the playlist in random but which still blend in nicely when listening to the complete album.
This post has been edited by Sandrine: Jan 27 2013, 17:19 |
|
|
|
Jan 28 2013, 17:22
Post
#254
|
|
|
Group: Developer (Donating) Posts: 2051 Joined: 19-October 01 From: Finland Member No.: 322 |
It seems you already can. Someone had requested support for querying playback mode earlier in the thread and it seems to be implemented. You can use something like (%playback_order% IS random OR %playback_order% IS "Shuffle (tracks)") AND %skip% IS 1.
|
|
|
|
Jan 28 2013, 19:11
Post
#255
|
|
|
Group: Members Posts: 307 Joined: 2-July 10 Member No.: 81991 |
Splendid, thanks!
|
|
|
|
Feb 5 2013, 11:05
Post
#256
|
|
|
Group: Members Posts: 291 Joined: 27-January 04 From: Germany Member No.: 11530 |
Skipping tracks doesn't work for me (version 1.7.5). The tracks just play normally when their position is reached in the playlist. Here is a screenshot with my settings: http://bayimg.com/lAjaMAaEf
|
|
|
|
Feb 5 2013, 11:49
Post
#257
|
|
![]() Group: Members Posts: 3335 Joined: 27-January 05 From: England Member No.: 19379 |
if you have foo_playcount installed, the rating from that over-rides the tags in your files.
to get around that, you can change the query to.... CODE "$meta(rating)" IS 1
|
|
|
|
Feb 5 2013, 12:20
Post
#258
|
|
|
Group: Members Posts: 291 Joined: 27-January 04 From: Germany Member No.: 11530 |
Thanks, that solved the problem.
|
|
|
|
Feb 21 2013, 23:28
Post
#259
|
|
|
Group: Members Posts: 52 Joined: 9-May 09 Member No.: 69642 |
Following your example, I adapted it to skip an arbitrary number of seconds at the beginning and at the end of the audio file.
CODE -A;$div($add($mul($cut(%length%,$sub($strchr(%length%,:),1)),60),$right(%length%,$strchr(%length%,:)),-B),60):$mod($add($mul($cut(%length%,$sub($strchr(%length%,:),1)),60),$right(%length%,$strchr(%length%,:)),-B),60)- Now it becomes difficult to follow this code, but, for your understanding, the formula is (min*60+sec-x)/60 : (min*60+sec-x) mod 60 It works for durations shorter than 1 hour, otherwise you have to include the hours in the calculation. Adapt it to your needs as follows: A is the duration you want to skip at the beginning. Format in minutes (ex. "0:25" without the quotes). B is the duration you want to skip at the end. Format in seconds (ex. "29" without the quotes) A useful Tip for users of this component: I often listen to full length DJ Tracks which usually have a long intros and outros for syncing mixing and transitions. When i listen to such tracks i normally want to skip the first and the last Minute of the track.
Setting the Skip Tag for the first Minute is no problem with this component. Setting the last Minute is the trickier Part because you have to calculate the Time one Minute (or whatever you want to skip) i solved this with the "Automatically fill values..." Tool in the Tag editor Window. i chose source -> Other: and used this script CODE -1:00;$sub($cut(%length%,$sub($strchr(%length%,:),1)),1):$right(%length%,$strchr(%length%,:))- Pattern is then the Tag Name CODE %skip% With this examples foo_skip skips the first and last minute of each chosen (tagged) track -------------------- Mon blog: http://piratefurieux.wordpress.com
|
|
|
|
Feb 24 2013, 16:08
Post
#260
|
|
|
Group: Members Posts: 4 Joined: 24-February 13 Member No.: 106853 |
Hi,
i installed skiptracks component and so far my query is only: CODE %rating% IS 3 OR %rating% IS 2 i would like to add : CODE OR %tempo% < 110 but i don't know if that's the right way to write it because it doesn't work .. any help please ? (i have BPM analysis and tempo values on all my tracks) i have 2 another questions maybe you have an idea. 1 - i would like to be able to change the comments of a track simply on clicking on the comment's column and entering text. for the moment i have to rightclic / propreties / enter infos .. 2 - when my foobar is playing a random track from a selection of let say 200 i would like the window to actually scroll to that track so i can see all the datas and edit them. for the moment i have to manually scroll to search for it. This post has been edited by hgodzillay: Feb 24 2013, 16:28 |
|
|
|
Feb 25 2013, 07:34
Post
#261
|
|
|
Group: Members Posts: 15 Joined: 3-September 10 Member No.: 83578 |
To be specific. Here’s what I want: Songs rated 0 = 2% probability of playing Songs rated 1 = 25% probability of playing Songs rated 2 = 50% probability of playing Songs rated 3 = 75% probability of playing Songs rated 4 = 100% probability of playing Is this so unusual, wanting songs to play more based on how much I like them? All I need is random number generation! Please, can anyone help? Is this possible? Because it would be just what I need. |
|
|
|
Feb 25 2013, 10:18
Post
#262
|
|
![]() Group: Members Posts: 3335 Joined: 27-January 05 From: England Member No.: 19379 |
@hgodzillay. use LESS. full documentation here: http://wiki.hydrogenaudio.org/index.php?ti...00:Query_syntax
and you should start a new thread for your other questions. @Chibicon, i don't think so. what you're asking is beyond the scope of this plugin. |
|
|
|
Feb 25 2013, 13:25
Post
#263
|
|
|
Group: Developer (Donating) Posts: 2051 Joined: 19-October 01 From: Finland Member No.: 322 |
Actually the probability skipping is possible since January.
Note that with foo_playcount component you can't have rating 0 so this example skip query uses $meta check with it: ("$meta(rating)" IS 0 AND "$mod($rand(),100)" GREATER 1) OR (%rating% IS 1 AND "$mod($rand(),100)" GREATER 24) OR (%rating% IS 2 AND "$mod($rand(),100)" GREATER 49) OR (%rating% IS 3 AND "$mod($rand(),100)" GREATER 74) |
|
|
|
Feb 25 2013, 16:16
Post
#264
|
|
|
Group: Members Posts: 4 Joined: 24-February 13 Member No.: 106853 |
marc2003 thx
|
|
|
|
Feb 27 2013, 05:36
Post
#265
|
|
|
Group: Members Posts: 15 Joined: 3-September 10 Member No.: 83578 |
Actually the probability skipping is possible since January. Note that with foo_playcount component you can't have rating 0 so this example skip query uses $meta check with it: ("$meta(rating)" IS 0 AND "$mod($rand(),100)" GREATER 1) OR (%rating% IS 1 AND "$mod($rand(),100)" GREATER 24) OR (%rating% IS 2 AND "$mod($rand(),100)" GREATER 49) OR (%rating% IS 3 AND "$mod($rand(),100)" GREATER 74) Just place this in the skip track query? |
|
|
|
Feb 27 2013, 16:36
Post
#266
|
|
|
Group: Developer (Donating) Posts: 2051 Joined: 19-October 01 From: Finland Member No.: 322 |
Yes. Though if you use Playback Statistics component I suggest removing the "("$meta(rating)" IS 0 AND "$mod($rand(),100)" GREATER 1) OR " part.
|
|
|
|
Mar 1 2013, 22:03
Post
#267
|
|
|
Group: Members Posts: 4 Joined: 24-February 13 Member No.: 106853 |
i can get the playback to skip 0 and 2 rating by using
CODE %rating% IS 2 OR %rating% IS 0 but when i try to add something to skip tracks below 112 BPM it doesn't work with CODE %rating% IS 2 OR %rating% IS 0 OR %tempo% LESS 112 it skips every thing. i have a tempo column in foobar that is felt by BPM Analysis is that the right way to do ? ok my last question that is way beyond my abilities : i want to play tracks in this order matching these ratings : ONE 5 rating track then TWO 4 rating track then ONE 3 rating track then back to ONE 5 rating track and so one .. could you give me the code for that |
|
|
|
Mar 1 2013, 22:15
Post
#268
|
|
![]() Group: Members Posts: 3335 Joined: 27-January 05 From: England Member No.: 19379 |
is %tempo% present in every single file? if not, you might want to do something like this.
CODE %rating% IS 2 OR %rating% IS 0 OR (%tempo% PRESENT AND %tempo% LESS 112) i'm not even going to attempt to say anything about your 2nd point. This post has been edited by marc2003: Mar 1 2013, 22:15 |
|
|
|
Mar 2 2013, 00:02
Post
#269
|
|
|
Group: Members Posts: 4 Joined: 24-February 13 Member No.: 106853 |
is %tempo% present in every single file? if not, you might want to do something like this. CODE %rating% IS 2 OR %rating% IS 0 OR (%tempo% PRESENT AND %tempo% LESS 112) i'm not even going to attempt to say anything about your 2nd point. haha #1 works fine thx for help ! but caman at least tell me why #2 is not possible ? |
|
|
|
Mar 23 2013, 15:30
Post
#270
|
|
|
Group: Members Posts: 52 Joined: 9-May 09 Member No.: 69642 |
A useful Tip for users of this component: I often listen to full length DJ Tracks which usually have a long intros and outros for syncing mixing and transitions. When i listen to such tracks i normally want to skip the first and the last Minute of the track. Setting the Skip Tag for the first Minute is no problem with this component. Setting the last Minute is the trickier Part because you have to calculate the Time one Minute (or whatever you want to skip) i solved this with the "Automatically fill values..." Tool in the Tag editor Window. i chose source -> Other: and used this script CODE -1:00;$sub($cut(%length%,$sub($strchr(%length%,:),1)),1):$right(%length%,$strchr(%length%,:))- Pattern is then the Tag Name CODE %skip% With this examples foo_skip skips the first and last minute of each chosen (tagged) track *Bug correction for tracks longer than 10:00 and simplification of my above post* Following your example, I adapted your code to skip an arbitrary number of seconds at the beginning and at the end of the audio file. A is the duration you want to skip at the beginning. Format in minutes (example: 2:30) B is the duration you want to skip at the end. Format in seconds (example: 151) CODE -A;$div($add($mul($cut(%length%,$sub($strchr(%length%,:),1)),60),$right(%length%,2),-B),60):$mod($add($mul($cut(%length%,$sub($strchr(%length%,:),1)),60),$right(%length%,2),-B),60)- Now it becomes difficult to follow this code, but, for your understanding, the formula is (min*60+sec-B)/60 : (min*60+sec-B) mod 60It works for durations shorter than 1 hour, otherwise you have to include the hours in the calculation. |
|
|
|
Mar 23 2013, 15:38
Post
#271
|
|
![]() Group: Members Posts: 3335 Joined: 27-January 05 From: England Member No.: 19379 |
%length_seconds% might make your life easier.
|
|
|
|
Mar 23 2013, 19:23
Post
#272
|
|
![]() Group: Members Posts: 406 Joined: 14-September 11 From: Szczecin, PL Member No.: 93712 |
I noticed that this component works bit slowly in some scenarios. When foobar is in Shuffle mode and tries to open track referenced by .cue file from mp3, then I can hear less than half of second of sound before it is skipped. This doesn't occur for normal mp3 files (not .cue referenced).
My skip query is simple I think: "%keywords% HAS transcode" . It is used to omit playing of MP3 files when FLAC version of such file exists. Such tracks are manually tagged by me in custom, multipurpose tag field named KEYWORDS. It can contain several words, separated with simple comma. I recalled other problematic thing - it skips even files from playback queue... Just lets them play for less than half of second and them skips them... I don't like it. Couldn't it be configured? This post has been edited by EpicForever: Mar 23 2013, 20:10 |
|
|
|
Mar 23 2013, 21:13
Post
#273
|
|
|
Group: Developer (Donating) Posts: 2051 Joined: 19-October 01 From: Finland Member No.: 322 |
The component works as fast as it can. Playback notifications don't come from the core in real time, but there is the DSP part that should deal with that. Do you have it enabled?
|
|
|
|
Mar 24 2013, 03:36
Post
#274
|
|
|
Group: Members Posts: 100 Joined: 12-May 10 Member No.: 80594 |
To be specific. Here’s what I want: Songs rated 0 = 2% probability of playing Songs rated 1 = 25% probability of playing Songs rated 2 = 50% probability of playing Songs rated 3 = 75% probability of playing Songs rated 4 = 100% probability of playing Is this so unusual, wanting songs to play more based on how much I like them? All I need is random number generation! Please, can anyone help? Using the Dynamic fields component you can generate a random number from 0 to 100 that changes on a daily basis like this: CODE $mod($mod(%length_samples%,$date_diff(2010-11-12)),100) I'm not aware of a tag that changes constantly that doesn't depend on the song. You could take the milisecond part of %current date% if there was such a tag, or the crc32 of %next song in playlist%. This post has been edited by sollniss: Mar 24 2013, 03:51 -------------------- The very act of observing, influences what happens.
|
|
|
|
Mar 24 2013, 08:45
Post
#275
|
|
![]() Group: Members Posts: 406 Joined: 14-September 11 From: Szczecin, PL Member No.: 93712 |
The component works as fast as it can. Playback notifications don't come from the core in real time, but there is the DSP part that should deal with that. Do you have it enabled? Yes. I use "Dynamic DSP", "Skip Silence", often "Convert 5.1 to stereo", "Convert mono to stereo", and rarely, but it's present in DSP chain nearly all the time, "Playback Rate Shift" from mudlord's "foo_dsp_effect". If the speed of skipping can not be "corrected", then it is OK, I can accept it. But it will be nice if skipping tracks from playback queue could be resolved... I mean it could be done like it was with "manually selected tracks" - just one checkbox. |
|
|
|
![]() ![]() |
|
Lo-Fi Version | Time is now: 18th June 2013 - 07:06 |