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

foo_dsp_continuator

Reply #250
It seems to make streamed content stutter a little when it starts playing. I guess it should be possible to fix by disabling it if track length is infinite...

Any developer awake - Somebody want to take over the development? The ported sourcecode (but somewhat buggy due to MSXML runtime) is available.
Can't wait for a HD-AAC encoder :P

foo_dsp_continuator

Reply #251
Hello!

I updated foo_dsp_continuator to version 0.5 with the following changes:
Fixed crash on exit, removed unnecessary MS XML config code.
Fixed warning (added type t_size_l, used t_size) and other type conversions.
Fixed STL begin(), end(), copy(), iterator crashes.
Fixed buggy string comparision: 3x e.g. pszFadeOutCurves[nCnt] != ""
Removed MS XML Header
Macros are safe with brackets.

Testcases which are ok:
Testcase 2 small files
Testcase: Fade in/fade out time: 10ms

You can download the new version under:
http://www.wiesinger.com/opensource/foobar...continuator.dll

You need the following DLLs (Microsoft Visual C++ 2005 Redistributable Package (x86)):
http://www.microsoft.com/downloads/details...;displaylang=en

I've tested it with foobar2000 0.9.5Beta* without any problems.

Please let me know whether all the problems have been fixed.

When there are no problems reported I'll release the source code, too.

Wiesl

foo_dsp_continuator

Reply #252
thanks for further development, works fine so far

foo_dsp_continuator

Reply #253
I tried the new version, and it works with the latest stable foobar2000 v0.9 release! Here's my config:



The plug-in behavior in this configuration seems exactly the same as with the old version and foobar v0.8.

I will play around with this a little more, and I will probably finally switch to foobar v0.9. Without a stable and fully-functional cross-fader, foobar v0.9 was just not worth it to me.

Now I can have foobar in all its glory. Thank you so much!

foo_dsp_continuator

Reply #254
Continuator-tag seem to work now

I had a single foobar-lockup (appearently when Continuator started to buffer). I'll update this post if it reoccurs.

Theres a few things that can be improved if someone takes over this amazing plugin:
1. Gapkill starting silence (to a given threshold) from the next playing track
2. Toggle this plugin on/off from a titleformatting function (I know it's deprecated, but it makes some automation easier)
3. Automatic disabling on live-streams (it makes them stutter at the beginning)
4. Extended Continuator-tag support, as proposed a few pages back.

5. One thing I thought of would be nice to have, is if the Continuator supported a way to cut off a given length of the beginning and end of a track. I have many tracks with interludes appended to a track - This could be a great way to chop these off when they are playing in shuffle-mode.
Can't wait for a HD-AAC encoder :P

foo_dsp_continuator

Reply #255
Continuator-tag seem to work now

I had a single foobar-lockup (appearently when Continuator started to buffer). I'll update this post if it reoccurs.

Theres a few things that can be improved if someone takes over this amazing plugin:
1. Gapkill starting silence (to a given threshold) from the next playing track
2. Toggle this plugin on/off from a titleformatting function (I know it's deprecated, but it makes some automation easier)
3. Automatic disabling on live-streams (it makes them stutter at the beginning)
4. Extended Continuator-tag support, as proposed a few pages back.

5. One thing I thought of would be nice to have, is if the Continuator supported a way to cut off a given length of the beginning and end of a track. I have many tracks with interludes appended to a track - This could be a great way to chop these off when they are playing in shuffle-mode.


What did the "lockup" look like?

Can you explain 1 and 2 a little bit more detailed?

Can't 5. be implemented in overlap mode with the threshold set?

Wiesl

foo_dsp_continuator

Reply #256
2) if (expression=true) > continuator=on
for exemple:
$if($strcmp(%cwb_playback_order%,'Shuffle(tracks)'),continuator=on)

another plugin, gapless crossfader work in this way.
3) also can be done with  titleformatting.
Music is my first love.

foo_dsp_continuator

Reply #257

Continuator-tag seem to work now

I had a single foobar-lockup (appearently when Continuator started to buffer). I'll update this post if it reoccurs.

Theres a few things that can be improved if someone takes over this amazing plugin:
1. Gapkill starting silence (to a given threshold) from the next playing track
2. Toggle this plugin on/off from a titleformatting function (I know it's deprecated, but it makes some automation easier)
3. Automatic disabling on live-streams (it makes them stutter at the beginning)
4. Extended Continuator-tag support, as proposed a few pages back.

5. One thing I thought of would be nice to have, is if the Continuator supported a way to cut off a given length of the beginning and end of a track. I have many tracks with interludes appended to a track - This could be a great way to chop these off when they are playing in shuffle-mode.


What did the "lockup" look like?

foobar just freezed.
Can you explain 1 and 2 a little bit more detailed?

1. It seems that starting silence from the track fading to is not cropped - If there's a lot of silence (2-3 sec) it starts too late.
2. Implementing a command like $continuator(enable) to control if it should be set or which can be used with conditional formattings.
Can't 5. be implemented in overlap mode with the threshold set?

Not really. It's more a "very-nice-to-have" request, and I guess not many would benefit from it  My idea was that a given time in a tag could make the plugin crop the track, regardless if theres music or not (as I mentioned with interludes appended to the track)

2) if (expression=true) > continuator=on
for exemple:
$if($strcmp(%cwb_playback_order%,'Shuffle(tracks)'),continuator=on)

another plugin, gapless crossfader work in this way.
3) also can be done with  titleformatting.

I suppose you mean that 3. works if 2. are implemented? I'm not sure that it will have time to kick in before buffering.
Can't wait for a HD-AAC encoder :P

foo_dsp_continuator

Reply #258
Wiesl, the component is still not reliable for me, now I remember why. I often got sound glitches. Here's my settings and two problematic tracks (play them in order), maybe someone can confirm... At the end of the fading of track one I get a rather loud and short noise from track 1 again.

My Settings:
Mode: Crossfade. Override with tag: off. Buffer 5645, CF length 4582, fade-out linear, length 3625, fade-in linear, length 435, all bottom checkboxes off.

Hmm, the same if you only play track 2, in the end you also get a short peak...

Files are here.

foo_dsp_continuator

Reply #259
Wiesl, the component is still not reliable for me, now I remember why. I often got sound glitches. Here's my settings and two problematic tracks (play them in order), maybe someone can confirm... At the end of the fading of track one I get a rather loud and short noise from track 1 again.

My Settings:
Mode: Crossfade. Override with tag: off. Buffer 5645, CF length 4582, fade-out linear, length 3625, fade-in linear, length 435, all bottom checkboxes off.

Hmm, the same if you only play track 2, in the end you also get a short peak...

Files are here.


Can you post more details:
track length of both tracks, maybe the song titles or how they begin/end (loudness).

What is your sound buffer size? (2000ms?)
Can you try a larger one (e.g. 4000-5000ms) under Preferences/Playback/Output/Buffer Length

I had similar problems with 2000ms sound buffer.

Wiesl

foo_dsp_continuator

Reply #260
I uploaded the files, did you see?

1: Duration : 0:48.373 (2133264 samples)
2: Duration : 0:42.609 (1879040 samples)

Output buffer was 2000ms, problem remains also with 5000...

foo_dsp_continuator

Reply #261
I uploaded the files, did you see?

1: Duration : 0:48.373 (2133264 samples)
2: Duration : 0:42.609 (1879040 samples)

Output buffer was 2000ms, problem remains also with 5000...


Ok, I analyzed the situation, and the plugin works correctly.

File1 has a "major loudness part" in the last 170ms (compared to the previous seconds) of the file and it is only gained by -35 to -45 dB. Since it is still very loud in the last 170ms you hear the "click".

When you use the db Scale, it is already down, that you don't hear it.

Wiesl

foo_dsp_continuator

Reply #262
Hello!

I updated foo_dsp_continuator to version 0.6.1 (from 0.5.0) with the following changes:
===============================================
All Code is now distributed under the GPL license V2, Added GPL license

Added autoenable feature as discussed above:
2. Toggle this plugin on/off from a titleformatting function (I know it's deprecated, but it makes some automation easier)
3. Automatic disabling on live-streams (it makes them stutter at the beginning)
Fixed a lot of crashes.
===============================================
Code changes:
Refactored a lot of code

smooth_vector
on_endoftrack: Sizes must be unsigned when subtracted, validate .end() substraction
Added debug code.

Added correct virtual destructor.

Refactored fill_buffer, apply_gain
=> ifs => MAX/MIN
t_size_l => int where necessary (no functional change)
-0.0 dB are now 0.0dB
Updated Dialogs for autoenable feature.
Reorderd IDs, Removed duplicate entries.

Fixed warning (added type t_size_l, used t_size) and other type conversions.
Fixed STL begin(), end(), copy(), iterator crashes.
Fixed buggy string comparision: 3x e.g. pszFadeOutCurves[nCnt] != ""
Removed MS XML Header
Macro safe with brackets.
Testcase 2 small files: click.wav, popup.wav
Testcase: Fade in/fade out time: 10ms
===============================================

You can download the new version under:
http://www.wiesinger.com/opensource/foobar...continuator.dll

Source Code can be found at:
http://www.wiesinger.com/opensource/foobar...uator-0.6.1.zip

You need the following DLLs (Microsoft Visual C++ 2005 Redistributable Package (x86)):
http://www.microsoft.com/downloads/details...;displaylang=en

I've tested it with foobar2000 0.9.5.1 without any problems.

Please let me know whether you like the new features and whether it is stable or not.

Wiesl

foo_dsp_continuator

Reply #263
i like autoenable feature , thank you!

but i have a problem:

if continuator is later equalizer in dsp manager list,
when crossfader isn't enable , with seamless album (for exemple the wall pink floyd) i can hear a click or sometimes a gap when track change.

latest continuator foobar 0.5.1 vista

foo_dsp_crossfader have the same problem
Music is my first love.

foo_dsp_continuator

Reply #264
i like autoenable feature , thank you!

but i have a problem:

if continuator is later equalizer in dsp manager list,
when crossfader isn't enable , with seamless album (for exemple the wall pink floyd) i can hear a click or sometimes a gap when track change.

latest continuator foobar 0.5.1 vista

foo_dsp_crossfader have the same problem


Can you post your exact settings.

BTW:
Some documentation on the autoenable feature:
You can use a string e.g.:
$if($strcmp(%album%,'My Album name'),on)

You can use all of the functions which are provided.

When it is on it is used otherwise not.

Wiesl

foo_dsp_continuator

Reply #265
Thanks for developing this plugin! Maybe it's better thinking about another approach which makes handling way easier: I'm sure the most common idea behind automatically switching track fading is when people use shuffling. In other words: The wish for auto-changing the fading will most likely be caused by a change in the playback order. "Forcing" users to use Tagz for controlling the plugins behaviour just increases code mess.
I wholeheartedly recommend you to use a more easy approach, the same as in foo_rg_trn: A properties page where the user can decide per playback mode/with a radio button.

Pictures say more than thousand non native speakers words  ->

Code: [Select]
Playback mode          Continuator ON     Continuator OFF
Default                                         x
Shuffle (Tracks)              x
Shuffle (Albums)                                x
...

foo_dsp_continuator

Reply #266
Thanks for developing this plugin! Maybe it's better thinking about another approach which makes handling way easier: I'm sure the most common idea behind automatically switching track fading is when people use shuffling. In other words: The wish for auto-changing the fading will most likely be caused by a change in the playback order. "Forcing" users to use Tagz for controlling the plugins behaviour just increases code mess.
I wholeheartedly recommend you to use a more easy approach, the same as in foo_rg_trn: A properties page where the user can decide per playback mode/with a radio button.

Pictures say more than thousand non native speakers words  ->

Code: [Select]
Playback mode          Continuator ON     Continuator OFF
Default                                         x
Shuffle (Tracks)              x
Shuffle (Albums)                                x
...


But's that is possible with the existing scheme (of course not so comfortable but much more flexible). You have to "program" an expression with and, or and not when the playback mode is queried with the function.

Maybe someone can help here.

Wiesl

foo_dsp_continuator

Reply #267
$ifgreater(%cwb_queuelength%,0,,
$if($or($strcmp(%cwb_playback_order%,'Shuffle (tracks)'),
$strcmp(%cwb_playback_order%,'Random')),$puts(crossfader,1),))

$if($strcmp(%cwb_next_user1%$num(%cwb_next_user2%,3),
%album%$num($add(%tracknumber%,1),3)),,$puts(crossfader,1))

$ifgreater($get(crossfader),0,'on',)

this expression active crossfader when
random or shuffle track are selected playing mode and
with not  sequential album tracks (default playing mode and queued tracks)
(use foo_cwb_hooks)






i like autoenable feature , thank you!

but i have a problem:

if continuator is later equalizer in dsp manager list,
when crossfader isn't enable , with seamless album (for exemple the wall pink floyd) i can hear a click or sometimes a gap when track change.

latest continuator foobar 0.5.1 vista

foo_dsp_crossfader have the same problem


Can you post your exact settings.


default setting for continuator, not a problem of config, same know problem with gapless crossfader.
try with a gapless album
Music is my first love.

foo_dsp_continuator

Reply #268
Code: [Select]
Playback mode          Continuator ON     Continuator OFF
Default                                         x
Shuffle (Tracks)              x
Shuffle (Albums)                                x
...

But's that is possible with the existing scheme (of course not so comfortable but much more flexible). You have to "program" an expression with and, or and not when the playback mode is queried with the function.

I know it's possible, I already do this with Acropolis' plugin... My goal was about improvement of usability

foo_dsp_continuator

Reply #269
Thanks for the update!  I've tested it in "Overlap" mode with the "Blackfield" album (which has a mix of fade-outs and seamless transitions) and it's working great.

foo_dsp_continuator

Reply #270
So is it possible through any settings to use this plugin simply as a means to get rid of gaps, and not crossfading/overlapping?

Even with the fade-in curve down to 10ms, it still causes overlapping between some tracks. I'd rather just have the plugin remove gaps from tracks.

foo_dsp_continuator

Reply #271
So is it possible through any settings to use this plugin simply as a means to get rid of gaps, and not crossfading/overlapping?

Even with the fade-in curve down to 10ms, it still causes overlapping between some tracks. I'd rather just have the plugin remove gaps from tracks.


I use:
Overlap

Buffer Length: 5008
Threshold: 40.4 (or 100)

Fade out curve: const db/s
Fade out length: 10
Fade target: 0

Fade in curve: const db/s
Fade in length: 10
Fade start: 0

Nothing checked except Power.

The maximum overlapping might be 10+10ms=20ms which should be acceptable.

Try it and let me know whether it works for you or not.

Wiesl

foo_dsp_continuator

Reply #272

So is it possible through any settings to use this plugin simply as a means to get rid of gaps, and not crossfading/overlapping?

Even with the fade-in curve down to 10ms, it still causes overlapping between some tracks. I'd rather just have the plugin remove gaps from tracks.


I use:
Overlap

Buffer Length: 5008
Threshold: 40.4 (or 100)

Fade out curve: const db/s
Fade out length: 10
Fade target: 0

Fade in curve: const db/s
Fade in length: 10
Fade start: 0

Nothing checked except Power.

The maximum overlapping might be 10+10ms=20ms which should be acceptable.

Try it and let me know whether it works for you or not.

Wiesl


Will report back after some good usage with these settings, thanks.

foo_dsp_continuator

Reply #273
OK, I wrote a small checklist and HOWTO:

1.) Check if you are using the lastest version from:
http://www.wiesinger.com/opensource/foobar...sp_continuator/
and have a look at the installation docs at
http://www.hydrogenaudio.org/forums/index....mp;#entry550561

2.) Check if you added the plugin in the DSP Manager in the correct order . e.g.
http://www.wiesinger.com/opensource/foobar...dsp_manager.gif

3.) For crossfade use e.g. this settings:
http://www.wiesinger.com/opensource/foobar...r_crossfade.gif

4.) For overlap use e.g. this settings:
http://www.wiesinger.com/opensource/foobar...der_overlap.gif

Hope it helps.

Please let me know if you still have problems.

Wiesl

 

foo_dsp_continuator

Reply #274
I updated foo_dsp_continuator to version 0.6.1 (from 0.5.0) with the following changes:
===============================================
All Code is now distributed under the GPL license V2, Added GPL license

I've just seen this now, so sorry for bringing it up so late:
  • Have you rewritten the complete source code, or have you asked the previous contributors for permission to change the license?
  • Do you realize that the GPL is incompatible with the foobar2000 SDK license? If you own all the rights to the source code, you can of course release it under the GPL, but anyone else who creates a derived version from the GPL code and releases it would technically be violating the GPL (since loading a plugin at runtime constitutes linking against the (non-GPL) foobar2000 core).