Jump to content


Photo

New Tool (3.0) Offline Filter

DSP Biquad Filter Offline processing

  • Please log in to reply
30 replies to this topic

#1 afta8

afta8

    Big Super GrandMasta Member

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

Posted 23 May 2015 - 10:15

Screen Shot 2018-03-29 at 23.55.26.png

 

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

 

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:

v1.1 - Added 'Tube' (tanh) distortion type

v1.2 - Added Breakpoint Envelope Editor 

v1.3 - Added Presets system for Envelope Editor

Attached Files


Edited by afta8, 29 March 2018 - 23:58.

  • Ledger, Conner_Bw, Djeroek and 6 others like this

#2 lhaastdaiz

lhaastdaiz

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 121 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 Masta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPip
  • 527 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 catchpharse like this


#4 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 751 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 Masta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPip
  • 527 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
  • 751 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
  • 98 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

https://soundcloud.com/zensphere

 

 


#9 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 751 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
  • 905 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
  • 751 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
  • 905 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
  • 751 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
  • 84 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
  • 751 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
  • 84 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

#19 afta8

afta8

    Big Super GrandMasta Member

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

Posted 25 March 2018 - 21:37

Updated to 1.2 - Added a breakpoint envelope editor which is constrained to the low and high frequency settings.

See first post for file download.

 

post-4451-0-31036900-1522010104.png

 

Enjoy! 


Edited by afta8, 25 March 2018 - 21:38.

  • danoise, Djeroek, dblue and 2 others like this

#20 ffx

ffx

    Composes without Wires burns Directly from Brain to DVD that is already in Store Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 3521 posts
  • Gender:Not Telling

Posted 26 March 2018 - 10:19

Hi, this is great. Thanks.

 

I have a feature request:

 

A start/end value for each parameter, so maybe a general multi point curve which is usable for any parameter. e.g. you could make a selection, and then define 0% wet at start 100% at middle and 0% wet at the end.

 

Also keep in mind (maybe you already did), that some parameter maybe will require a slight interpolation, so no crackles and less aliasing will appear on parameter change.


  • afta8 likes this

Test system: macOS 10.13.4, HFS+. Firewire Audio, i7 4770, 8GB Ram, GTX1050 2GB, 48kHz
GUI Automation RecorderNative DSP Context MenuTuned ShortcutsUnified Value Shift And Transpose | Jump To From Send Modified (Docs) | Quick Template | Nisanmol's Groove Tool FixedThemes


#21 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6797 posts
  • Gender:Male
  • Location:Borneo

Posted 26 March 2018 - 15:57

 

post-4451-0-31036900-1522010104.png

Offline processing samples in the sample editor using envelopes is so powerful for sounddesign  :drummer: . Although you can do something similar using the automation editor, it isn't that quickly to set-up like in this tool. You''ll have to insert a note-event in the pattern editor, add a (vst)effect, draw an envelope in the automation editor for a particular parameter, make a selection in the pattern editor that covers the note or enable autoseek and use 'render to sample'. The 'FX' button in the sample editor is static, like a snapshot..perhaps too user specific or niche, but an envelope breakout box underneath the vst(i) window for offline processing like in this tool that scales the drawn envelope to a samples length in time would be great imo. *edit; excuse the minor hijack, got carried away fantasizing ;-) .


Edited by Djeroek, 26 March 2018 - 15:59.

  • afta8 likes this

#22 afta8

afta8

    Big Super GrandMasta Member

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

Posted 26 March 2018 - 17:32

A start/end value for each parameter, so maybe a general multi point curve which is usable for any parameter. e.g. you could make a selection, and then define 0% wet at start 100% at middle and 0% wet at the end.

 

Also keep in mind (maybe you already did), that some parameter maybe will require a slight interpolation, so no crackles and less aliasing will appear on parameter change.

 

I was thinking of having multiple envelopes in a tabbed view so you could also select an envelope for resonance, dry/wet, distortion.. I think this would do what you want right?


  • ffx likes this

#23 afta8

afta8

    Big Super GrandMasta Member

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

Posted 26 March 2018 - 17:43

Offline processing samples in the sample editor using envelopes is so powerful for sounddesign  :drummer: . Although you can do something similar using the automation editor, it isn't that quickly to set-up like in this tool. You''ll have to insert a note-event in the pattern editor, add a (vst)effect, draw an envelope in the automation editor for a particular parameter, make a selection in the pattern editor that covers the note or enable autoseek and use 'render to sample'. The 'FX' button in the sample editor is static, like a snapshot..perhaps too user specific or niche, but an envelope breakout box underneath the vst(i) window for offline processing like in this tool that scales the drawn envelope to a samples length in time would be great imo. *edit; excuse the minor hijack, got carried away fantasizing ;-) .

 

It is more powerful than I originally imagined.. the dry/wet parameter is quite useful as you can add subtleties and textures but retain an essence of the original sound.. I'm surprised at how much variety you can get with just a filter and distortion.

 

Your fantasy idea is pretty good (as usual!).. I think it is technically possible to do it like this and not depart too much away from this tool design.. you could have a drop down list that selects the effect and another to select the parameter(s) you want to automate. Translating this to something that can be rendered and loaded back in behind the scenes should be do-able, but perhaps a bit fiddly.. perhaps doing this with native DSP to start with... You have me thinking :)


  • Djeroek likes this

#24 ffx

ffx

    Composes without Wires burns Directly from Brain to DVD that is already in Store Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 3521 posts
  • Gender:Not Telling

Posted 26 March 2018 - 18:02

I was thinking of having multiple envelopes in a tabbed view so you could also select an envelope for resonance, dry/wet, distortion.. I think this would do what you want right?

 

 

Oh yes! Or just clicking the labels on the left, and the matching editor will be shown. So no need for having tabs. And "Filter Env" to "Cutoff", only showing a slider, too. So you could do it in oo way or so.


Edited by ffx, 26 March 2018 - 18:40.

Test system: macOS 10.13.4, HFS+. Firewire Audio, i7 4770, 8GB Ram, GTX1050 2GB, 48kHz
GUI Automation RecorderNative DSP Context MenuTuned ShortcutsUnified Value Shift And Transpose | Jump To From Send Modified (Docs) | Quick Template | Nisanmol's Groove Tool FixedThemes


#25 ffx

ffx

    Composes without Wires burns Directly from Brain to DVD that is already in Store Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 3521 posts
  • Gender:Not Telling

Posted 26 March 2018 - 19:10

Oh and then, maybe also a "dry" slider ? \o/  So you could use this tool also for volume changes.


Edited by ffx, 26 March 2018 - 19:11.

Test system: macOS 10.13.4, HFS+. Firewire Audio, i7 4770, 8GB Ram, GTX1050 2GB, 48kHz
GUI Automation RecorderNative DSP Context MenuTuned ShortcutsUnified Value Shift And Transpose | Jump To From Send Modified (Docs) | Quick Template | Nisanmol's Groove Tool FixedThemes






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