update
foo_dsp_crossfader v0.3.4.1
- added overlapping as an alternative to crossfading effect
- added corresponding items for overlapping (menu, commandline handler, and behavior control)
- little improvement for the behavior control
foo_dsp_crossfader v0.3.4
- removed old metadb_display_hook implementation
- added behavior control in config dialog to customize the condition to run the dsp process (using title format)
- config dialog changes no longer in real time
- commandline handler parameter has been changed from “/gapless_crossfader” to “/gc”
- the old $gapless_crossfader function in behavior control is now $gc
- added some variables for using in behavior control:
%gc_playback_order% – current playback order
%gc_stop_after_current% – stop the playback after current one
for example, to enable fading only when playback order is Random:
$if($strcmp(%gc_playback_order%,Random),$gc(fading:enable,1),$gc(fading:enable,0))
Odyssey said,
August 6, 2008 @ 8:38 pm
I guess there’s no chance it will fade on a threshold rather than a specific time?
Odyssey said,
July 29, 2008 @ 9:07 pm
Can you post the usage of your custom commands?
Acropolis said,
July 29, 2008 @ 8:13 pm
I think you can already do that if you use cwb_hooks (of course you need my metadb_display_hook implementation component if you use 0.9.5.3+).
set cwb_hooks’ %cwb_next_user% to your custom tag name, and set crossfader behavior control accordingly.
Odyssey said,
July 29, 2008 @ 7:34 pm
Acro: You are great. By far my favorite 3rd part dev
I just had a thought, but of course it might not be an easy implementation:
Now with conditional controlflow, it could be great if the fading track (next track) will expose it’s tags (say something like $nexttag(comment) ) when it’s buffered and at that point configure the crossfader settings to create a custom transition based on track properties.
Why that? Say, live performances (entire live or albums with similar seemless track transitions) a crossfade is great to create a smooth transition, but on other tracks (usually studio recorded) with a clean beginning/end, I would rather overlap than crossfade. A custom setting could then enable liveperformances to be mixed very smoothly with other tracks. Additionally maybe even the fadelength could be defined.
I could benefit very much from this, because I created a batch script that scans for audio volume in 30ms of beginning and end, that shows me with a very high probablility if a track needs a fade or an overlap
Acropolis said,
July 25, 2008 @ 11:43 pm
if you get my new output component, I’m sure you’ll be a lot happier than ever.
Squeller said,
July 25, 2008 @ 11:08 pm
Ohh, have I overseen the latest update? OVERLAP mode, YES, thanks Sir!
Acropolis said,
July 25, 2008 @ 4:45 am
the conditional activation has been there long time ago with title formatting, it just doesn’t work anymore with newer version of foobar2000, so now behavior control is implemented inside crossfader.
also the good news is, your wish has come true, overlap mode has been implemented in the new version.
Odyssey said,
July 24, 2008 @ 9:02 pm
Ooooh you finally implemented conditional activation!!!
Please tell me the next update will enable overlap modes instead of always crossfade
Acropolis said,
July 11, 2008 @ 1:37 am
to perfectly (without any samples loss) crossfade to the next track manually, it requires updating the component for each fb2k version (it’s a hack), so I didn’t re-enable it.
Infernus said,
July 11, 2008 @ 12:42 am
Hi,
did you renabled the crossfader output device?
how do I enable it?
hopefully, gapless manual trackchange was best (rock)
Squeller said,
July 2, 2008 @ 10:26 pm
BTW you don’t need nested $or’s AFAICS. Now I use this:
$if($or($strcmp(%gc_playback_order%,’Shuffle (tracks)’),$strcmp(%gc_playback_order%,’Random’),$strcmp(%gc_playback_order%,’Repeat (track)’)),
$gc(enable,1)
$gc(fading:enable,1)
$gc(fading:crossfade_on_track_change,1)
$gc(gapless:enable,1)
$gc(gapless:remove_starting_silence,1),
// else
$gc(enable,0)
)
Squeller said,
July 2, 2008 @ 10:19 pm
I did the state changes of the “sub entries” because I want the settings exactly this way in case I toggle gapless crossfader state by hand, when in non shuffle mode.
But I need to think about it again, because changing by hand is impossible because it’s always overridden by the automatism.
Acropolis said,
July 2, 2008 @ 10:00 pm
the $and trick there is to skip the output of an operation, obviously you don’t need it in your code, and there are some errors too.
also you have some meaningless code above, because if you disable the root “enable”, both gapless and fading will be disabled too, the below code should work:
$if(
$or(
$or($strcmp(%gc_playback_order%,Random),
$strcmp(%gc_playback_order%,Shuffle ‘(‘tracks’)')
),
$strcmp(%gc_playback_order%,Repeat ‘(‘track’)')
),
$gc(enable,1),
$gc(enable,0)
)
Squeller said,
July 2, 2008 @ 9:18 pm
Hi,
the behaviour control seems to work. Maybe you could add some default code and a reset button to your component? This would make life easier.
I see my code only works with $and, I forgot why.
This is what I use:
$if($or($strcmp(%gc_playback_order%,’Shuffle (tracks)’),$strcmp(%gc_playback_order%,’Random’),$strcmp(%gc_playback_order%,’Repeat (track)’)),
$and($gc(enable,1))
$and($gc(fading:enable,1))
$and($gc(fading:crossfade_on_track_change,1))
$and($gc(gapless:enable,1))
$and($gc(gapless:remove_starting_silence,1)),
// else
$and($gc(gapless:remove_starting_silence,0))
$and($gc(gapless:enable,0))
$and($gc(fading:enable,0))
$and($gc(enable,0))
)
Squeller said,
July 2, 2008 @ 7:18 pm
Ok thank you, I don’t see a any chance Peter would marry you now
I’ll test it thoroughly, good to have it back.
Squeller said,
July 2, 2008 @ 7:13 pm
Argh, you introduced a playback order variable. OK.
Acropolis said,
July 2, 2008 @ 7:06 pm
read the change log, the playback order variable is provided (only available in the behavior control).
I use title formatting instead of radio button is because otherwise it is too limited (just able to control with playback order), now you can skip the dsp with something depends on the file meta data as well.
btw, I don’t care if he likes my implementation or not, it’s my component.
Squeller said,
July 2, 2008 @ 6:44 pm
And btw, do we still have a variable for the playback order except in foo_cwb_hooks?
Squeller said,
July 2, 2008 @ 6:41 pm
Hi Acropolis,
thanks for the update, didn’t test it yet. Why do you still use tagz? (You know Peter does not want this) You could replace the behaviour control text box with radio buttons as in foo_rg_trn options. Most likely crossfading behaviour control for the users means making crossfading depending on the playback order.
Best regards
Michael