eqfil and decibel cuts and boosts
Date | 2016-05-09 20:54 |
From | Aaron Krister Johnson |
Subject | eqfil and decibel cuts and boosts |
Hi, I want to emulate a graphical eq application, and apply cutting and boosting to 10 octave bands (basically, a 10-band graphical eq with 31, 63, 125, 250, 500, 1K, 2K, 4K, 8K, and 16K center frequencies) I have been using the plugin for EQ in Linux's audacious, and I have the DB boost and cut parameters in decibels, but when I try and emulate what audacious is doing (and which I like very much for my mix); I'm not able to get the same sound. I suspect it's b/c the gain parameter isn't scaling correctly, even though I'm using ampdb to do a conversion for it. And, perhaps, the bandwidth isn't working as it is in the plugin, either. Any tips? I'm thinking Victor Lazzarini would know, being the author of 'eqfil'. Thanks, |
Date | 2016-05-09 21:32 |
From | Victor Lazzarini |
Subject | Re: eqfil and decibel cuts and boosts |
Well, I’ve used eqfil and it does what it says on the manual page, but it’s not the same to say that it would emulate an arbitrary equaliser. ======================== Dr Victor Lazzarini Dean of Arts, Celtic Studies and Philosophy, Maynooth University, Maynooth, Co Kildare, Ireland Tel: 00 353 7086936 Fax: 00 353 1 7086952 > On 9 May 2016, at 20:54, Aaron Krister Johnson |
Date | 2016-05-10 05:32 |
From | Paul Batchelor |
Subject | Re: eqfil and decibel cuts and boosts |
There are countless ways to build something that fits the definition of an "equalizer", so it would make sense that the behavior won't be identical. For anyone curious, here is the code for the audacious equalizer inner loop:https://github.com/audacious-media-player/audacious/blob/master/src/libaudcore/equalizer.cc https://github.com/csound/csound/blob/develop/Opcodes/eqfil.c On Mon, May 9, 2016 at 1:32 PM, Victor Lazzarini <Victor.Lazzarini@nuim.ie> wrote: Well, I’ve used eqfil and it does what it says on the manual page, but it’s not the same |
Date | 2016-05-10 14:45 |
From | Aaron Krister Johnson |
Subject | Re: eqfil and decibel cuts and boosts |
Thanks Paul! Does anyone who knows filter design recognize what the closest (or matching) filter type is coded in the Audacious code? I'm thinking I can just do a parallel design with the right (closest) opcode and get the right color.... There's also this article: http://mymbs.mbs.net/~pfisher/FOV2-0010016C/FOV2-0010016E/FOV2-001001A3/chapters/28webman/index.html I'll try the design there later. It's based on butterbp, which may be closer to what I need. -AKJ On Mon, May 9, 2016 at 11:32 PM, Paul Batchelor <ralphbluecoat@gmail.com> wrote:
|
Date | 2016-05-10 14:52 |
From | Victor Lazzarini |
Subject | Re: eqfil and decibel cuts and boosts |
I'd suggest that you also try a serial bank, as phase cancelling issues might arise with parallel bank IIRs. If the code is available, we could have a go at implementing the filter (a rainy Saturday job…) as an opcode. ======================== Dr Victor Lazzarini Dean of Arts, Celtic Studies and Philosophy, Maynooth University, Maynooth, Co Kildare, Ireland Tel: 00 353 7086936 Fax: 00 353 1 7086952 > On 10 May 2016, at 14:45, Aaron Krister Johnson |
Date | 2016-05-10 18:39 |
From | Aaron Krister Johnson |
Subject | Re: eqfil and decibel cuts and boosts |
Excellent! The article I posted mentioned that graphic equalizers tend to be parallel banks....and that this was the way to go. Thoughts? On Tue, May 10, 2016 at 8:52 AM, Victor Lazzarini <Victor.Lazzarini@nuim.ie> wrote: I'd suggest that you also try a serial bank, as phase cancelling issues might arise with parallel bank IIRs. |
Date | 2016-05-11 23:35 |
From | Steven Yi |
Subject | Re: eqfil and decibel cuts and boosts |
I looked at the code for Audacious' EQ and it looks to me that the signal is processed in series: https://github.com/audacious-media-player/audacious/blob/master/src/libaudcore/equalizer.cc#L129-L148 as the yt information is first read in, reused through the loop for each filter in the bank, then written to the output. (Please correct me if I'm wrong though!) On Tue, May 10, 2016 at 1:39 PM, Aaron Krister Johnson |
Date | 2016-05-15 21:45 |
From | Aaron Krister Johnson |
Subject | Re: eqfil and decibel cuts and boosts |
The more I think about this, the more it seems wrong that it could be filters in serial...if you do it for each band, you get energy cuts increasingly, such that by the time you get do your final spcectral band, there's nothing left to filter! Indeed, an empirical proof is that running my source material in serial through a bunch of butterbp filters at one octave spacings from 31hz to 16K hz gives an empty wave file... Am I misunderstanding what you guys mean by a serial setup, then? On Wed, May 11, 2016 at 5:35 PM, Steven Yi <stevenyi@gmail.com> wrote: I looked at the code for Audacious' EQ and it looks to me that the |
Date | 2016-05-15 22:35 |
From | Oeyvind Brandtsegg |
Subject | Re: eqfil and decibel cuts and boosts |
I think the use of a bp filter to create an EQ is not appropriate for the serial configuration. If you think of each component in an EQ as merely boosting or attenuating some part of the spectrum, the serial configuration will be more intuitive. Say, to create a boost at 1kHz, you would not use a bp at 1kHz, but rather use a filter that boosts frequencies around 1kHz and ideally leaving the rest of the spectrum untouched. Then you could run this in serial with any other filter that boosts or attenuates a specific part of the spectrum. 2016-05-15 22:45 GMT+02:00 Aaron Krister Johnson |
Date | 2016-05-15 22:56 |
From | Aaron Krister Johnson |
Subject | Re: eqfil and decibel cuts and boosts |
Yeah, I see that...but also, BP filters in parallel seem to work fine (but obviously, not the same animal). I would use 'eqfil', but I'm preferring to use an intuitive bandwidth as outlined in the paper I linked earlier in this thread, where known eq types (1/3 oct, 1 oct, etc.) have Q values that you can use to figure you bandwidth for each EQ band by a simple division. Since the paper suggested parallel butterbp filters, and set out a known solution with code examples, I based my code on that, and it seems to reasonably emulate the mix I was getting through the Audacious equalizer. I'm open to exploring other solutions in the future, though :) -AKJ On Sun, May 15, 2016 at 4:35 PM, Oeyvind Brandtsegg <oyvind.brandtsegg@ntnu.no> wrote: I think the use of a bp filter to create an EQ is not appropriate for |
Date | 2016-05-15 23:18 |
From | Oeyvind Brandtsegg |
Subject | Re: eqfil and decibel cuts and boosts |
Indeed, you might think of a filter that boosts a specific part of the spectrum as a bp in parallel with the unprocessed signal, accounting for phase issues relating to combining those two signals. And simliarly for a cut. Having this, and referring to it as one single component in the processing chain, you would combine several of them in series to build the EQ. 2016-05-15 23:56 GMT+02:00 Aaron Krister Johnson |
Date | 2016-05-17 01:19 |
From | Steven Yi |
Subject | Re: eqfil and decibel cuts and boosts |
Hi Aaron, I got around to implementing Audacious' EQ using Csound UDO code. I put the audaciouseq UDO in my libsyi project here: https://github.com/kunstmusik/libsyi/blob/master/audaciouseq.udo A test file is available here: https://github.com/kunstmusik/libsyi/blob/master/tests/audaciouseq.csd I've only lightly tested and it seems to work. The implementation uses a single-sample audacious_bp2 UDO that does the filter for each band. The routing of the filters within the audaciouseq UDO shows the serial routing. Could you give it a try and let me know if it has the expected results when compared to Audacious? Thanks! steven On Sun, May 15, 2016 at 5:56 PM, Aaron Krister Johnson |
Date | 2016-05-17 15:35 |
From | Aaron Krister Johnson |
Subject | Re: eqfil and decibel cuts and boosts |
Very cool! At work now, but I'll give it a test drive later...thanks for taking the time to code this, Steven! Best, AKJ On Mon, May 16, 2016 at 7:19 PM, Steven Yi <stevenyi@gmail.com> wrote: Hi Aaron, |