Results 1 to 26 of 26

Thread: 24DB Low Pass Filtering - SOUND / AUDIO Processing

Hybrid View

  1. #1

    Thread Starter
    Frenzied Member some1uk03's Avatar
    Join Date
    Jun 2006
    Location
    London, UK
    Posts
    1,675

    Re: 24DB Low Pass Filtering - SOUND / AUDIO Processing

    Hi Schmidt/Olaf,

    Thanks for the update, but I'm still getting same results ? Still have a black notch in my spectrum and noise on the wav ? just like the images I posted before?

    I'm only using the ButterWorth class, so I'm using it by:

    Code:
    Dim kk As New cButterWorth
    kk.FilterType = FilterLowPass
    kk.Freq = 1000     'EditWAV.SamplingFreq / 4
    kk.SampleRate = EditWAV.SamplingFreq
    kk.Order = 4
    
    kk.Filter EditWAV.WavData, True
    
    refreshData True
    _____________________________________________________________________

    ----If this post has helped you. Please take time to Rate it.
    ----If you've solved your problem, then please mark it as RESOLVED from Thread Tools.



  2. #2
    PowerPoster
    Join Date
    Jun 2013
    Posts
    7,454

    Re: 24DB Low Pass Filtering - SOUND / AUDIO Processing

    Quote Originally Posted by some1uk03 View Post
    I'm only using the ButterWorth class, so I'm using it by:

    Code:
     
    kk.Filter EditWAV.WavData, True
    In case you are using the updated cButterworth-Class now, the IsMono-Param is
    the last argument, Optional - and by default *False* (meaning Stereo-Mode).

    As I wrote in the other post - I changed that in comparison to your own variant,
    to not break that much stuff in my older Demo-App.

    So, the above line which finally calls the new Filter-method should explicitely pass a True in the last param:

    Code:
    kk.Filter EditWAV.WavData, True, True
    Olaf

  3. #3

    Thread Starter
    Frenzied Member some1uk03's Avatar
    Join Date
    Jun 2006
    Location
    London, UK
    Posts
    1,675

    Re: 24DB Low Pass Filtering - SOUND / AUDIO Processing

    I'm not infront of my PC now to confirm %100 but i do remember well that i changed your updated function to...

    Code:
    Optional isMono As Boolean = True
    ..so by default its True, without me having to pass it here:

    Code:
    kk.Filter EditWAV.WavData, True, True
    EDIT:
    Just realised that in my original kk.Filter call the True goes out to the FIRSTbuff... what does that do exactly ? Splits the audio to few buffers ? havent really analysed properly...
    _____________________________________________________________________

    ----If this post has helped you. Please take time to Rate it.
    ----If you've solved your problem, then please mark it as RESOLVED from Thread Tools.



  4. #4
    PowerPoster
    Join Date
    Jun 2013
    Posts
    7,454

    Re: 24DB Low Pass Filtering - SOUND / AUDIO Processing

    Quote Originally Posted by some1uk03 View Post
    Just realised that in my original kk.Filter call the True goes out to the FIRSTbuff... what does that do exactly ? Splits the audio to few buffers ? havent really analysed properly...
    The FirstBuff-param is needed, to properly initialize the surrounding Helper-Arrays, which store the current filter-states.

    If you want to play e.g. a song from a 25MB-Wav-File, then you have to do it in chunks -
    now when you have the BW-Filter in place, you have to signalize when a new "streaming begins" -
    and on your very first buffer you're sending to the Class, you can tell the Filter-method about that -
    ... and all following buffers shall have to "connect seamlessly" to the last values in the previous
    buffers (and use the derived coefficients from those last buffer-values), so with Firstbuff = False
    you can signalize "continuation of the current state of calculations".

    If your MonoBuffers come in complete chunks, containing the whole sound - then FirstBuff should be
    always True (so, False is only thought for following Buffers after the first one in a streaming-scenario).

    Olaf

  5. #5

    Thread Starter
    Frenzied Member some1uk03's Avatar
    Join Date
    Jun 2006
    Location
    London, UK
    Posts
    1,675

    Re: 24DB Low Pass Filtering - SOUND / AUDIO Processing

    Ok, After further testing today... the LP / Mono is working, BUT I still get NOISE depending on the Freq / Hertz...

    The spectrum this time only show a black boundary not in the MIDDLE, but TOP area only... what ever the Freq limit is set to... i.e upto 11000
    as in there is No Falloff...
    As far as I can calculate, there needs to be a loop which decreases the SET Freq depending on TIME...to get a side slope just like in the GREEN Mid graph i posted earlier..

    Does that seem to make any sense?
    _____________________________________________________________________

    ----If this post has helped you. Please take time to Rate it.
    ----If you've solved your problem, then please mark it as RESOLVED from Thread Tools.



  6. #6
    PowerPoster
    Join Date
    Jun 2013
    Posts
    7,454

    Re: 24DB Low Pass Filtering - SOUND / AUDIO Processing

    Quote Originally Posted by some1uk03 View Post
    Ok, After further testing today... the LP / Mono is working, BUT I still get NOISE depending on the Freq / Hertz...
    Now (and from what you wrote in a PM) I begin to understand that you're looking for a Noise-Cancelling solution.

    Quote Originally Posted by some1uk03 View Post
    The spectrum this time only show a black boundary not in the MIDDLE, but TOP area only... what ever the Freq limit is set to... i.e upto 11000
    That's as it should be with a "normal" Filter (a LowPass in this case).

    A LowPass is letting (by definition) the frequencies below a certain "cut-off-frequency" through...
    The frequencies above the cut-off will be "dampened" (in case of a Butterworth-Filter of the 4th order with 24dB per Octave)...
    And the latter (increased) dampening is, what's causing the "blacked out area" in your frequency-spectrum-visualization.

    So, there's nothing wrong with the Butterworth-Filter - its one of the better suited algorithms for audio-processing - and it behaves as it is designed to do in your case.

    Noise (White Noise to be precise) spreads by definition: http://en.wikipedia.org/wiki/White_noise
    its energy across the whole spectrum, so cutting-off above a certain frequency is not a sufficient
    "noise-cancelling-approach", since the lower-frequency-bands (below the cut-off) will still contain
    a lot of "noise-energy" - it just doesn't sound all that "aggressive" anymore, when at least the
    higher frequency-bands are dampened.

    What you need is a better suited algorithm which works across the whole frequency-spectrum,
    cleaning up (or flattening) "the ripple" in each of the frequency-bands - a single Low-Pass
    (no matter how strong its dampening is adjusted) will not work as good as such a specialized algo.

    Not sure, what you need this for - if this is e.g. for a de-noising of radio-transmitted audio-signals, then maybe this link here
    is helpful for a general overview: http://digitalcommons.calpoly.edu/cg...context=theses

    Olaf

  7. #7

    Thread Starter
    Frenzied Member some1uk03's Avatar
    Join Date
    Jun 2006
    Location
    London, UK
    Posts
    1,675

    Re: 24DB Low Pass Filtering - SOUND / AUDIO Processing

    Thanks for coming back to this Olaf.

    The butterworth-Filter in itself, is fine no problem. But yes, it seems I need some form of a Noise Cancelling solution.

    From what I can figure out, is that some type of a GRADUAL Frequency Cut off ? That's what I'm evaluating from the Spectrum Graphs I posted before, but been researching and have No idea how to implement this.

    Not sure, what you need this for..
    I have Audio Sample Wavs that require some of this Noise Removal treatment.
    _____________________________________________________________________

    ----If this post has helped you. Please take time to Rate it.
    ----If you've solved your problem, then please mark it as RESOLVED from Thread Tools.



Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width