Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#13 30 band eq

Unstable_(example)
closed
None
1
2014-06-01
2014-03-17
Anonymous
No

Hi everyone.

I had interest to high order shelving audio equalizers, and I implemented one of them.
It can be found on https://github.com/thedrgreenthumb/orfanidis_eq.
Also, the second problem was to implement it like a some audio plugin.
I found that the simplest way to do it is integrate it into Calf project.
Let me share results (see attached).
The patch can be applied to commit with number a3b4f7dc22...(Crusher: fix UI crash) without merging.

Thanks.

1 Attachments

Discussion

1 2 > >> (Page 1 of 2)

  • Anonymous
    2014-03-19

    Hi again.

    I found that it is pleasure, to implement audio effects using Calf. It have really simple and elegant infrastructure. The reverse delay plugin was implemented. Let me share again (see attached).
    Can be applied to the same commit without merging (described above).
    Thanks.

     
    Attachments
  • Markus Schmidt
    Markus Schmidt
    2014-04-30

    Hey!

    First of all: thanks a lot for contributing to Calf, we appreciate your work.

    I tested your patches yesterday and today. The idea for the reverse delay is really cool. Unfortunately it is mono. Is it possible to implement a stereo version - perhaps with some neat stereo-imaging features? Setting the time via BPM or the new tapping widget like in the vintage delay perhaps could be a more musical approach. This kind of delay could make use of a reset switch like in Phaser, Flanger and Pulsator to sync it to a track via automation.

    According to the 30-band equalizer - I'm sorry to tell you that your implementation isn't really usable in audio production. Splitting a signal via 30 band passes in parallel and summing them up afterwards destroys the linear frequency response even with all faders set to 0. Furthermore this approach introduces huge phasing problems into the signal - even with all faders set to 0, too. You can clearly hear it while toggling the bypass - gain, frequency response and stereo image are completely different. Normally one would implement a graphical equalizer using chained bell (peaking) filters we already have implemented into the framework. E.g.:

    http://dsp.stackexchange.com/questions/9341/naudio-real-time-equalizer?rq=1

    Technical problems are that all syncing and resetting doesn't work that way because LV2 ports are strictly input or output. To break it down: setting knobs or toggles from inside the plug-ins process doesn't work in other hosts than the Calf rack itself.

    Sorry for the bad news, no offense. Cheers, Markus.

     

  • Anonymous
    2014-05-18

    Hi, Markus.

    Really thanks for your answer.

    You are right about equalizer. It had impermissible value of freq response ripple. For Butterworth filters it was near 6 dB, and near 12 dB for Chebyshev 1.
    Only one way to decrease it, was to increase filters order. But from other hand it will increase CPU consumption.

    About sync and reset buttons and LV2 implementation, it is pity. These controls really made plugin more handy. It would be great if you add separate compilation for calfjackhost and lv2 in future.

    So, I prepared another implementation of 30 band eq. Here filters connected in series and all filters banks are precomputed. The problem with freq response ripple seems like disappear (please glance to attached screenshots, here eq1 - previos version, eq2 - new):

    Also, I prepared stereo version of reverse delay based calf vintage delay, as you wished. I must note, that, seems like, mistake have place at delay lines buffers declaration. It must be larger.

    So, could you please estimate all this stuff and add some comments?
    Your comment about freq response ripple was very valuable.

    All patches could be applyed to "Multiband Limiter: Explaining the multiband coefficient" (326e93c6a927...) commit without merging.

    Thanks.

     
    Attachments
  • Markus Schmidt
    Markus Schmidt
    2014-05-29

    Hey drgreenthumb,

    thanks a lot for the rewrites. The Reverse Delay went into origin master today.

    I tested the 30 Band EQ and it seems all phasing and frequency response problems are history which is great. Probably the UI could be a bit smaller, I'm testing some implementations of some features for the labels (e.g. shortening 20000 to 20k and for having dB values as floats without expanding the table) to reduce the amount of space needed.

    Cheers, Markus.

     

  • Anonymous
    2014-05-30

    Hi, Markus.

    It is pleasure for me that Reverse Delay plugin was added.

    About EQ: Please let me know, if you will have any problems with EQ header(orfanidis_eq.h). Seems like, you want to write a function which converts numbers like 20000 to 20k, by other words: swaps triplet of zeros to 'k' character. This function could be added directly to header.

    Feel free to ask me any questions.

    Thanks.

     
  • Markus Schmidt
    Markus Schmidt
    2014-05-30

    Hey drgreenthumb,

    thanks a lot for the offer but the function (covering all potencies up to exa) will be added to the framework directly so every value benefits from that.

    Cheers, Markus.

     
  • Markus Schmidt
    Markus Schmidt
    2014-05-31

    Hey drgreenthumb,

    the equalizer was pushed to the master with some changes to the user interface.

    Thanks a lot for the contribution, Markus.

     

  • Anonymous
    2014-06-01

    Hi Markus.

    Sorry for disturbing, but seems like you forget to add eq header to repository.
    When I tried to build calf, I had error, like:

    In file included from modules_filter.cpp:24:0:
    ./calf/modules_filter.h:35:26: fatal error: orfanidis_eq.h: No such file or directory
    #include "orfanidis_eq.h"

    Thanks.

     
1 2 > >> (Page 1 of 2)


Anonymous


Cancel   Add attachments