Welcome to %s forums

BrainModular Users Forum

Login Register

State Variable Filter

Create your own modules in C++
Post Reply
caco
Member
Posts: 306
Contact:

Unread post by caco » 05 Aug 2010, 14:38

Don't know if anyone is interested but I have a state variable filter module I have created using the C++ SDK.

It is quite useful as it provides lowpass, highpass, bandpass and notch outputs simultaneously. It is also oversampled x4 internally to provide stability upto Nyquist and is pretty CPU efficient being in C++.

I had to modify the SDK a little to get it to compile using mingw so let me know if it works. So far it is working fine for me but I only have the free version of Usine to test with.

If it is of use to people I'll upload it the addons section.

Download SVF user module

Floego
Member
Posts: 319
Location: Venezuela
Contact:

Unread post by Floego » 05 Aug 2010, 15:11

Works fine here, great idea. :)
The only problem was related to the fact that Resonance was set to 100% at startup! :/

caco
Member
Posts: 306
Contact:

Unread post by caco » 05 Aug 2010, 15:29

Great news, pleased to hear it works :)

I want to try and build up a live set using mainly Usine modules rather than VSTs where I can to make it as portable as possible so I will have more modules that I may share?

The SVF's resonance is set to default to 10% when the module is initialised so should not start at 100%?

User avatar
nay-seven
Site Admin
Posts: 5684
Location: rennes France
Contact:

Unread post by nay-seven » 05 Aug 2010, 15:44

yep, works fine here too ( and effectively start at 10%)
thanks to share and cool news that you have others in stock..;)
maybe built a pack with some and create an addon with....?
( module+example+wiki page could be a + )

caco
Member
Posts: 306
Contact:

Unread post by caco » 05 Aug 2010, 19:54

yes is a good idea. Give me a week or so and I'll post a pack of filters including an updated SVF, all the biquads, moog filter, EQ etc with some examples and a page in the wiki :)

User avatar
nay-seven
Site Admin
Posts: 5684
Location: rennes France
Contact:

Unread post by nay-seven » 05 Aug 2010, 20:02

Great !

User avatar
senso
Site Admin
Posts: 4424
Location: France
Contact:

Unread post by senso » 05 Aug 2010, 20:24

Great module and sounds good!
Thanks to share it, the community needs contributions like this one.

I have just a couple of suggestions
- the frequency could be with a Log Scale ? (see the Scale field in TParamInfo)
- inverse for the resonance, could be in exponential scale and from 0 to 99.9% ? (the 100% value seems to be very, maybe too, efficient!)

Clearscreen
Member
Posts: 482
Location: Australia
Contact:

Unread post by Clearscreen » 06 Aug 2010, 00:38

That's great Caco! I agree with the log and exp scale stuff, but keep the 100% setting - sounds very chiptune on drums! COOL! I'd also suggest being able to go lower than 100Hz maybe? I like sub bass stuff sometimes... Thanks for sharing this :D

23fx23
Member
Posts: 2545
Contact:

Unread post by 23fx23 » 06 Aug 2010, 02:31

yep great! thanks a lot for sharing!

caco
Member
Posts: 306
Contact:

Unread post by caco » 06 Aug 2010, 09:36

I have updated the link above with an improved version:
-Frequency scale now logged
-Resonance scale now exponential
-Frequency cutoff extends down to 50Hz
-Tweaked the internal non-linearaties. This will have the effect of controlling the resonance better so although resonance still extends to 100% the filter doesn't blow up quite so much. Gives less squeeling but overall probably a nicer sound and safer for the ears :)

User avatar
senso
Site Admin
Posts: 4424
Location: France
Contact:

Unread post by senso » 06 Aug 2010, 10:07

Great, impatient to discover the new version!

User avatar
senso
Site Admin
Posts: 4424
Location: France
Contact:

Unread post by senso » 06 Aug 2010, 11:05

After a test : Perfect!
thanks for your contribution

caco
Member
Posts: 306
Contact:

Unread post by caco » 06 Aug 2010, 12:57

Excellent, then I declare the SVF finished :)

I have all rbj's biquads running nicely now as well. After that maybe a Butterworth, then my Moog ladder derivation. Just realised you can turn the SVF into a cheap 3-band EQ too so will add that in as well to make a filter pack addon.

Clearscreen
Member
Posts: 482
Location: Australia
Contact:

Unread post by Clearscreen » 07 Aug 2010, 04:10

caco wrote:I have updated the link above with an improved version:
-Frequency scale now logged
-Resonance scale now exponential
-Frequency cutoff extends down to 50Hz
-Tweaked the internal non-linearaties. This will have the effect of controlling the resonance better so although resonance still extends to 100% the filter doesn't blow up quite so much. Gives less squeeling but overall probably a nicer sound and safer for the ears :)
Cheers! :D

ethnix73
Member
Posts: 604
Location: France, Caen
Contact:

Unread post by ethnix73 » 07 Aug 2010, 10:58

Thanks caco!
Seb.Dub

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Unread post by martignasse » 07 Aug 2010, 12:46

hi caco,

well done, nice to see such a great user module :)
we really need more user modules like this :D
I had to modify the SDK a little to get it to compile using mingw so let me know if it works. So far it is working fine for me but I only have the free version of Usine to test with.
I'm really interested to the modifications you made, and the mingw version you used (and any other SDK feedback, of course)

congratulations
Martin FLEURENT - Usine Developer - SDK maintainer

caco
Member
Posts: 306
Contact:

Unread post by caco » 23 Aug 2010, 11:17

I have added a few new filters for testing to the download below, which now contains:

State Variable - as described above
State Variable EQ - three band EQ created from a tweaked State Variable, which is a basic EQ designed for minimal CPU usage
Biquad - RBJ's biquad derivations including highpass, lowpass, notch, bandpass, high shelf, low shelf and allpass
Butterworth - resonant 24dB Butterworth filter
Moog - four pole ladder filter based on the Moog design

I have given all the filters a quick test so far and they seem to be running okay for me but please let me know if you spot any errors. I have only tested in the free version as I cannot afford the full version, I should have bought it before completing my university studies :(

Download Filters Here

@martignasse - I was impressed with the SDK, it was very quick and simple to add my filter code to the modules and get them to compile :) I did not have to make too many changes to get it working with mingw, just redine min/max and alter a few of the include names if I remember correctly. It probably took about 10 mins to get the template to compile using codeblocks and mingw tdm 4.4.1.2.

23fx23
Member
Posts: 2545
Contact:

Unread post by 23fx23 » 23 Aug 2010, 12:22

Wow cool cool, have to test that tonight, thanks!

User avatar
nay-seven
Site Admin
Posts: 5684
Location: rennes France
Contact:

Unread post by nay-seven » 23 Aug 2010, 12:55

great !
thanks a lot to share
gone to test this soon too :)

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Unread post by martignasse » 23 Aug 2010, 13:10

caco wrote:@martignasse - I was impressed with the SDK, it was very quick and simple to add my filter code to the modules and get them to compile :) I did not have to make too many changes to get it working with mingw, just redine min/max and alter a few of the include names if I remember correctly. It probably took about 10 mins to get the template to compile using codeblocks and mingw tdm 4.4.1.2.
cool, good to know :)

a template module generator is planned to make it even easier ;)

congrats for these nice user modules
Martin FLEURENT - Usine Developer - SDK maintainer

multiphone
Member
Posts: 303
Contact:

Unread post by multiphone » 23 Aug 2010, 16:01

Hello Caco,

Many thanks for the "filter bank" they are very usefull and sound great

Just one smal bug, i think the "gain" in inactive in the Biquad filter.
HB

Lines / Points / Squares

http://www.hervebirolini.com/

caco
Member
Posts: 306
Contact:

Unread post by caco » 23 Aug 2010, 16:24

Thanks, it was just applying gain to the peaking and shelving filters but I have uploaded a modified version that should now hopefully apply gain to all biquads.

multiphone
Member
Posts: 303
Contact:

Unread post by multiphone » 23 Aug 2010, 16:39

What speed !?

Thank you!

All is ok Now.

I am probably a bit demanding but I was wondering if it would be easy to implement a graphical representation of the curve of the filters?

Or maybe an suplementary out like an Array Out ?

I confess that I am very interested in this change. Maybe i'm the only one intressted ?
HB

Lines / Points / Squares

http://www.hervebirolini.com/

caco
Member
Posts: 306
Contact:

Unread post by caco » 23 Aug 2010, 16:42

Am not sure how to do the graphical representation of the curve although I notice one of the built in filter modules does this so perhaps Olivier can explain more?

What would be in the Array Out?

multiphone
Member
Posts: 303
Contact:

Unread post by multiphone » 23 Aug 2010, 17:21

The values of the filters curves... ?

A way to graphic representation with Array ?
HB

Lines / Points / Squares

http://www.hervebirolini.com/

User avatar
nay-seven
Site Admin
Posts: 5684
Location: rennes France
Contact:

Unread post by nay-seven » 23 Aug 2010, 17:48

maybe , you can find inspiration in the patch named simple filter as a first step..?

multiphone
Member
Posts: 303
Contact:

Unread post by multiphone » 23 Aug 2010, 18:17

Hello Nay,

Yes for a bitmap out maybe... but the drawing of the curve is inside the filter object...

Or to connect X/Y pad to Filter value.

But

For "Drawing" in Usine we dont have many choice;

1°) Draw Object (Square and circles)
2°) Array ( But this is graphical sticks)

Other choice ?
Script ?
HB

Lines / Points / Squares

http://www.hervebirolini.com/

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Unread post by martignasse » 23 Aug 2010, 18:25

multiphone wrote:For "Drawing" in Usine we dont have many choice;

1°) Draw Object (Square and circles)
2°) Array ( But this is graphical sticks)

Other choice ?
Script ?
yep, drawing is a lacking area in Usine...

we are thinking about making a pixel area user module, populated with an array of pixel color...

it's maybe the occasion to experiment ?
Martin FLEURENT - Usine Developer - SDK maintainer

multiphone
Member
Posts: 303
Contact:

Unread post by multiphone » 23 Aug 2010, 18:48

Hello Martin !

Yes of course ! Very nice idea this pxel drawing?

I'm ready all this week.
HB

Lines / Points / Squares

http://www.hervebirolini.com/

23fx23
Member
Posts: 2545
Contact:

Unread post by 23fx23 » 23 Aug 2010, 19:25

woa pixel drawing that sound realy nice... but is'nt it what does matrix?

i also would love to be able some how to visualize/manipulate some Eq/filters curves
(there is also line module, but failed to make a filter conversion for now)...

multiphone
Member
Posts: 303
Contact:

Unread post by multiphone » 23 Aug 2010, 19:35

Hello 23FX,

I was wondering when you were going to post a reply about this drawing question.

Yes, I think about the module line but without finding the solution for the filter.
HB

Lines / Points / Squares

http://www.hervebirolini.com/

23fx23
Member
Posts: 2545
Contact:

Unread post by 23fx23 » 23 Aug 2010, 20:18

hi multiphone, i mail from work, no internet at home, my box is down :(
yup think it's a bit more complex than it seems to convert a script to XY values of points for line curves,
still, maybe possible....


multiphone
Member
Posts: 303
Contact:

Unread post by multiphone » 23 Aug 2010, 20:37

Ok, i see... Maybe one day i script that.

@ headphoner : Good ideas are still persistent ;-)
HB

Lines / Points / Squares

http://www.hervebirolini.com/

caco
Member
Posts: 306
Contact:

Unread post by caco » 24 Aug 2010, 09:19

Okay, I had a look at the simple filter example and I would need to draw the filter's frequency response within the user module.

I also noticed that the filter has a bitmap outlet which feeds into the xy pad so I would also need to add that as well but looking at the SDK I cannot see an example of that. I presumably use the ptPointerBitMap TParamType but I have no idea what to do with it wothout digging through the SDK further.

I will investigate how time consuming it would be add the display to the filter as I am short of free time at the moment.

multiphone
Member
Posts: 303
Contact:

Unread post by multiphone » 24 Aug 2010, 09:57

Hello Caco,

Very nice !

Unfortunatly i can help you about the SDK, but Martin i'm sure.

Maybe the ideas of Pixel Area user module is an more generaly response for this case and most of another one.
HB

Lines / Points / Squares

http://www.hervebirolini.com/

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Unread post by martignasse » 24 Aug 2010, 17:55

caco wrote:Okay, I had a look at the simple filter example and I would need to draw the filter's frequency response within the user module.
the first step is to compute some graphic data from the filter algorithm, and the best place is effectively in the user module itself.
caco wrote:I also noticed that the filter has a bitmap outlet which feeds into the xy pad so I would also need to add that as well but looking at the SDK I cannot see an example of that. I presumably use the ptPointerBitMap TParamType but I have no idea what to do with it wothout digging through the SDK further.
the bitmap outlet is automatically added by usine if your module is TModuleInfo->moduletype = mtForm or mtControl (mean it manage a graphic area). the value of this outlet is simply a HBITMAP handle to the bitmap.

of course, you can keep your module as mSimple (without direct graphical feedback) and manually manage that by adding a ptPointerBitMap outlet, thus, you'll have to compute the bitmap data anyway.

the anticipated 'pixel area' is more to convert some arrays data to bitmap, it's more a way to inject some patch level datas into the bitmap chain, i don't think it's the best choice for you.
caco wrote:I will investigate how time consuming it would be add the display to the filter as I am short of free time at the moment.
the DrawTrajectory module sources is a good base to start from (simple example of a mControl module, dealing with a graphical area). Don't hesitate to ask if needed.

hope it help.
Martin FLEURENT - Usine Developer - SDK maintainer

multiphone
Member
Posts: 303
Contact:

Unread post by multiphone » 24 Aug 2010, 22:49

Yes "Draw trajectory" is a good idea if you have the source codes.

From the point of view of "patcher" maybe an array out for a line module are the easyer solution to draw filter curves.
HB

Lines / Points / Squares

http://www.hervebirolini.com/

User avatar
senso
Site Admin
Posts: 4424
Location: France
Contact:

Unread post by senso » 25 Aug 2010, 12:15

hello,
I'm still in on the road but I have time to give some advices.
First @caco, I'm impressed by the quality of your new add-ons. Really an amazing job!

The actual filter module is designed as what we call a "Cook Filter" and internally is a derivate of the 'Line curve' module.
We obtain the plotted bin's using a general formula for drawing a 2nd order IR filter that I can give you. But this formula works only with 2nd order Filters so it will not work for all your add-ons. The solution is to send an impulse (what we call a DIRAC) to your filter and make a FFT to obtain the frequency response.

Then, for drawing, you have 2 possibilities:
- create a bin's outlet and let users to add a 'line module" to draw the frequency response.
- turn your module into a mtControl, as suggest Martin, and draw the curve yourself. This solution is probably the most elegant, but you'll have to learn how to draw in a bitmap, how to use layouts, etc. Far from impossible but more complex.

The bitmap outlet is automatically created on mtControl modules but the content of this bitmap must be drawn by yourself.

senso

ps:I'll be back soon at the office.

caco
Member
Posts: 306
Contact:

Unread post by caco » 25 Aug 2010, 16:35

Thanks for reply Olivier :)

I have a couple of other filters I would like to add first and then when I get some more free time I will investigate the display. I did have had a look through the draw trajectory example and it looks quite simple to draw to a control.

Martin

caco
Member
Posts: 306
Contact:

Unread post by caco » 26 Aug 2010, 19:46

After looking through the draw trajectory example I have a question - how do I get the size of the actual area I can draw in? I have found how to get the module's height and width but this seems to be the full user module size rather than the actual drawable region? I can hack around it by using the width minus 20 pixels, which seems to work okay but I would prefer a more robust solution. thanks :)

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Unread post by martignasse » 26 Aug 2010, 22:12

Hi caco :)
caco wrote:how do I get the size of the actual area I can draw in? I have found how to get the module's height and width but this seems to be the full user module size rather than the actual drawable region? I can hack around it by using the width minus 20 pixels, which seems to work okay but I would prefer a more robust solution. thanks :)
I presume your 20 pixel is about the caption section, and because you draw in pixel scale ? ...

All about drawing is in the canvas class (UserGui.h).
It should provide you the actual drawing area in pixels (called local coord in the SDK) with the 'GetClientAreaWidth()' and 'GetClientAreaHeight()' method.
But you can also draw in coefficient scale (a float from 0 to 1), it's the preferred way.

in both case, the caption is managed by usine, but in coeff mode, you don't have to query the height at resize (or if caption ON/OFF), it's always from 0 to 1.

note that the DrawTrajectory use float arguments to draw, thus use the coeff methods.

... or i completely misunderstood the question...

Hope it help
Martin FLEURENT - Usine Developer - SDK maintainer

caco
Member
Posts: 306
Contact:

Unread post by caco » 27 Aug 2010, 08:48

Thank you martignasse you understood me and answered perfectly :)

I had missed the functions to get the client area dimensions and was using the module's which was causing the difficulties. Thank you for the coeff explanation too, I had been drawing in pixels so I will look at using float 0-1 instead as that may simplify things somewhat.

caco
Member
Posts: 306
Contact:

Unread post by caco » 31 Aug 2010, 15:13

Okay, first test of the filter frequency response display using the Moog filter I posted in the earlier filter pack. Everything is working fine for me here in Usine Free but please let me know how you get on.

If everything is working okay then I will start adding the display to the other filters :)

Image

Download Here

Floego
Member
Posts: 319
Location: Venezuela
Contact:

Unread post by Floego » 31 Aug 2010, 15:59

It seems to be working ok, with no clicks or pops, good quality filter! :)

User avatar
senso
Site Admin
Posts: 4424
Location: France
Contact:

Unread post by senso » 31 Aug 2010, 17:08

maybe you could delete some unnecessary lines in the layout ?

Code: Select all

'index color'
'index width'

caco
Member
Posts: 306
Contact:

Unread post by caco » 31 Aug 2010, 17:13

Well spotted Senso, that is a misplaced copy&paste from the draw trajectory example :)

I will remove them from future versions.

User avatar
senso
Site Admin
Posts: 4424
Location: France
Contact:

Unread post by senso » 31 Aug 2010, 17:35

but it's a great job anyway!!!

caco
Member
Posts: 306
Contact:

Unread post by caco » 31 Aug 2010, 17:42

Thanks Senso :)

It turned out to be a good learning experience for me to understand the FFT process in more detail so I am pleased that multiphone asked for the display. Now on with the rest of the filters..

multiphone
Member
Posts: 303
Contact:

Unread post by multiphone » 01 Sep 2010, 00:26

Hello Caco !

Sorry i'm in another planet the two last days.

Very nice ! And thanks for your job !

Very clear and elegant now.
HB

Lines / Points / Squares

http://www.hervebirolini.com/

23fx23
Member
Posts: 2545
Contact:

Unread post by 23fx23 » 01 Sep 2010, 02:00

Yes great job!

User avatar
nay-seven
Site Admin
Posts: 5684
Location: rennes France
Contact:

Unread post by nay-seven » 01 Sep 2010, 08:08

Thanks again !

caco
Member
Posts: 306
Contact:

Unread post by caco » 01 Sep 2010, 10:04

Since it seems to be working okay I have added the display to the SVF and Butterworth filters, and updated the Moog filter's display as it only functioned correctly at a samplerate of 44.1k

Still got the Biquads and SVF EQ to finish off

Download Filters

@Senso or Martignasse - At the moment I am getting the samplerate from TMasterInfo during InitModule. What happens if the user then changes Usine's samplerate and how do I get updated about this? Does InitModule get called again or do I have to check elsewhere that the samplerate has not altered? In the VSTSDK you would generally check the samplerate during calls to suspend() or resume().

Thanks,

Martin

caco
Member
Posts: 306
Contact:

Unread post by caco » 01 Sep 2010, 15:02

I was on a roll so I have added in the biquads and SVF EQ so all the current filters now come with frequency response displays :)

Download Filters

Still have a few more filters to add next..

23fx23
Member
Posts: 2545
Contact:

Unread post by 23fx23 » 01 Sep 2010, 17:01

So much thanks for this!

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Unread post by martignasse » 01 Sep 2010, 17:57

caco wrote:@Senso or Martignasse - At the moment I am getting the samplerate from TMasterInfo during InitModule. What happens if the user then changes Usine's samplerate and how do I get updated about this? Does InitModule get called again or do I have to check elsewhere that the samplerate has not altered? In the VSTSDK you would generally check the samplerate during calls to suspend() or resume().
pointer to TMasterInfo is stored in TUserModule->m_masterInfo (protected member of the module base class) at init(). So, in your module, you can make a method to query the samplerate from it. Normally, the info should be updated in TMasterInfo when changed by usine, tell us if it's not the case.

Hope it help

and good job on module UI, those filters are rocks :)
Martin FLEURENT - Usine Developer - SDK maintainer

caco
Member
Posts: 306
Contact:

Unread post by caco » 01 Sep 2010, 20:40

Thanks for your reply martignasse. So rather than there being a specific method called by Usine, the samplerate in m_masterinfo will just be updated. That keeps things simple as I can just poll m_masterinfo routinely and if it has changed I can reinitialize my filters. Will add this into a future update.

caco
Member
Posts: 306
Contact:

Unread post by caco » 02 Sep 2010, 14:18

Added another filter to the pack. This is an experimental version of the Moog filter in which the ladders are 'detuned' in such a way as to produce two resonant peaks tuned a perfect fifth apart. With a standard filter you would normally only have a resonant peak at the octave and then integer multiples of the cutoff. It does gets a bit unstable at settings with high frequency and resonance but it gives interesting sounds with filter sweeps due to the musical interval of a fifth between the peaks.

Also updated all the other filters so that they should now pay better attention to samplerate changes

Download filters here

User avatar
senso
Site Admin
Posts: 4424
Location: France
Contact:

Unread post by senso » 02 Sep 2010, 22:12

you're incredibly fast! just a killer...
just few details i found:

Biquad : Q could be with a logarithm scale?
other filters: Q could be with a logarithm scale, (actually exponential)?
In the state variable EQ, 3 parameters are empty (blank caption)?

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Unread post by martignasse » 03 Sep 2010, 08:39

yes, really good job on theses modules :cool:

and a great demonstration of the SDK usability :D
Martin FLEURENT - Usine Developer - SDK maintainer

caco
Member
Posts: 306
Contact:

Unread post by caco » 03 Sep 2010, 09:48

@Senso - Thank you for the feedback. I have removed the blank parameters from the state variable eq and changed the resonance to log scale in the biquad filter. Do you think all filters should have a log scale for resonance? So far they are all exp apart from the new version of the biquad.

@martignasse - the sdk is very usable, it makes it easy for me to expand Usine for my needs and create new modules quickly and easily. Thanks for all your advice :)

I may add another few filters I am working on soon but in the meantime I will have a look at how to add a page to the wiki to document all the filters next.

And after that I have a few other modules I would like to add...

23fx23
Member
Posts: 2545
Contact:

Unread post by 23fx23 » 03 Sep 2010, 10:05

yeah that rocks! keepon'

User avatar
senso
Site Admin
Posts: 4424
Location: France
Contact:

Unread post by senso » 03 Sep 2010, 10:57

@Senso - Thank you for the feedback. I have removed the blank parameters from the state variable eq and changed the resonance to log scale in the biquad filter. Do you think all filters should have a log scale for resonance? So far they are all exp apart from the new version of the biquad.
cool!

The logscale is, from my point of view, more appropriate since there is generally more audible difference between [0..5%] than between [90..95%]?
Moreover, the most important is to keep the same behavior with all the filters, especially regarding the built-in filter of Usine, They should have the same look and feel, be homogeneous?

Also, I have noticed that in the StateVariable you only draw the low-pass curve. Maybe you can add a selector (combo-box) to choose which curve we want to display?

senso+++

multiphone
Member
Posts: 303
Contact:

Unread post by multiphone » 03 Sep 2010, 11:50

Hello Caco,

First thanks for your great job on filter. This filter offer to Usine a new "sounds colors" and that's for me the most important things. I'm making sound tests with your filter and i have some comments.

In State variable EQ: I'ts sem to be very nice to choose the frequency of LF, MF, HF ?

For the drawing of state variable EQ you draw the result curve of three filter or only the LPF as Senso say ?
HB

Lines / Points / Squares

http://www.hervebirolini.com/

caco
Member
Posts: 306
Contact:

Unread post by caco » 03 Sep 2010, 13:39

senso wrote:cool!

The logscale is, from my point of view, more appropriate since there is generally more audible difference between [0..5%] than between [90..95%]?
Moreover, the most important is to keep the same behavior with all the filters, especially regarding the built-in filter of Usine, They should have the same look and feel, be homogeneous?

Also, I have noticed that in the StateVariable you only draw the low-pass curve. Maybe you can add a selector (combo-box) to choose which curve we want to display?

senso+++
All done :)

All filters now use a log scale for resonance and the state variable filter now offers a choice of plotting low, high, band or notch outputs.
multiphone wrote:In State variable EQ: I'ts sem to be very nice to choose the frequency of LF, MF, HF ?
I think I will leave the frequency bands fixed in the SVF EQ. The reason for this is that it is a cheap trick with the SVF filter to create a three-band EQ yet only use the CPU usage of a single filter. The bands can not not be altered seperately as a single SVF has just one cutoff. Raising the cutoff would increase the frequency for the low band but warp the frequency width and position of the mid and high band. I have picked the current setting as they give similar sized high/low bands using a log frequency scale with the mid band positioned midway across the frequency range.

To create a true three-band EQ use three of my biquads - a lowshelf, highshelf and peaking filter in series and then all three bands can be individually set. The only downside is that you get three different displays then.

Maybe I should add a separate three band EQ to the pack made up of three biquads? It just creates a large module with a lot of parameters for the user to set though - 3 x gain, 3 x frequency, 3 x resonance, master gain etc. In a modular host like Usine maybe people should just create their own from my filter modules? Is much more flexible that way :)

download filter pack here

multiphone
Member
Posts: 303
Contact:

Unread post by multiphone » 03 Sep 2010, 14:54

Yes Caco your right !

But, if i want to create my own EQ 3 Band with three biquad for exemple the problem is to draw the result of the filter curve.

As you see i use the bitmap in and out:

Image

but, maybe i'ts detail for now, beacose the major use of this filter are for me sound design first and not sound ingeneering.
HB

Lines / Points / Squares

http://www.hervebirolini.com/

Floego
Member
Posts: 319
Location: Venezuela
Contact:

Unread post by Floego » 03 Sep 2010, 16:03

Hervé, do you mean drawing an envelope curve?
btw, couldn't be nice to control the freq and gain using an XY pad for each curve?

multiphone
Member
Posts: 303
Contact:

Unread post by multiphone » 03 Sep 2010, 18:46

Hello floego,

Of course, X/Y is the solution for control parameters, but for drawing the result curve of Three filter... I dont have any ideas.
HB

Lines / Points / Squares

http://www.hervebirolini.com/

caco
Member
Posts: 306
Contact:

Unread post by caco » 06 Sep 2010, 10:14

I have uploaded the latest version of the filters to the add-on section now and added a wiki page.

I have also started an 'official' thread in the additional packs section of the forum so people can find it easier and if anyone has questions they don't have to read through all my discussions about using the SDK :)

23fx23
Member
Posts: 2545
Contact:

Unread post by 23fx23 » 06 Sep 2010, 14:41

thank ya caco, really appreciated'

Post Reply

Who is online

Users browsing this forum: No registered users and 112 guests