## Filter design

Scope and XITE Development

Original topic on PlanetZ: https://forums.scopeusers.com/viewtopic.php?t=26594

#### Filter design

Posted: Fri Dec 26, 2008 1:39 pm
by Warp69
Hi,
Here's a little test of 2 different lowpass filter designs - which one is the best implementation regarding low frequency response etc.? Please modulate the parameters all you can.
Unfortunately the C1 & C2 are not calibrated - so they wont match - that will of course make the test abit more difficult.
C1 = C2 = Range [0 ; MAX]
http://www.relab.dk/Filter.rar (new upload - should be easier to follow)
Cheers

#### Re: Filter design

Posted: Fri Dec 26, 2008 3:33 pm
by dawman
Thanks Martin.

#### Re: Filter design

Posted: Fri Dec 26, 2008 4:00 pm
by Warp69
Im not sure for what
I think this is only usable in Scope SDK - It's not a device, but only a test of different filter topologies - sorry.

#### Re: Filter design

Posted: Fri Dec 26, 2008 4:36 pm
by dawman
Well I just found that out.
I tried to load it as an insert in Prowave................No Bueno.
So I then loaded it into the project window and ran my analog synth through it, at a very degraded signal.
I should have known when it had no GUI that something was wrong.
Anyway Thanks for building and developing for Scope SDK then.
Happy New Year.

#### Re: Filter design

Posted: Sat Dec 27, 2008 6:53 am
by Warp69
New upload - should be easier to follow.

#### Re: Filter design

Posted: Mon Dec 29, 2008 1:39 am
by tgstgs
noone responding here?
is there a reason for sync controles?
do you want to modulate?
---------
for low frequency these are about the same to my ears;
havent checked if theres a difference in circles;
LP2
i wouldnt use for audio;
but it has its existance for analysing;
thatfor i would use async singal for controlling to save a lot of circles;
LP1
sounds better to my ears in the high frequency range;
only probl. is the recursive tap itself:
at max should be a cutoff Samplerate/2 but is not! its a bit lower;
this is like the stock atoms filters and was the reason for my personalstudy;
youre able to solve this by lowering C2 from last add (mix3) when the max controll is reached;
but im sure you know!!
so to your question:
LP1 is better the higher the cutoff is;
with the probl. of the last few HZ up to SR/2 where i would prever LP2 aproach;
good vibes from vienna

#### Re: Filter design

Posted: Mon Dec 29, 2008 2:57 am
by Warp69
Hi tgstgs,
Thats correct - the sync module is for modulation purpose.
I have uploaded yet another version - now including the Chamberlin form (LP3) - http://www.relab.dk/Filter.rar
The LP1 form is a low sensitive structure - better response than LP2 with modulation.
Not many are apparently interested in filter structures

#### Re: Filter design

Posted: Mon Dec 29, 2008 3:37 am
by tgstgs
had lots of fun with matlab;
check it out;
porting c to sdk i was not able to beat stock atoms circles;
need to build in assembler;
im sure with xite a lot of high order exotic filters are possible
time will tell . .
----------
will test lp3 later
good vibes

#### Re: Filter design

Posted: Mon Dec 29, 2008 4:12 am
by sonolive
hi all,

> Not many are apparently interested in filter structures

> noone responding here?

actually an intereting subject ... i follow it as possible ... and maybe will post , but miss time,
let me just say that DSP Equing/filtering is a wonderfull world, full of maths and passionating things (truncations, approximations, nodes overloads ...)
we at DAS have spent 6 months to realise our master it eq algo,
Martin thx again for your contribution to our knowledge
cheerz
olive

#### Re: Filter design

Posted: Mon Dec 29, 2008 11:21 am
by Shroomz~>
Hi Martin, we're just back from spending xmas with family. I'll check out your filters as soon as I can get access to the sdk, but I'm not quite sure when that will be...
cheers,
Mark

#### Re: Filter design

Posted: Tue Dec 30, 2008 11:27 am
by sonolive
hi martin,
i had a look this afternoon at your designs , actually interesting , espacially the LP3, many possibilities as "musical" filter ...
there are some things i don't understand ... Mix 3 instead of Mix 2 (that would make the dev lighter ... (dsp consuption speaking, ) but i guess you have something else in mind !
LP3, "sounds" great ... i didn't know this implementation, quite versatile and really "optimisable" ...
in term of "strict low pass", i would prefer LP2, but at this time i must admit that i didn't passed audio throu it, only "fft analisys" ... and i do know by experience that it is not a good judge ...
i am still really interesed in your further researches ...
cheerz
olive

#### Re: Filter design

Posted: Tue Dec 30, 2008 2:07 pm
by Warp69
Sorry the Mix3 modules could easily be replaced with Mix2 - they were used to correct the summing issue of positive numbers - but that should be handle differently because of negative numbers.
The filter structures are without saturation and randomization - that should be implemented somewhere in the feedback loops for different effects.
I'll wait before I release additional structures - some could also cascade 4 LP1 with feedbacks - ladder type filters.
Oh and the sync modules is only for audiorate modulation.
Cheers

#### Re: Filter design

Posted: Thu Jan 08, 2009 9:32 am
by tgstgs
sorry for late reply
last download here in topic LP3 is oszilating;
= not stabil;
im hear a fu* ringing with low input at about -12dB _ NO???
good vibes

#### Re: Filter design

Posted: Thu Jan 08, 2009 9:47 am
by Warp69

> tgstgs wrote:LP3 is oszilating;

Only at MAX res

#### Re: Filter design

Posted: Fri Jan 09, 2009 4:26 am
by tgstgs
have to agree with olive LP3 sounds very good;
i tested with a guitar doing sort of wah effect with a controller;
specialy on low frequency input i like what it does to the higher parts of the guitar spectrum;
----
this is definitive worth further development;
have to test its switching characteristics;
need some time
good vibes

#### Re: Filter design

Posted: Mon Jan 12, 2009 2:56 pm
by MCCY
I am very interested in taking a look into those structures, but didn't find the time so far. I bet I missed something, I guess I will not understand anything though . Thanks anyway, I'll comment when I find the time for testing.
1000 Thanks, exspecially for your old topic on reverbs too!!! It's so cool to have people here sharing knowledge on such a high level.
Martin II

#### Re: Filter design

Posted: Thu Apr 09, 2009 1:46 pm
by Warp69
Well - after this success and awesome participation its about time to continue.
I hope most people looking at the structure found out how to extract highpass and bandpass simultaneously from Filter3 - otherwise you can download it here : www.relab.dk/Filters.mdl
If you sum the LP3 and the HP3 you get band reject.

#### Re: Filter design

Posted: Fri Apr 10, 2009 12:45 pm
by Shroomz~>
Thanks, I'd like to get involved in this discussion when I've got some free time with the sdk again.

#### Re: Filter design

Posted: Sat Apr 11, 2009 9:52 am
by hifiboom
warp, do you know how you can build oversampling filters via sdk?
i ve not yet found a way, surely by touching the assembly code, but with the basic atoms?

#### Re: Filter design

Posted: Sat Apr 11, 2009 10:01 am
by Warp69
Not by basic SDK atoms.
I do have access to STW oversampling modules.
I talked with Jurgen at the Musik Messe regarding oversampling modules for the XITE system - Sonic Core will look into it - the modules will have additional in/outputs for oversampling - 2 in/outputs for 2x oversampling and 4 in/outputs for 4x oversampling.

#### Re: Filter design

Posted: Sat Apr 11, 2009 10:05 am
by hifiboom
wow thx, thats cool and great info....
one year ago they told me that there might even be an sdk update in the future but it was to early to say when.
the sdk with some little additions and a bit of bug fixing here and there would be awesome.

#### Re: Filter design

Posted: Sat Apr 11, 2009 10:32 am
by Warp69
Im also looking forward to an updated SDK and I do know that SC will release a special version of the SDK with complete access to scripting, DSP, graphic subsystem etc. But I do think that it will only be available for high-profile companies/partners.
Some of my hopes for an update : switch between the 3 modes : 32bit Int, 32bit FloatInt (the current implementation - Max value equals '1') and real 40bit float for all modules, oversampling modules, SIMD optimized support.
But this should probably be discussed in another thread.

#### Re: Filter design

Posted: Sat Apr 11, 2009 10:36 am
by Shroomz~>
Why not start a new thread then? We could collectively make a list of sdk issues/niggles/bugs there as well.

#### Re: Filter design

Posted: Sat Apr 11, 2009 1:23 pm
by hifiboom
well this all sounds good ...
i hope i get a high-profile company then.
haha
jeah lets start a new thread. sdk features and bugs...
we can collect stuff and finally transfer the link to ralf.

#### Re: Filter design

Posted: Tue Apr 14, 2009 8:59 am
by tgstgs
a filter has to do a job;
hard to discuss if i dont know the job the filter shall do in the end;
---
you made your circuits with sync modulatable source;
but what source shall it be if not the input itself;
to me it makes only sense if the cutofffrequenzy is controled by the frequency of the inputsignal;
but he ho thats dynomic!
so i had to be careful what to tell and what not you know;
--------
heres one with asymetric +- input;
im sure one will find a way to do it symetric or do a hp bp out of it;
the logic is very poor and its by far not optimized just the basic structure;
-----
in sound i would say its between lp1 and lp2;
with the best of them both;
but soundtaste is very subjective!!
----------
check it out vibes from vienna
edit:
maybe we should go on via pm to leave serverspace for bugreports / wishes / and pictures;
btw. i like those pictures - very creative whatelse to expect from artists

Attachments
  tgs_LP_4.rar
    (17.22 KiB) Downloaded 178 times

#### Re: Filter design

Posted: Tue Apr 14, 2009 9:13 am
by Warp69
I'll check the structure.

> tgstgs wrote:maybe we should go on via pm to leave serverspace for bugreports / wishes / and pictures;
> btw. i like those pictures - very creative whatelse to expect from artists

Heheh - I know what you mean, but I don't like the pictures.
Btw. - to completely save serverspace we would have to use emails.

#### Re: Filter design

Posted: Tue Apr 14, 2009 2:28 pm
by Shroomz~>
Should LP3 not have some gain added? It appears to have a stopband attenuation of 18dB when it should be 12? Also, it appears to have a beating artifact in the low frequencies when resonance is set high.

#### Re: Filter design

Posted: Tue Apr 14, 2009 10:10 pm
by tgstgs
same as lp4 but symetric with levelcompensation;
for the ones just testing in/out
good vibes

Attachments
  tgs_LP_5.rar
    (20.81 KiB) Downloaded 167 times

#### Re: Filter design

Posted: Tue Apr 14, 2009 10:39 pm
by tgstgs
now with a 2nd step -> theoretical delay 2 samples -> not optimized!
but maybe better for acustical tests
the mdl should work for scope 4_5 btw. use a dcoffset if you want fix settings;
____________________

Attachments
  tgs_LP_6.rar
    (23.51 KiB) Downloaded 162 times

#### Re: Filter design

Posted: Wed Apr 15, 2009 9:19 am
by sharc
This is a fascinating topic. Sorry I haven't contributed so far.
I have to admit that the deeper I've delved into filter design, the math involved does become a little daunting. It makes a lot more sense to me in practice. Seeing these different algos in a modular context is much more immediate than trying to get my head round some of those equations
They do use a fair amount of DSP though. Were we to create a 24dB Multimode implementation with additional saturation / randomization effects, I guess it might not be much use for a polysynth - Maybe OK with XITE
Would however be interesting to see some examples (possibly even using the stock 6dBLP?) of how different effects in the feedback loop can be used to create various characteristics. Would also be nice to see how you guys would approach the 'modelling' of an existing filter structure, maybe even taking something we all have access to (Minimax?) as an example.

#### Re: Filter design

Posted: Wed Apr 15, 2009 10:58 am
by hifiboom
there is an option in sdk to fix a filter to one dsp, meaning you can build compley filters with polyphony, but while it works fine ind sdk the feature is ignored in scope 4.5. So its doesn`t work.
I guess its called "per voice" in the on same dsp attribute options. (sdk)
Otherwise scope trys to load polyphone filters onto one dsp (yes option), which limits the possibilities a bit.
I hope this gets fixed with next scope / or scope sdk release....
For sure this isn`t a big problem with XITE-1 sharcs anymore....

#### Re: Filter design

Posted: Wed Apr 15, 2009 11:39 am
by Shroomz~>

> hifiboom wrote:there is an option in sdk to fix a filter to one dsp, meaning you can build compley filters with polyphony, but while it works fine ind sdk the feature is ignored in scope 4.5. So its doesn`t work.
> I guess its called "per voice" in the on same dsp attribute options. (sdk)
> Otherwise scope trys to load polyphone filters onto one dsp (yes option), which limits the possibilities a bit.
> I hope this gets fixed with next scope / or scope sdk release....

Not sure exactly what you're talking about here, since "per voice" isn't a valid value (setting) in the on same dsp attribute options. I'm sure polyphony options are only set with the 'Single Load' & 'Voice' attributes.

#### Re: Filter design

Posted: Wed Apr 15, 2009 1:38 pm
by hifiboom
sure it is
so you can fix a structure (lets say a filter, which is a must normally) to a certain dsp with option set to YES.
now if you set voices to 3, the scope card tries to fit the 3 filter modules (3voices a 1 filter) to one of the dsps.
so the maximum dsp power you can use for a module (lets say a filter) with the option set to YES is 1/16 of ONE dsp if you wanna reach 16xpolyphony
if your filter utilizises 1/8 of ONE dsp and option set to YES, you get 8xPOLY and so on.
so an dsp expensive filter lets say which uses 1/2 of an single dsp sharc can only played 2 x POLY.
thats the limitation.
With the PER VOICE option you can build dsp expensive filter designs and they are split over various dsp with multiple voices.
than a synth with lets say a filter, an envelope, an VCA and so on gets split over dsps in a different way.
1 voice is applied to one chip, while the others voices may be loaded to a different sharc.
by marking groups of atoms you can assign them to different sharc chips.....
try aound a bit and you will leran the workflow, its more a technical aspect, but with more complex filters you need to understand this quite well or you won`t succeed.
With On same dsp set to NO, the filters will break out due to latencies between the chips, because the atoms inside the filter may be split over various sharc chips, which will introduce a little latency (a few samples). Its written inside the sdk manual, i think i remind myself when reading it.
The per voice option is a good way to build complex sounding poly synths. I`m sure CW high end (minimax, prophet, prodyssey) synths have to use this option.
But as i said: its a bug inside scope or sdk. The setting works inside sdk and not in scope.
So its either that sdk does not properly save this setting or Scope 4.5 doesn`t read it properly. Or its not a bug and CW deactivated it. have a look at the picture.

Attachments
    "per voice" option
    per_voice.JPG (21.27 KiB) Viewed 3033 times

#### Re: Filter design

Posted: Wed Apr 15, 2009 1:41 pm
by hifiboom
by the way, i talked with red_muze about this problem and he confirmed this and he also has not found a solution so far.
Thats why adern filters have different poly count. They must be set all to yes.
And thats why my jupiter cannot have to much voices so far with own filter designs....

#### Re: Filter design

Posted: Wed Apr 15, 2009 1:50 pm
by Shroomz~>
Weird...
This isn't in the sdk manual module attributes section in the Scope paradigm pdf. So, what other important things are missing from the docs we have? Never mind. I suppose that's a silly question to which the answer is 'LOTS'.

#### Re: Filter design

Posted: Wed Apr 15, 2009 2:08 pm
by Shroomz~>
From the manual > Scope Paradigm.pdf/Abstraction Layer/Module Attributes:-
On Same DSP
values: <not set>, yes, no
determines if a entire module
should be executed on a single
DSP or not. A module can only be
executed on a DSP if the processor
is capable of computing all
necessary cycles simultaneously.
‘-1’ is equivalent to <not set> and
allows the module to inherit the
value from the parent.

#### Re: Filter design

Posted: Wed Apr 15, 2009 5:26 pm
by sharc

> hifiboom wrote:...the maximum dsp power you can use for a module (lets say a filter) with the option set to YES is 1/16 of ONE dsp if you wanna reach 16xpolyphony
> if your filter utilizises 1/8 of ONE dsp and option set to YES, you get 8xPOLY and so on.
> so an dsp expensive filter lets say which uses 1/2 of an single dsp sharc can only played 2 x POLY.
> thats the limitation.

Yes, that's what I was getting at

> hifiboom wrote:With the PER VOICE option you can build dsp expensive filter designs and they are split over various dsp with multiple voices.

Didn't know about that setting - Interesting

> hifiboom wrote:But as i said: its a bug inside scope or sdk. The setting works inside sdk and not in scope.
> So its either that sdk does not properly save this setting or Scope 4.5 doesn`t read it properly. Or its not a bug and CW deactivated it. have a look at the picture.

Just hazarding a guess, but maybe if you use the 2nix module...

#### Re: Filter design

Posted: Thu Apr 16, 2009 6:39 am
by tgstgs
to have about the same filtereffect as tgs_LP6 im in the need of 3 6dB_LP stock atoms;
please have in mind that tgs_LP6 is in no way optimized and uses about double the dspload as the 3 6dB_LP uses so far;
i said earlier that i was not able to beat the dspload of the stock atoms and i have to add again that they are very good compared their effect to their load
but the complexer a filter gets the nearer i get;_ thats for sure _!
one has to decide if using a for (){} or lookin for a better logicalgo;
once again:
the MM logic with 2 coeff is a bit of poor (the poorest man may think of exept the ideal LP of course!) but its an example of a basic symetricsyncfilterstructure;
im sure one is able to find a smarter logic;
------
in the missing of negative values (hope i dont miss something here) im not able to check the warp69 structures but the 6dB_LP stock is not fully symetric tgs_LP6 is!
--------
but anyway to me more interesting is the switching character;
take a 6k sinus 0dB and switch between 300 and 3k cutoff with a syncsignal;
if you check it out you will see that the probl. is the switch down needing 200-300 samples to take effect while the switch up is about 20-30samples;
thats why im talkin about a theoretical delay of 2 samples;
the defacto delay depends on the source feeded;
the probl. with all those structures is the feedback itself;
it does the fu*ing delays as well as the artefacts one could hear when modulating;
--
now we are ready for a smart guy posting a workaround lets call it turbofilterbooster to speed things up;
which has the nice sideeffect to set the artefacts to zero;
or we use no feedback at all who knows?
good vibes

#### Re: Filter design

Posted: Thu Apr 16, 2009 3:00 pm
by Shroomz~>

> tgstgs wrote:the MM logic with 2 coeff is a bit of poor (the poorest man may think of exept the ideal LP of course!) but its an example of a basic symetricsyncfilterstructure;

Could you use the negative output of a 'Full Wave Rectifier 2' atom instead of the inverter sync & threshold switch in your MM logic module? I think it gives you the same result, but is more dsp efficient (it saves some cycles & memory).
It would be great if you could try to explain more about these filter types & their implementations in the forms you've posted here.

#### Re: Filter design

Posted: Thu Apr 16, 2009 11:17 pm
by tgstgs
yes
_ you are optimizing;
--------
one has to check if the fullwavrect is better on more complex filters where you may need to substract instead of add too;
---------
you need a syncmultipier and the ringmod is one somehow and it sounds better than the volAtt but thats just my personal taste;
thats why i posted;
have a nice weekend vibes

#### Re: Filter design

Posted: Fri Apr 17, 2009 3:51 pm
by Shroomz~>

> tgstgs wrote:you need a syncmultipier and the ringmod is one somehow

Yes, we've noticed this. I get the feeling that several modules aren't much more than multipliers.