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

foo_skip: skip tracks that match a specified search query

Reply #275
I'm not aware of a tag that changes constantly that doesn't depend on the song.

For skipping purposes this component has field $rand() that changes every time track is played. I made it get only one value within the query so you can use it with multiple evaluations without requiring $puts and $get.

foo_skip: skip tracks that match a specified search query

Reply #276
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".


I think you misunderstood. There is a DSP called "Skip Track" that prevents you from hearing parts of tracks that are about to be skipped. It should be the last DSP in the DSP chain.

foo_skip: skip tracks that match a specified search query

Reply #277
Yeah... I thought you are talking about DSPs that are slowing down foo_skip work... So, "Skip Track DSP" is configured by the same settings in Advanced Preferences as "Playback \ Skip tracks" option?

EDIT:
Yeah, now it works great

EDIT2:
After some longer time I must say not exactly... When I change tracks manually, then yes, everything works OK. Even 6 skips are perfectly quiet. But when tracks are changing automatically I can hear for example 3 "pops" lasting long enough to hear the melody before track is skipped. I am still talking about opening .cue referenced tracks from long MP3 and M4A files.

foo_skip: skip tracks that match a specified search query

Reply #278
I recalled other problematic thing - it skips even files from playback queue...

Fixed. Now it respects the "Skip even manually selected tracks" setting.

foo_skip: skip tracks that match a specified search query

Reply #279
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: [Select]
-1:00;$sub($cut(%length%,$sub($strchr(%length%,:),1)),1):$right(%length%,$strchr(%length%,:))-

Pattern is then the Tag Name

Code: [Select]
%skip%

With this examples foo_skip skips the first and last minute of each chosen (tagged) track

%length_seconds% might make your life easier.

Thank you for your suggestion!
I also noticed that this component accepts positions such as 61:1 or 3661.
With all this new information, now the code is much simpler.

A is the duration you want to skip at the beginning. Format in minutes or in seconds
B is the duration you want to skip at the end. Format in seconds (example: 151). Make sure it's shorter than your track length.
recommended formula:
Code: [Select]
-A;$div($sub(%length_seconds%,B),60):$mod($sub(%length_seconds%,B),60)-
or even (format in seconds):
Code: [Select]
-A;$sub(%length_seconds%,B)-
or the universal formula (if you want to format hours):
Code: [Select]
-A;$ifgreater($sub(%length_seconds%,B),3599,$div($sub(%length_seconds%,B),3600):$div($sub($mod(%length_seconds%,3600),B),60):$mod($sub(%length_seconds%,B),60),$div($sub(%length_seconds%,B),60):$mod($sub(%length_seconds%,B),60))-
Now it becomes a bit more difficult to follow this last code, but, for your understanding, the formula is
if(final position greater than 1 hour)
then (length-B)/3600 : ((length-B) mod 3600)/60 : (length-B) mod 60
else (length-B)/60 : (length-B) mod 60

foo_skip: skip tracks that match a specified search query

Reply #280
I recalled other problematic thing - it skips even files from playback queue...

Fixed. Now it respects the "Skip even manually selected tracks" setting.


Thanks for fixing it Case.

Just to summarize my experience with cue sheets and Skip Tracks DSP:
I've created playlist where there was only one playable track, and 12 which all were matching skip pattern and all were entries of one cue sheet. Playback mode was set to "Shuffle". When playable track finished playing (automatically, because it has ended) there were multiple skips, one-by-one before playable track was played again. Results are:
1. when file referenced in .cue is .m4a (iTunes AAC/LC) there could be up to 3 glitches, mostly 2, when tracks are skipped multiple times. Next skips are all OK.
2. when refeneced file is .mp3, then only one glitch occurs, at first skip. Rest of skips is perfectly quiet.
3. when referenced file is .flac then everything is perfect, nevermind whether I use DSP in chain or just item from Playback menu (without DSP in chain).

Looks like it is very specific to the encoding of files, and thus maybe this can never be fixed. And this only applies to .cue file referenced tracks, where stream is accessed not from the begining, but somewhere in the middle, and additionally it applies only to first skips in such scenario. Just for the information

foo_skip: skip tracks that match a specified search query

Reply #281
I seem to have trouble triggering such behavior. Can you try if this test version works any better?

foo_skip: skip tracks that match a specified search query

Reply #282
Sorry for the delay. Yes it works better - when I got series of skips, there is always only one glitch (at first skip) with .m4a tracks from .cue, and it doesn't happen with every track referenced from that particular .cue. Additionally it is noticeably shorter. Currently it is hard to determine the pitch of sound and actual content of this glitch (I can't guess what track was shuffled and skipped). Glitch seems to be longer when I play manually one of the .cue referenced tracks, and then next file that is shuffled is also one of .cue tracks - but it can be only my imagination. Situation with .mp3 tracks from .cue files doesn't changed so much. Possibly glitch is shorter, (if it isn't my imagination only), but it occurs.
FLAC tracks from .cue files play as they were playing before - properly

foo_skip: skip tracks that match a specified search query

Reply #283
I managed to reproduce the glitching with the help of CPU Speed Adjuster. I tweaked some safety limits in the DSP part and now even with all cores fully stressed with slow.exe I heard no more glitching with cue+m4a. Updated version can be found here.

 

foo_skip: skip tracks that match a specified search query

Reply #284
Thanks, will check/test it within next week

foo_skip: skip tracks that match a specified search query

Reply #285
Paragraph edit: never mind, I missed the settings in the advanced section of fb2k, "skip even selected tracks"..

Also, am I supposed to have the DSP activated in order to utilize the SKIP tag? It doesn't seem to matter if I have it on or off; it still skips.

foo_skip: skip tracks that match a specified search query

Reply #286
Quote
Track skipping has a few milliseconds of delay before activating which may allow beginning of gapless tracks to be heard. If you wish to have perfect glitchless skipping please add Skip Track as the last DSP in the DSP chain.

foo_skip: skip tracks that match a specified search query

Reply #287
Hello Case. I have a request.
Can you split the "skip even manually selected tracks" to 2 :
  • Skip by Query - even manually selected tracks (T/F)
  • Skip Silence - even manually selected tracks (T/F)

If you'll split it I will check the first box to FALSE and the second to TRUE.
TIA.

foo_skip: skip tracks that match a specified search query

Reply #288
If you just want to skip silence you could use the Skip Silence DSP. But I might consider adding a new field for defining tracks that are always skipped in place of the "Skip even manually selected tracks" checkbox.

foo_skip: skip tracks that match a specified search query

Reply #289
===========================================================
PART 1 (request):
Hello Case. I have a request.
Can you split the "skip even manually selected tracks" to 2 :
  • Skip by Query - even manually selected tracks (T/F)
  • Skip Silence - even manually selected tracks (T/F)

If you'll split it I will check the first box to FALSE and the second to TRUE.
TIA.

Oh No !! 
Sorry, I've mistakenly wrote "Skip Silence" instead of "Skip Parts".

So here is the correct request:

Can you split the "skip even manually selected tracks" to 2 :
  • Skip by Query - even manually selected tracks (T/F)
  • Skip Parts - even manually selected tracks (T/F)
  ===========================================================

Part 2 (a question):

As of the current foo_skip 1.7.8, if you check the "even manually selected tracks" box and manually click PLAY on a track that its SKIP tag has "skip-timecodes", the track is totally skipped (not just the "marked" parts) !!


Case, Is this the way you intended it to work ?


TIA

===========================================================


foo_skip: skip tracks that match a specified search query

Reply #290
Part 2 (a question):
As of the current foo_skip 1.7.8, if you check the "even manually selected tracks" box and manually click PLAY on a track that its SKIP tag has "skip-timecodes", the track is totally skipped (not just the "marked" parts) !!
Case, Is this the way you intended it to work ?

Oh No. Again I made a mistake and I don't know what to say. 
My part-2 question is false.(I've tested on tracks that have both skip-timecodes and are 1-starred...)
I'm deeply sorry...

Part-1 is correct.

foo_skip: skip tracks that match a specified search query

Reply #291
I've just given your component a try. I must have missed something, because nothing seems to happen, both with manually selected and automatically selected tracks. The Skip track component shows up in my components list though. Additionally I've added the Skip track DSP in the Active DSPs' list. Editing the tag scheme in Advanced options didn't fix anything (I'd rather skip tracks that I rated "-1", but these tracks are still playing normally as they would without the component). Is there anything else I should do? Thx for your help. 

foo_skip: skip tracks that match a specified search query

Reply #292
Playback>skip tracks

Do you have that ticked?

foo_skip: skip tracks that match a specified search query

Reply #293
I have a kind of request. Is it possible to let this component have a list of skip patterns so we can switch between them? I think about exactly the same thing as for Media Library exclusions list or files sorting patterns list or excluded file types list. At least 5 entries would be nice. I think it would require moving its config from Advanced Preferences to Tools section - this would be also more convenient for user.

In addition: I have performed many tests against problem that I reported last time (silent played first 16 seconds in manually selected files that are matching skipping pattern) and I can confirm that with v 1.7.8b problem was permanently eliminated.

foo_skip: skip tracks that match a specified search query

Reply #294
Well, in addition to my request I got a bug report. I wanted to try the difference between both ReplayGain modes (track and album). I opened Properties dialog and went to ReplayGain. After changing it the sound just disappeared. I tried it several times and I found the reason. It was tested on track that was tagged to be normally skipped when I listen to my music randomly (custom tag "KEYWORDS" filled with value "skip". After tag value was removed there was no problem... When tag was filled again with value "skip" then problem came back. The funny thing - after 16 seconds (same as previously) the sound just comes back. The question is - is it just side effect of using such option and we should just bear with it or is this a real bug and this should be fixed? In general it isn't frequent situation that someone plays manually tracks that should be skipped and switches RG modes while track is played.

My config:
foobar 1.2.9, my plugins:
Code: [Select]
Core (2013-07-10 12:45:36 UTC)
    foobar2000 core 1.2.9
foo_ac3.dll (2012-08-29 15:57:04 UTC)
    AC3 decoder 0.9.7
foo_adpcm.dll (2013-08-13 03:01:25 UTC)
    kode's ADPCM decoders 1.11
foo_albumlist.dll (2013-02-11 11:28:58 UTC)
    Album List 4.5
foo_amipwrapper.dll (2010-01-29 20:32:26 UTC)
    AMIP Wrapper 1.01
foo_asap.dll (2013-08-16 14:05:50 UTC)
    ASAP 3.1.5
foo_audioscrobbler.dll (2012-11-22 15:41:48 UTC)
    Audioscrobbler 1.4.7
foo_bestversion.dll (2013-03-20 15:00:29 UTC)
    Best Version Picker 0.1
foo_bitcompare.dll (2008-12-05 13:08:02 UTC)
    Binary Comparator 1.2
foo_bpm.dll (2010-04-20 11:35:08 UTC)
    BPM Analyser 0.2.4.1
foo_cdda.dll (2013-03-07 09:48:32 UTC)
    CD Audio Decoder 3.0
foo_converter.dll (2013-07-10 12:25:32 UTC)
    Converter 1.5
foo_convolve.dll (2013-03-27 20:18:27 UTC)
    Convolver 0.3
foo_deemph.dll (2013-02-08 17:43:34 UTC)
    De-emphasis postprocessor 0.0.3
foo_disccache.dll (2013-04-13 19:52:52 UTC)
    Disc cache warmer 0.0
foo_dsp_effect.dll (2013-02-19 18:43:44 UTC)
    Effect DSP 0.11
foo_dsp_eq.dll (2013-02-11 11:28:58 UTC)
    Equalizer 1.0
foo_dsp_eqsplit.dll (2008-07-13 00:49:10 UTC)
    Split equalizer v0.0.1
foo_dsp_fsurround.dll (2012-07-06 21:29:44 UTC)
    FreeSurround 0.9.0
foo_dsp_mm.dll (2008-06-06 04:29:12 UTC)
    Matrix Mixer 0.3
foo_dsp_resampler.dll (2013-03-27 19:01:33 UTC)
    SoX Resampler 0.8.3
foo_dsp_silence.dll (2009-08-09 23:32:54 UTC)
    Post-track silence 0.0.3
foo_dsp_std.dll (2013-07-10 12:25:50 UTC)
    Standard DSP Array 1.3
foo_dsp_vlevel20080302.0.dll (2008-03-02 22:42:06 UTC)
    VLevel 20080302.0
foo_dsp_xfeed.dll (2011-09-19 18:44:30 UTC)
    Crossfeed 0.1.3
foo_dsp_xgeq.dll (2012-02-05 11:11:22 UTC)
    Graphic Equalizer 0.3.7
foo_dsp_yac.dll (2013-03-27 20:02:35 UTC)
    Yet Another Convolver 1.1.0
foo_dumb.dll (2013-08-28 04:15:17 UTC)
    DUMB module decoder 1.0.50
foo_dynamicdsp.dll (2012-07-18 05:56:46 UTC)
    Dynamic DSP 1.0
foo_fileops.dll (2013-02-11 11:28:10 UTC)
    File Operations 2.2
foo_flv.dll (2012-12-29 06:00:00 UTC)
    Flash Video Decoder 0.9.6
foo_freedb2.dll (2013-02-11 11:27:56 UTC)
    Online Tagger 0.7
foo_gep.dll (2013-07-27 23:28:05 UTC)
    Game Emu Player 1.164
foo_hdcd.dll (2012-07-17 18:40:12 UTC)
    HDCD decoder 1.15
foo_input_adplug.dll (2013-05-05 17:57:08 UTC)
    AdPlug 1.44
foo_input_amr.dll (2009-03-05 19:20:06 UTC)
    AMR input 1.1.1
foo_input_celt.dll (2011-05-16 11:21:00 UTC)
    CELT Decoder 0.1.2
foo_input_ds.dll (2013-01-20 18:54:37 UTC)
    DirectShow input 0.1
foo_input_dsdiff.dll (2011-05-18 18:01:22 UTC)
    DSDIFF Decoder 1.4
foo_input_dts.dll (2013-01-30 14:21:04 UTC)
    DTS decoder 0.3.1
foo_input_dtshd.dll (2011-03-19 21:41:12 UTC)
    DTS-HD Decoder 0.1.3
foo_input_dvda.dll (2012-03-16 15:30:28 UTC)
    DVD-Audio Decoder and Watermark Detector 0.4.11
foo_input_exe.dll (2012-10-11 20:56:52 UTC)
    Command-Line Decoder Wrapper 0.4
foo_input_gsf.dll (2013-03-27 17:09:40 UTC)
    Highly Advanced 2.0.2
foo_input_ht.dll (2013-01-19 14:58:54 UTC)
    Highly Theoretical 2.0.37
foo_input_hvl.dll (2013-07-03 12:10:40 UTC)
    Hively Tracker decoder 1.13
foo_input_kdm.dll (2012-02-19 09:52:40 UTC)
    KDM Decoder 1.1
foo_input_monkey.dll (2013-04-13 10:40:08 UTC)
    Monkey's Audio Decoder 2.1.7
foo_input_ncsf.dll (2013-04-26 08:48:42 UTC)
    NCSF Decoder 1.7
foo_input_ofr.dll (2011-03-15 21:43:46 UTC)
    OptimFROG Lossless/DualStream Decoder 1.31
foo_input_org.dll (2012-02-19 09:53:10 UTC)
    Organya decoder 1.9
foo_input_qsf.dll (2012-12-31 16:30:44 UTC)
    Highly Quixotic 2.0.25
foo_input_reverse.dll (2009-01-05 18:47:00 UTC)
    Reverse Playback 0.1.4 (SSE)
foo_input_sacd.dll (2012-08-25 18:03:10 UTC)
    Super Audio CD Decoder 0.5.11
foo_input_shorten.dll (2009-11-15 19:46:36 UTC)
    Shorten decoder 0.4.2.2
foo_input_std.dll (2013-07-10 12:45:38 UTC)
    Standard Input Array 1.0
foo_input_tak.dll (2013-06-21 10:29:42 UTC)
    TAK Decoder 0.4.7
foo_input_tfmx.dll (2012-12-13 14:24:38 UTC)
    TFMX decoder 0.10
foo_input_tta.dll (2010-10-27 10:50:20 UTC)
    TTA Audio Decoder 3.2
foo_input_upse.dll (2012-12-22 09:42:24 UTC)
    UPSE PSF Decoder 1.8
foo_input_usf.dll (2011-06-26 17:16:54 UTC)
    LazyUSF 2.1 (Build Jun 26 2011)
foo_input_vgmstream.dll (2013-07-05 18:49:54 UTC)
    vgmstream plugin r1004-19-g8ebecb4
foo_input_zxtune.dll (2013-02-19 20:20:22 UTC)
    ZX Tune Player 0.0.1
foo_keep_queue.dll (2010-11-12 02:28:46 UTC)
    Keep Queue 0.3.5
foo_lnk.dll (2010-01-07 17:57:56 UTC)
    Shell Link Resolver 1.3.1
foo_lock.dll (2010-01-11 10:18:36 UTC)
    Pause on Lock 0.5
foo_masstag.dll (2013-03-27 20:20:17 UTC)
    Masstagger 1.8.4
foo_midi.dll (2013-08-23 01:15:35 UTC)
    MIDI synthesizer host 1.212
foo_musical_spectrum.dll (2012-11-21 06:00:00 UTC)
    Musical Spectrum 0.9.1
foo_nds.dll (2013-03-22 11:59:18 UTC)
    No Display Standby 1.1
foo_osd.dll (2012-12-17 18:28:20 UTC)
    On-Screen Display 1.73
foo_out_asio.dll (2012-06-06 13:19:14 UTC)
    ASIO support 2.1.2
foo_playcount.dll (2011-07-13 09:47:18 UTC)
    Playback Statistics 3.0.2
foo_psf.dll (2013-01-02 10:22:16 UTC)
    Highly Experimental 2.0.34
foo_queuecontents.dll (2011-12-31 12:30:56 UTC)
    Queue Contents Editor 0.5
foo_rg_trn.dll (2010-01-13 23:01:00 UTC)
    ReplayGain override 0.1.3
foo_rgscan.dll (2013-07-10 12:25:36 UTC)
    ReplayGain Scanner 2.2
foo_run.dll (2009-06-07 13:15:18 UTC)
    Run services 0.3.7
foo_seek.dll (2011-12-20 11:03:06 UTC)
    Seek 1.1
foo_seek_box.dll (2010-04-21 13:03:30 UTC)
    Seek box 0.0.3
foo_sendtodevice.dll (2013-03-11 16:20:22 UTC)
    Send to Device 1.1.2 [Nov 28 2007 - 10:13:31]
foo_sid.dll (2013-04-17 03:49:02 UTC)
    sidplay2 1.31
foo_skip.dll (2013-07-25 08:36:36 UTC)
    Skip Track 1.7.8b
foo_softplaylists.dll (2013-01-25 19:31:19 UTC)
    Soft Playlists 2012-10-10
foo_stop_on_current.dll (2009-06-18 03:54:52 UTC)
    Stop on Current 0.4
foo_timebomb.dll (2009-12-20 20:40:00 UTC)
    Timebomb 0.0.2
foo_ui_std.dll (2013-07-10 12:45:36 UTC)
    Default User Interface 0.9.5
foo_verifier.dll (2013-03-14 10:38:18 UTC)
    File Integrity Verifier 1.1.1
foo_vst.dll (2011-03-05 06:19:04 UTC)
    VST 2.4 adapter 0.9.0.3
foo_wave_seekbar.dll (2013-07-04 06:42:31 UTC)
    Waveform seekbar 0.2.40

My DSP Chain:
Dynamic DSP,
Skip Silence
Downmix multichannel to stereo
Convert mono to stereo
Playback Rate Shift
Skip Track

Dynamic DSP isn't used with 3 tracks that was additionally tested against this bug so shouldn't be blamed. currently I don't use any VST effects (despite I still haven't removed plugin for this)

foo_skip: skip tracks that match a specified search query

Reply #295
That's definitely a bug. I'll see if I can simplify the logic to eliminate such issues. I wanted to comment so you know I have acknowledged the problem as it will take some time before I'll start working on it.

foo_skip: skip tracks that match a specified search query

Reply #296
I believe I have similar bug with SkipTrack:

When I click on playlist item to play then it often starts to play after 6-30 seconds delay. But if I select same file again, then it plays immediately. It worth to note that all my tracks are separate .flac files.
Looks like some caching issue to me..
Is there any way to get 1.7.4 version? I don't recall such behavior happening last year.

SkipTrack query:
Code: [Select]
(%rating% IS 1 OR %last_played% DURING LAST 240 HOURS) AND (NOT %rating% IS 5)


Thanks!

foo_skip: skip tracks that match a specified search query

Reply #297
Any chance you can implement skipping parts of tracks by samples (e.g. -44100 instead of -00:00:01)?

foo_skip: skip tracks that match a specified search query

Reply #298
Nisto - maybe foo_seek is able to fulfill your needs?

foo_skip: skip tracks that match a specified search query

Reply #299
Not really. But thanks anyway.