Anticode betaish release (mwlpcFilter rewrite)
-
- KVRist
- 190 posts since 28 Nov, 2003
Just uploaded a beta version of Anticode, a coding/filtering/mangling plugin that is in some senses a replacement for mWarpedLinearPredictionFilter.
Details are up at:
http://dsp.mutagene.net/?pid=projects&pc=Anticode
I just noticed that the version I uploaded is clipping the feedback, which it isn't supposed to do, but it's kinda nice in a way... hmm. well, the release is anything but stable but I'm finding uses for it in my music, so I thought I'd put it up sooner rather than later.
Details are up at:
http://dsp.mutagene.net/?pid=projects&pc=Anticode
I just noticed that the version I uploaded is clipping the feedback, which it isn't supposed to do, but it's kinda nice in a way... hmm. well, the release is anything but stable but I'm finding uses for it in my music, so I thought I'd put it up sooner rather than later.
-
- KVRAF
- 2938 posts since 18 Jul, 2005
My preliminary playings were good, fruitful and encouraging. They haven't got past preliminary though, because I haven't had much time recently.
The background was interesting as well. Nicely reminiscent of patch creation.
The background was interesting as well. Nicely reminiscent of patch creation.
- KVRian
- 1118 posts since 31 Aug, 2001 from Los Angeles, CA
-
- KVRist
- Topic Starter
- 190 posts since 28 Nov, 2003
yeah, there are some denormal problems i haven't got around to fixing. i guess i'll prioritize that 
raising the stages parameter will always increase CPU use, though, since it changes the order of the filter and since the filter is frequency warped (and contains delay-free feedback paths) it involves more calculations than your average filter.
raising the stages parameter will always increase CPU use, though, since it changes the order of the filter and since the filter is frequency warped (and contains delay-free feedback paths) it involves more calculations than your average filter.
-
- KVRAF
- 5350 posts since 8 Aug, 2003 from Berlin Germany
-
- KVRAF
- 5350 posts since 8 Aug, 2003 from Berlin Germany
Can you give me a refresher on what hese parameters are doing (mathatically)? (e.g. Warp and rotate)
What're the basic blocks and how do they flow?
Lots of fun. not as crazy as the one with the fractal map on it.
What're the basic blocks and how do they flow?
Lots of fun. not as crazy as the one with the fractal map on it.
-
- KVRist
- Topic Starter
- 190 posts since 28 Nov, 2003
Yeah, 2warpdelay is the most crazy because the reflection coefficients tend to be pretty random, giving some really wacky results, whereas the reflection coefficients here are determined from the input signal's spectrum.
Hmm, the warp parameter is the same as in 2warpdelay, so if you refer to its manual there are some accompanying figures. Mathematically, a warped filter is arrived at by replacing the unit delay in a regular filter with a first order allpass block (z^-1 -> (a + z^-1)/(1 + az~-1). This is a bilinear transform mapping from the unit circle to the unit circle, effectively "pushing" the filter's frequency response towards higher or lower frequencies.
Rotate isn't very mathematical -- it just takes the list of coefficients used for the analysis or synthesis filter and rotates them in a circular buffer. Typically, reflection coefficients should always be decreasing for linear prediction because the value of the reflection coefficient at each stage is proportional to the error of the linear prediction - so by switching around coefficient order creates spectral peaks in places that are completely unrelated to the input (but vary in time with the input).
Hmm. Makes me think that I should have a more rigorous 'rotate' function that actually rotates the frequency response of the filter prior to warping instead of just messing up the reflection coefficient order.
Hmm, the warp parameter is the same as in 2warpdelay, so if you refer to its manual there are some accompanying figures. Mathematically, a warped filter is arrived at by replacing the unit delay in a regular filter with a first order allpass block (z^-1 -> (a + z^-1)/(1 + az~-1). This is a bilinear transform mapping from the unit circle to the unit circle, effectively "pushing" the filter's frequency response towards higher or lower frequencies.
Rotate isn't very mathematical -- it just takes the list of coefficients used for the analysis or synthesis filter and rotates them in a circular buffer. Typically, reflection coefficients should always be decreasing for linear prediction because the value of the reflection coefficient at each stage is proportional to the error of the linear prediction - so by switching around coefficient order creates spectral peaks in places that are completely unrelated to the input (but vary in time with the input).
Hmm. Makes me think that I should have a more rigorous 'rotate' function that actually rotates the frequency response of the filter prior to warping instead of just messing up the reflection coefficient order.

