If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
Triple Pole ZDF.. But it need a fix...
8 posts
• Page 1 of 1
Triple Pole ZDF.. But it need a fix...
I was so much happy to see this filter working at low cutoff !)
(As i don't understand well all the logic of ZDF... was almost sure to get more a crash than a filter.)
But at high cutoff we could see that there's a problem and it crash...!
I try to find some fix.. changing g1 and g2 value.. But maybe d must also change ??
What i do wrong here ?
The idea is to add one more pole to a SVF ZDF filter.. Not sure it really make sense, but just to try..
But i miss something in the logic...
(As i don't understand well all the logic of ZDF... was almost sure to get more a crash than a filter.)
But at high cutoff we could see that there's a problem and it crash...!
I try to find some fix.. changing g1 and g2 value.. But maybe d must also change ??
What i do wrong here ?
The idea is to add one more pole to a SVF ZDF filter.. Not sure it really make sense, but just to try..
But i miss something in the logic...
- Attachments
-
- tripleSVFZDF.png (7.13 KiB) Viewed 28280 times
-
- Triple pole ZDF (need a fix).fsm
- (94.79 KiB) Downloaded 1352 times
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
Re: Triple Pole ZDF.. But it need a fix...
hahaha it seams to work now...
I laugh, because my first attempt was just vaguely the idea, but inverting almost everything !)
Going back to the VaFilterDesign famous book, the equation become more clear..
Even if i'm surprise when it works..
I laugh, because my first attempt was just vaguely the idea, but inverting almost everything !)
Going back to the VaFilterDesign famous book, the equation become more clear..
Even if i'm surprise when it works..
- Attachments
-
- Triple pole ZDF v2.fsm
- (43 KiB) Downloaded 1229 times
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
Re: Triple Pole ZDF.. But it need a fix...
A more usable and a real-time version. Using the Tan approximation of Martin Vicaneck.
At first i was thinking that this filter as no real advantage..
Yet i'm not sure what they are but they are some interesting feature and difference with a classic SVF.
With no resonance (negative or positive) and only the Lp and Hp we get an allpass,
the allpass is 1th or 2th if they are mixed in positive or negative way..
Then with resonance to get a constant magnitude we need to add some Bandpass with it..
But the most fun is to use a positive and negative resonance then to mix the result..
I was so confuse trying to understand this zero delay feedback that i need to explain what was my problem to get it..
I needed to see more clearly what's on page 110 of the book : https://www.native-instruments.com/file ... _2.1.0.pdf
So my confusion was to think that we need to take the entire filter and make an equation Y=X+ Y... ...
Then modify it to to isolate the Y part of the equation on the right, then make it disappear from the response..
For example : Y=X+Y*g become Y-Y*g=X then Y*(1-g)=X then Y=X/(1-g)
Then use this formula, and use some "magic rules" to update the state and filter..
But how did we get this Y in the right of the formula ? My mind itself could go in a feedback thinking about it..
Concentrate on page 110 i finaly understand the logic.
We need first to solve the delayless feedback that is at the beginning of the circuit. So here YHp.
Then no magic rules, but just forget about this particular feedback and solve the rest of the filter normally.
But from where did i find the Right YHp part of the equation ? (That's where my mind go to a feedback)
You just take the YHp point in the shematic, then see what operation happen to it in all the road of the feedback.
So here Y is * by g then 2R for the first feedback path and g*g for the second one. Yhp= -Yhp*(2R*g+g*g) + x - ... ... ...
Now we could also solve for the states to get the entire equation. Then Solve for YHp !)
At first i was thinking that this filter as no real advantage..
Yet i'm not sure what they are but they are some interesting feature and difference with a classic SVF.
With no resonance (negative or positive) and only the Lp and Hp we get an allpass,
the allpass is 1th or 2th if they are mixed in positive or negative way..
Then with resonance to get a constant magnitude we need to add some Bandpass with it..
But the most fun is to use a positive and negative resonance then to mix the result..
I was so confuse trying to understand this zero delay feedback that i need to explain what was my problem to get it..
I needed to see more clearly what's on page 110 of the book : https://www.native-instruments.com/file ... _2.1.0.pdf
So my confusion was to think that we need to take the entire filter and make an equation Y=X+ Y... ...
Then modify it to to isolate the Y part of the equation on the right, then make it disappear from the response..
For example : Y=X+Y*g become Y-Y*g=X then Y*(1-g)=X then Y=X/(1-g)
Then use this formula, and use some "magic rules" to update the state and filter..
But how did we get this Y in the right of the formula ? My mind itself could go in a feedback thinking about it..
Concentrate on page 110 i finaly understand the logic.
We need first to solve the delayless feedback that is at the beginning of the circuit. So here YHp.
Then no magic rules, but just forget about this particular feedback and solve the rest of the filter normally.
But from where did i find the Right YHp part of the equation ? (That's where my mind go to a feedback)
You just take the YHp point in the shematic, then see what operation happen to it in all the road of the feedback.
So here Y is * by g then 2R for the first feedback path and g*g for the second one. Yhp= -Yhp*(2R*g+g*g) + x - ... ... ...
Now we could also solve for the states to get the entire equation. Then Solve for YHp !)
- Attachments
-
- Triple pole ZDF v4 (Real-Time).fsm
- (155.13 KiB) Downloaded 1231 times
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
Re: Triple Pole ZDF.. But it need a fix...
Now for those who like mind game
I try to make a sort of ZDF Moog Ladder, But with another lowpass system.
(this type of lowpass multiply the signal by 2, at the end it might be divide by 16)
How many Y, and S1,S2,S3,S4 did i get in my ZDF equation ?
Héhé i try to solve it but there's a trap as there's many path to follow...
I try to make a sort of ZDF Moog Ladder, But with another lowpass system.
(this type of lowpass multiply the signal by 2, at the end it might be divide by 16)
How many Y, and S1,S2,S3,S4 did i get in my ZDF equation ?
Héhé i try to solve it but there's a trap as there's many path to follow...
- Attachments
-
- LadAlp.png (22.66 KiB) Viewed 27099 times
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
Re: Triple Pole ZDF.. But it need a fix...
It works
Yet it's very complex to find the equation.
To help i count the number of possible path, for Y it's 2*2*2*2 so 16 path (or 4bit) to take into account..
I would better also use a negative R to help the calculation...
One think i like with this Lp is the more easy coefficient to get.
It's also based on tan. But (tan (f/sr*pi)-1) / (tan (f/sr*pi)+1)
Which seams similar to tan ((wc*pi)-(pi*0.25)) so a shift of tan.
Then it's more easy to approximate this portion of tan. (-0.25pi - 0.25pi).
But i'm not sure that we get any advantage doing like this for this filter.
(I have yet to understand more the classic zdf form)
For more Lp component it will become probably to much complex..
But i thing about a way to separate the resonance from the rest of the filter, then using volume to adjust..
Yet it's very complex to find the equation.
To help i count the number of possible path, for Y it's 2*2*2*2 so 16 path (or 4bit) to take into account..
I would better also use a negative R to help the calculation...
One think i like with this Lp is the more easy coefficient to get.
It's also based on tan. But (tan (f/sr*pi)-1) / (tan (f/sr*pi)+1)
Which seams similar to tan ((wc*pi)-(pi*0.25)) so a shift of tan.
Then it's more easy to approximate this portion of tan. (-0.25pi - 0.25pi).
But i'm not sure that we get any advantage doing like this for this filter.
(I have yet to understand more the classic zdf form)
For more Lp component it will become probably to much complex..
But i thing about a way to separate the resonance from the rest of the filter, then using volume to adjust..
- Attachments
-
- Moog4LadAlpZDF.fsm
- (293.38 KiB) Downloaded 1203 times
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
Re: Triple Pole ZDF.. But it need a fix...
Yep, this LP (or here HP) type seams in the end a little slower..
But seams also more easy to deal..
Maybe my misunderstanding of how the classical one might have one delayless feedback
for each pole and how to resolve all of them...
(maybe for non linearity this could make thing easy too?)
Now for the calculation of the equation i find some Helpers that are useful.
Considering one pole, we get 2 Y path and 2 S path.. Once a S is out of his pole, it take the same path as a Y.
Then we could simulate the circuit with a String system !
Y Going to the input of an HP pole we get -Y and GY
Just adding a - or a G or -G to the text..
Then each result of the first pole is entered in the next one. And we get all the path easily.
Well, almost easily.. We might be sure to see when they are 2 negative in series,
and keep in mind that the result is a multiplication.. For example -G-GY would say -G*-G*Y. So GGY.
But seams also more easy to deal..
Maybe my misunderstanding of how the classical one might have one delayless feedback
for each pole and how to resolve all of them...
(maybe for non linearity this could make thing easy too?)
Now for the calculation of the equation i find some Helpers that are useful.
Considering one pole, we get 2 Y path and 2 S path.. Once a S is out of his pole, it take the same path as a Y.
Then we could simulate the circuit with a String system !
Y Going to the input of an HP pole we get -Y and GY
Just adding a - or a G or -G to the text..
Then each result of the first pole is entered in the next one. And we get all the path easily.
Well, almost easily.. We might be sure to see when they are 2 negative in series,
and keep in mind that the result is a multiplication.. For example -G-GY would say -G*-G*Y. So GGY.
- Attachments
-
- ZDF Helper.fsm
- (65 KiB) Downloaded 1204 times
-
- Text ZDF simulator.png (78.59 KiB) Viewed 26025 times
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
Re: Triple Pole ZDF.. But it need a fix...
A more experimental one. I was avoiding 2th allpass, to make coefficients easy..
But this one have some advantage to make a zero delay feedback.
The state S2 is not to take into account. So we only need to calculate for Y and S3.
(initially i wanted to add the 1th/S1 path but it seams fine without.)
Yes, when some path lead to a state there's no more need to calculate them, so S2 is not a part of the ZDF equation.
Now the frustrating part sometime with filter is that coefficients take more instruction than the filter itself..
Here we could adjust the slope with G1b but with some more complexity..
I make very approximate coefficient in the end, but it seams to be ok with this level of precision.
(Edit: Just a little limiting of the value of H and R.. When H is big and the slope longer there's some strange behavior at nyquiest that could break the filter..)
But this one have some advantage to make a zero delay feedback.
The state S2 is not to take into account. So we only need to calculate for Y and S3.
(initially i wanted to add the 1th/S1 path but it seams fine without.)
Yes, when some path lead to a state there's no more need to calculate them, so S2 is not a part of the ZDF equation.
Now the frustrating part sometime with filter is that coefficients take more instruction than the filter itself..
Here we could adjust the slope with G1b but with some more complexity..
I make very approximate coefficient in the end, but it seams to be ok with this level of precision.
(Edit: Just a little limiting of the value of H and R.. When H is big and the slope longer there's some strange behavior at nyquiest that could break the filter..)
- Attachments
-
- DualAlpZDF v2.fsm
- (210.93 KiB) Downloaded 1202 times
-
- DualAlp.png (26.84 KiB) Viewed 25155 times
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
Re: Triple Pole ZDF.. But it need a fix...
I continue to dig into the ZDF world..
I find that there's another way to solve this than using the helpers or doing the famous ZDF equation.
Those are good to understand the principle and will works but they lead me to less naturally optimization.
Using equation or helpers, i will probably end up with something like S4* G^4 +2RGGG +4RGG +2RG+1R ...
for each state and for the y loop..
I will be tempted to calculate all of those and threat every state separately.. That's a lot of instruction..
But finally will could also see the ZDF as a double calculation of the filter, the instantaneous feedback that is calculated at the beginning is almost the same as calculating the filter.
In this way we could add s2 to s1 then multiply by something then add s3 then multiply...
Finally inverting some calculation could sometime help too.
For the Moog with this different LP, every state will be multiplied first one time by (1-G) and a certain number of time by (1+G).
So it's better to do *(1+g) first, then add the next state then *(1+g) and finally *(1-G) for all in the end.
I find that there's another way to solve this than using the helpers or doing the famous ZDF equation.
Those are good to understand the principle and will works but they lead me to less naturally optimization.
Using equation or helpers, i will probably end up with something like S4* G^4 +2RGGG +4RGG +2RG+1R ...
for each state and for the y loop..
I will be tempted to calculate all of those and threat every state separately.. That's a lot of instruction..
But finally will could also see the ZDF as a double calculation of the filter, the instantaneous feedback that is calculated at the beginning is almost the same as calculating the filter.
In this way we could add s2 to s1 then multiply by something then add s3 then multiply...
Finally inverting some calculation could sometime help too.
For the Moog with this different LP, every state will be multiplied first one time by (1-G) and a certain number of time by (1+G).
So it's better to do *(1+g) first, then add the next state then *(1+g) and finally *(1-G) for all in the end.
- Attachments
-
- MoogLadalp reoptimise.fsm
- (141.61 KiB) Downloaded 1208 times
-
- LadAlp.png (22.66 KiB) Viewed 23890 times
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
8 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 33 guests