From: Conrad P. <co...@ve...> - 2002-09-17 22:42:31
|
Hi, Ulrich Detert recently pointed out some nasty problems with sweep's handling of LADSPA plugins, in that they were wrongly being activated and deactivated multiple times within the course of a single operation. Additionally, Steve Harris earlier pointed out that LADSPA plugins with bounded parameters should be input by a slider, not a text entry. These problems are now fixed and ready for testing: http://www.metadecks.org/software/sweep/download/sweep-0.5.4-ulrich1.tar.gz The results are much more usable and correctly operating LADSPA filters (as opposed to buzzing, difficult handling of filters which really badly misrepresented their actual good quality). This is a very noticeable improvement and I urge you to test this out :) I'd like to put out a new release towards the end of this week so any feedback is welcome (if you try it, and it works, please let me know). I've tested this out on a few stereo and multichannel files with a random choice of filters and it seems to work fine, but as always more testing is needed. Details: -------- Ulrich earlier pointed out that multichannel files were not being de-interleaved and re-interleaved correctly; I supplied a patch a few days ago which is applied in this version. He then noticed that the LADSPA instantiate/activate/run/deactivate/cleanup sequence was being run on every 1024 sample block of data processed. To anyone who knows anything about LADSPA, this is heresy and I should probably be burned at the stake. While begging forgiveness, I'll claim that this arose from two separate bits of code developed nearly two years apart: 1. the LADSPA handling code was first designed to work on an entire selection region at a time (for which the whole cycle made sense) 2. later, the generic filter handling code which calls it was modified to operate in tiny 1024 sample blocks rather than large (entire selection region) blocks, in a separate thread in order to track progress via the progress bar. The code now has the LADSPA handler managing the filter progress. Multiple LADSPA handles are created where needed (eg. to run a mono filter on each channel of a stereo or multichannel file), they are instantiated and activated, then run in 1024 sample blocks, then deactived and cleaned up. As for the use of a slider rather than a text entry, all the code for using a slider already existed, the problem was simply with the code that checked for bounds on LADSPA parameters: in short, it was and'ing flags where it should have been or'ing them; I'll put it down to bitrot and plead that I may keep my limbs. ChangeLog: ---------- Tue Sep 17 21:57:52 EST 2002 Conrad Parker <co...@me...> * ladspameta.c: fixed channel de-interleaving/interleaving * ladspameta.c: switched to SweepFilter, instantiated separate LADSPA_Handle for each iteration & internalised processing loop * ladspameta.c: fixed detection of upper and lower bounds * param.c: changed step relative to upper and lower bounds * ladspameta.c, reverse.c, normalise.c: fixed divide by 0 bug in calculating percent for regions shorter than 100(ish) samples cheers, Conrad. |