Jump to content


Photo

New Tool (3.0) Offline Filter

DSP Biquad Filter Offline processing

  • Please log in to reply
17 replies to this topic

#1 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 709 posts
  • Gender:Male
  • Location:London

Posted 23 May 2015 - 10:15

Screen Shot 2017-01-03 at 11.00.51.png

 

This started off as an attempt to learn how filters are programmed but turned into something that could be useful to some of you.

 

It is an implementation of a Biquad filter offering Lowpass, Highpass, Bandpass and Band Reject modes.

It also offers a distortion stage before the filter is applied. 

 

The filter is applied to the currently selected sample and can be launched via the tools menu or the sample process menu

 

All of the controls have tooltips which explain what they do.

 

Enjoy!

 

 

EDIT: Updated to 1.1 - Added 'Tube' (tanh) distortion type 

Attached Files


Edited by afta8, 03 January 2017 - 12:05.

  • Ledger, Conner_Bw, Djeroek and 3 others like this

#2 lhaastdaiz

lhaastdaiz

    Advanced Member

  • Normal Members
  • PipPipPip
  • 119 posts

Posted 23 May 2015 - 12:25

Love the distortion in this thing. Sounds very smooth, even after repeated processing with extreme settings. Tried to make a long break sample sound awful and failed. Even a little bit of sweep seems to leave something nice in the sample.

 

Thanks very much.


  • afta8 likes this

#3 Meef Chaloin

Meef Chaloin

    Big GrandDaddy Member

  • Normal Members
  • PipPipPipPipPipPipPipPip
  • 466 posts
  • Gender:Male

Posted 24 May 2015 - 18:45

This is really great, it does sound really nice. It would be nice if it could create a sine kind of sweep as well as up/down sweeps too (unless it can and I'm just missing something).


  • afta8 and catchphrase like this

#4 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 709 posts
  • Gender:Male
  • Location:London

Posted 24 May 2015 - 19:04

Thanks for the feedback guys..

Love the distortion in this thing. Sounds very smooth, even after repeated processing with extreme settings. Tried to make a long break sample sound awful and failed. Even a little bit of sweep seems to leave something nice in the sample.

 

Yeah there seems to be something about offline processing compared to realtime DSP which makes it smoother to my ears, I find this with the CDP tools too.

The distortion in itself is nothing special, 'clip' mode is just digital clipping which if pushed hard enough is going to approximate to square waves, 'fold' will eventually approximate to noise. Another factor at play is that the output sample will never clip it is always scaled back to the normal range which makes it easier to push the ranges.

This is really great, it does sound really nice. It would be nice if it could create a sine kind of sweep as well as up/down sweeps too (unless it can and I'm just missing something).


If you push the resonance far enough you will basically get sine waves, try the 'Res Range' on 1000 and sweep the frequency between say 200 to 800 and you should get sine waves.

#5 Meef Chaloin

Meef Chaloin

    Big GrandDaddy Member

  • Normal Members
  • PipPipPipPipPipPipPipPip
  • 466 posts
  • Gender:Male

Posted 24 May 2015 - 19:39

If you push the resonance far enough you will basically get sine waves, try the 'Res Range' on 1000 and sweep the frequency between say 200 to 800 and you should get sine waves.

 

Oh that's not quite what I meant. I mean the shape of the sweep rather than the sound of it. Maybe a midway freq slider so the start and end frequencies could be the same but it will filter up/down and then return to where it started.



#6 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 709 posts
  • Gender:Male
  • Location:London

Posted 25 May 2015 - 21:57

Aah, doh! I understand what you mean now, I have thought about adding support for Renoise instrument envelopes for the filter, you rmidway slider seems doable too. I'll look into it


  • Meef Chaloin likes this

#7 emre_k

emre_k

    Big Daddy Member

  • Normal Members
  • PipPipPipPipPipPipPip
  • 432 posts

Posted 26 May 2015 - 20:46

Fantastic tool as always! I made a blog post featuring this. Will definitely be using this a lot.

 

Would it be possible to have more advanced envelope controls?


  • afta8 and ••H∑X∑R•• like this

#8 ••H∑X∑R••

••H∑X∑R••

    Advanced Member

  • Normal Members
  • PipPipPip
  • 85 posts
  • Gender:Male
  • Location:Iowa
  • Interests:sonic driving/entrainment, trance states, music and imagery, additive and modal rhythm, synthesis, sound design, permaculture, hand percussion, capoeira angola

Posted 27 May 2015 - 17:09

Nice post, emre!

 

That bass sounds pretty sick.


  • emre_k likes this

dark psychedelic sludge music

 


#9 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 709 posts
  • Gender:Male
  • Location:London

Posted 27 May 2015 - 22:41

Thats very cool emre, nice one!


  • emre_k likes this

#10 toblerpone

toblerpone

    Guruh Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPip
  • 902 posts
  • Gender:Not Telling
  • Location::c

Posted 28 May 2015 - 04:00

could you make a linear phase version as well? :P



#11 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 709 posts
  • Gender:Male
  • Location:London

Posted 31 May 2015 - 17:51

Ha! :)

Yeah sure I can try, although i'm not sure how much use a linear phase version would be in an offline filter. I can see the benefit for a real time filter where you want everything in phase. Maybe a phase shift option that lets you move the resulting sample forward or back by a number of samples will suffice here.



#12 toblerpone

toblerpone

    Guruh Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPip
  • 902 posts
  • Gender:Not Telling
  • Location::c

Posted 31 May 2015 - 22:25

For filtering a single cycle waveform, the sample would need to be internally repeated and the last periodic waveform taken, for a correct result. But I could hack that in later on.


  • afta8 likes this

#13 Mykra

Mykra

    Member

  • Normal Members
  • PipPip
  • 41 posts

Posted 02 January 2017 - 11:46

This is BRILLIANT! So handy.

 

Thanks.



#14 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 709 posts
  • Gender:Male
  • Location:London

Posted 03 January 2017 - 12:04

This is BRILLIANT! So handy.

 

Thanks.

 

Glad you like it :)

 

I've done a minor update to this and added a "Tube" distortion type, see first post 


  • neopan likes this

#15 Mykra

Mykra

    Member

  • Normal Members
  • PipPip
  • 41 posts

Posted 03 January 2017 - 22:45

That's a nice addition, thanks again!

 

A Peaking Eq type would be another welcome addition ;)



#16 neopan

neopan

    Advanced Member

  • Normal Members
  • PipPipPip
  • 82 posts

Posted 06 January 2017 - 06:11

being curious, is this oversampled?

 

also could you implement something like this: https://www.ntnu.edu...bmission_21.pdf

http://ant-s4.unibw-...paper_16-PN.pdf

(both flexible nonlinear saturation based on 3 tanh instead of one)

 

or this: http://dafx10.iem.at..._DAFx10_P12.pdf

(tube pre based on Koren's model)

 

i think it would be nice to eventually have something like one of these as update for the native renoise tanh saturator... 

 

(my hope is, if someone codes it in LUA Taktik is willing to translate it to Renoise++ :D  )

 

ps. i implemented Andy Cytomic's SVF from his notes in LUAjit, though i think it's another approach of biquads it won't be very usefull here (and my LUA code sucks balls, but it works) 

 

Glad you like it :)

 

I've done a minor update to this and added a "Tube" distortion type, see first post 

 


  • afta8 and ffx like this

#17 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 709 posts
  • Gender:Male
  • Location:London

Posted 06 January 2017 - 15:05

being curious, is this oversampled?

 

also could you implement something like this: https://www.ntnu.edu...bmission_21.pdf

http://ant-s4.unibw-...paper_16-PN.pdf

(both flexible nonlinear saturation based on 3 tanh instead of one)

 

or this: http://dafx10.iem.at..._DAFx10_P12.pdf

(tube pre based on Koren's model)

 

i think it would be nice to eventually have something like one of these as update for the native renoise tanh saturator... 

 

(my hope is, if someone codes it in LUA Taktik is willing to translate it to Renoise++ :D  )

 

ps. i implemented Andy Cytomic's SVF from his notes in LUAjit, though i think it's another approach of biquads it won't be very usefull here (and my LUA code sucks balls, but it works) 

 

I wish I had the math skills to understand those papers :)

 

There is no oversampling involved here however, this is a really basic implementation adapted from this website: http://www.earlevel....-c-source-code/

 

The tube implementation is also very simple, just stick the sample data through math.tanh() took me all of two minutes to implement :)

 

I can't really see myself developing this tool much further but do feel free to hack it

 

However if you are willing to share the SVF lua code you did then that would be interesting.



#18 neopan

neopan

    Advanced Member

  • Normal Members
  • PipPipPip
  • 82 posts

Posted 08 January 2017 - 11:49

pm'ed :)

 

I wish I had the math skills to understand those papers :)

 

There is no oversampling involved here however, this is a really basic implementation adapted from this website: http://www.earlevel....-c-source-code/

 

The tube implementation is also very simple, just stick the sample data through math.tanh() took me all of two minutes to implement :)

 

I can't really see myself developing this tool much further but do feel free to hack it

 

However if you are willing to share the SVF lua code you did then that would be interesting.


  • afta8 likes this





Also tagged with one or more of these keywords: DSP, Biquad Filter, Offline processing