Support

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

Freely Configurable Filter

DSP related issues, mathematics, processing and techniques

Re: Freely Configurable Filter

Postby KG_is_back » Mon Sep 03, 2018 10:24 pm

martinvicanek wrote:Julius O. Smith is a good source:
https://www.dsprelated.com/freebooks/sa ... esign.html


OMFG! It has never occurred to me that ln(frequency domain)=ln(magnitude)+i*phase
Cepstrum always seemed like just an "engineering" solution to pitch detection. It has never occurred to me that it could actually be a "mathematical" solution to something... I think I'm having the biggest nerdgasm since I discovered orbital rings.
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Freely Configurable Filter

Postby Spogg » Tue Sep 04, 2018 8:07 am

martinvicanek wrote:
Spogg wrote:I’m wondering if this could be used to accurately match a spectral profile for mastering somehow. Spogg

Like this?
viewtopic.php?f=2&t=3972&start=50#p22927


Well, yes! I now recall seeing this before :oops:

Cheers

Spogg
User avatar
Spogg
 
Posts: 3317
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: Freely Configurable Filter

Postby guyman » Wed Sep 26, 2018 7:36 pm

I have hella ideas for this. For one - it would be great to hold a button when creating another dot that locks the y-axis (to the next closest dot?) so that one can create flat tops to curves super quick, I don't know if it should lock y axis to the closest, the highest, the lowest, or different key functions for each option, but that would make it more intuitive to use. I've experimented with spline EQs before, and the unique sound of the filter shapes you can create are amazing - but as a mix artist, they are not the most "emotional" way of eq-ing a sound, it's less musical and intuitive to use, really guess and check.

maybe even generate two points simultaneously... like draw point A, and hold key functions to generate point B... x distance away along the freq/x axis... to the left or tight.. and drag and hold while holding key function to increase and decrease distance.. to raise entire regions along the spline/x axis... super helpful when eqing...

In addition to easy flat top segments, it would be great to have intuitive peaking. Imagine this... you have to points (A & B), and create a third (C) in the middle, it draws straight lines from each outer dot to the inner (AC & CB) - BUT when you hold a key stroke function, TWO MORE dots appear (D & E) along AC and CB. D & E are y axis locked with A & B, but the distance is adjustable from A C & B, while maintaining relativity. this basically allows for somthing comparable for Q width to be manages while editing C's gain between A & B. like straight lined peak filters... i Dunno sounds hella cool... maybe impractical.....
User avatar
guyman
 
Posts: 199
Joined: Fri Mar 02, 2018 8:27 pm

Re: Freely Configurable Filter

Postby guyman » Thu Sep 27, 2018 1:30 am

Maybe even solo spline segments to listen while eqing.....
User avatar
guyman
 
Posts: 199
Joined: Fri Mar 02, 2018 8:27 pm

Re: Freely Configurable Filter

Postby guyman » Wed Jan 23, 2019 8:51 pm

anyway to get a hz and db readout on the filter points???

Also an extended range of where to place point would be awesome.... Say 13.5hz to 27648..

Also is Zero phase possible ? If not... why?

Thank you King Martin !!
User avatar
guyman
 
Posts: 199
Joined: Fri Mar 02, 2018 8:27 pm

Re: Freely Configurable Filter

Postby chjan » Tue Jul 21, 2020 9:22 am

This is an amazing tool. After some testing, here are my comments and questions. Thanks for any response.

1. In linear mode, the group delay should be constant and (as far as I know) be equal to (N-1)/2, where N = number of taps. In a DSP algorithm involving recursive feedback with a particular delay (some samples) on the feedback, involving a IIR HP filter, this filter was replaced by Martin's FIR module. The reference is no filter, which by audible inspection has such and such result. The HP filter limits the working area of the feedback loop. (Has to do with acoustic cross talk "elimination", done in the digital domain.

Thus, the main signal was delayed (N-1)/2 samples, however, then the algorithm collapses, i.e., this delay was not correct, i.e. the main signal and the feedback signal is not in a mandatory "time sync".

Therefore, the normal delay module was replaced with Martin Vicanek's module ALSO on the main signal, but without any filtering, i.e. the purpose was to cause a correct delay.

Result? Now the algoritm works, but by comparing via audible inspection to a variant with no filter on the feedback loop, the result is more mediocre. The most likely reason I have found, would be that Vicaneks module does not result in a constant group delay, there must be some phase shift involved. (Based on my experience on how phase shifts impact (diminish) the algorithm.

Questions:

a) What is the actual delay in samples through this FIR module? (Stating 1024 taps).
b) How linear is the linear version. Is there an inaccuracy here, but perhaps not larger than it could still be called "linear phase"?

2. Would it be much work to enhance the FIR filter with a user defined number of taps? Because I would like the option to test a "brickwall-ish" HP filter at lower frequencies, e.g. between 100 and 200 Hz, requiring more taps.

3. Not only is this FIR module brilliant in itself, but it also has a proper BODE diagram with logaritmic X scale on "de facto" format. This is very good when comparing results with other software packages, e.g. REW; Room Eq Wisard.

Has someone released such a bode diagram for others to use?

4. Has someone released a tool that is good for studying phase and samples delay?

5. I also mention that my (only) problem with Flowstone (latest beta but has been so always) is that as soon as you connect in a plot diagram, then CPU usages raises to unheard levels (+10% cpu on a i7 processor). So if anyone has made (perhaps in Ruby) a plot diagram that does not eat CPU, I would be happy to hear about it. Example: The resulting plot diagram in Martin Vicaneks FIR module is causing +10% cpu, but when removed so that only the "drawing the filter" diagram is left, the cpu drops to 0.5% for a mono signal.

Again, thanks for any response!
chjan
 
Posts: 30
Joined: Wed Oct 22, 2008 3:15 pm

Re: Freely Configurable Filter

Postby martinvicanek » Tue Jul 21, 2020 8:11 pm

chjan wrote:In linear mode, the group delay should be constant and (as far as I know) be equal to (N-1)/2, where N = number of taps.
That`s correct in principle, however the implementation in my schematic has a larger delay (1536 samples) because it uses a straight blockwise convolution. With some extra effort (and CP load) the 1024 samples extra latency may be removed (so-called partitioned convolution).

In a DSP algorithm involving recursive feedback with a particular delay (some samples) on the feedback, involving a IIR HP filter, this filter was replaced by Martin's FIR module. The reference is no filter, which by audible inspection has such and such result. The HP filter limits the working area of the feedback loop. (Has to do with acoustic cross talk "elimination", done in the digital domain.
[...]
Unfortunately I don't understand what your goal is there. Is that some known DSP algorithm? Perhaps you have a reference?

Questions:

a) What is the actual delay in samples through this FIR module? (Stating 1024 taps).
1536 samples
b) How linear is the linear version. Is there an inaccuracy here, but perhaps not larger than it could still be called "linear phase"?
I would say it is linear phase within the limits of single precision. You can check by feeding the filter with a single pulse and see that the impulse response is symmetric.

2. Would it be much work to enhance the FIR filter with a user defined number of taps? Because I would like the option to test a "brickwall-ish" HP filter at lower frequencies, e.g. between 100 and 200 Hz, requiring more taps.
I can offer 1024, 2048, 4092 taps etc. User defined filter length would be more work, yes.

3. Not only is this FIR module brilliant in itself, but it also has a proper BODE diagram with logaritmic X scale on "de facto" format. This is very good when comparing results with other software packages, e.g. REW; Room Eq Wisard.

Has someone released such a bode diagram for others to use?
There are Bode diagrams (even including phase) from various sources burried in the forum posts.

4. Has someone released a tool that is good for studying phase and samples delay?

5. I also mention that my (only) problem with Flowstone (latest beta but has been so always) is that as soon as you connect in a plot diagram, then CPU usages raises to unheard levels (+10% cpu on a i7 processor). So if anyone has made (perhaps in Ruby) a plot diagram that does not eat CPU, I would be happy to hear about it. Example: The resulting plot diagram in Martin Vicaneks FIR module is causing +10% cpu, but when removed so that only the "drawing the filter" diagram is left, the cpu drops to 0.5% for a mono signal.

Again, thanks for any response!

Drawing tends to be CPU heavy in FS, but with some care one can often bring it down to acceptable levels. First thing to do is avoid trigger avalanches. Then be reasonable about resolution: how many points do you need? It may help to work with log spaced data. Finally, folks around here can optimize Ruby code. (The FFT analyzer in my schematic is NOT optimized for fast drawing at all).
User avatar
martinvicanek
 
Posts: 1315
Joined: Sat Jun 22, 2013 8:28 pm

Re: Freely Configurable Filter

Postby chjan » Thu Jul 23, 2020 9:25 am

1. I tested with 1536 samples delay and now it works, confirmative. Not expecting any free lunch I am very interested in discussing how to enable a set of alternative taps according to your suggested alternatives. I will spend a few days with a fir program and try to create conclusions on minimum taps needed for my case.

2. Your "draw a filter" display, could it be generalized to be a general low cpu tool for displaying SPL and phase? Perhaps others in this forum could contribute...? FS is such a great tool, if it wasnt for the CPU intensive GUI solutions.

3. The DSP is a cross talk removal algorithm, not unlike general Ambiophonics. I wrote the first ever software for Ambiophonics some 12-13 years ago, originally using SynthMaker. Later moved to Java for cross platform compliance. See soundpimp.com and let me know if you want a copy of it.

SoundPimp uses a java wrapper on native code for audio, JasioHost. It means Java is performing equal to native code regarding e.g. Latency. JasioHost was an open source initiative of mine and is today used in e.g. REW, a very popular measurement kit for speaker developement (which I also do) and room correction. I anticipate it is well known here as well.

4. Soundpimp (will be renamed to AudioBloomer) is going into a box, based on the AURORA DSP card, a kickstarter project we were involved in. But I am using FS for prototyping in software, of this and that feature that shall be added. AudioBloomer uses a 4ch system with the DSP error corrective signal in back channel. This is a revelation compared to normal 2channel crosstalk solutions. You get a full 180 degree soundstage if the recording says so.
chjan
 
Posts: 30
Joined: Wed Oct 22, 2008 3:15 pm

Re: Freely Configurable Filter

Postby MichaelBenjamin » Thu Jul 23, 2020 11:59 pm

.
Last edited by MichaelBenjamin on Mon Sep 21, 2020 10:56 am, edited 1 time in total.
MichaelBenjamin
 
Posts: 275
Joined: Tue Jul 13, 2010 1:32 pm

Re: Freely Configurable Filter

Postby chjan » Tue Jul 28, 2020 7:03 am

Sorry, please enlighten me, what is fcf?
chjan
 
Posts: 30
Joined: Wed Oct 22, 2008 3:15 pm

PreviousNext

Return to DSP

Who is online

Users browsing this forum: No registered users and 4 guests