Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_dsp_effect (Read 315366 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: foo_dsp_effect

Reply #550
FR for the IIR Filter effect on this component: The ability to set frequency value to fractional values, rename frequency value from "Frequency (db)" to "Frequency (Hz)", higher order filters (up to 40th order) and coefficient configurations (Butterworth, Bessel, Chebyshev type I and II, Elliptic, Critically-damped, and Linkwitz-Riley crossover filters) for all filter types (including low and high shelving and peaking filters), and channel configuration to EQ specific channels (including Mid and Side channels)

Of course, I'd like to see high-order low-shelf filter for bass boosting at 69Hz or 75Hz and below with similar sound to fb2k's built-in EQ but minimum-phase (to avoid pre-ring) for Butterworth case, and type I Chebyshev low-shelf filter with passband ripple of 6dB or more for sounding like WMP's 10 band EQ when boosting first two bands (31.5Hz and 63Hz respectively)

Re: foo_dsp_effect

Reply #551
Have the DSP Effect plugins been updated or released out of beta yet?

Re: foo_dsp_effect

Reply #552
I never really felt the need. For me it fills my needs so far of what I wanted to accomplish with the component, which I do want to rewrite for use in my own personal tech, which would mean rewriting the entire thing to use SSE/NEON. So it seemed to me kinda pointless just to bump a version number.

Why do you ask? :)

Re: foo_dsp_effect

Reply #553
Since the last update was still a beta release, I wondered if the component still had bugs or was abandoned altogether.

Re: foo_dsp_effect

Reply #554
I'll reiterate what I said:
Quote
For me it fills my needs so far of what I wanted to accomplish with the component

So I didn't feel the need to push a version number for the sake of it, just so people can see "line go up".

Re: foo_dsp_effect

Reply #555
Does anybody have a issue with updating EffectDSP? I'm using portable fb 2.1.3 and every time I try to install newest version of EffectDSP 0.50 final it shows in components list 0.50 beta 7... and I'm able to update it over and over - restart after restart version stays same  :o

Re: foo_dsp_effect

Reply #556
Does anybody have a issue with updating EffectDSP? I'm using portable fb 2.1.3 and every time I try to install newest version of EffectDSP 0.50 final it shows in components list 0.50 beta 7... and I'm able to update it over and over - restart after restart version stays same  :o

I can confirm this behaviour.

Re: foo_dsp_effect

Reply #557
Try now. Double and triple checked. Now recompiled to make sure, timestamp on files should be April Fools Day.

Re: foo_dsp_effect

Reply #558
It works now 😁 thank you

 

Re: foo_dsp_effect

Reply #559

Thank you

Re: foo_dsp_effect

Reply #560
I use DSP Effect's Tempo Shift ability a lot.

With the SoundTouch algorithm I get a sound that has a bit of reverb in it. Is there a setting I can change to cause the slowed down audio to sound cleaner? Or am I just hearing things?


Attaching some audio files recorded when using DSP Effect version 0.47 and one file from version 0.51.

The Rubber Band audio clip is included for the purpose of comparison.

The Rubber Band and SoundTouch clips are playing at: Tempo -65.88 %

Re: foo_dsp_effect

Reply #561
You're not just hearing things, real-time pitch/tempo shifting seems quite straight-forward on the surface but leaves discontinuities between frames which need to be hidden somehow, which become increasingly audible (according to the material) if you go more than a few percent.

There won't be anything adjustable in the various algorithms.  Just choose the implementation which sounds best in your application.  If a particular algorithm always sounded best, there wouldn't be a choice!

I'm blown away by the tempo/pitch shift implementation in Virtual DJ – but I doubt that would work well on my hardware.
It's your privilege to disagree, but that doesn't make you right and me wrong.

Re: foo_dsp_effect

Reply #562
There won't be anything adjustable in the various algorithms.

I had used the old standalone SoundTouch component in earlier foobar2000 versions and the sound quality was actually great (subjective, I know). That component started causing problems as fb2k went higher in version number. So I stopped using it.

And I had read this short thread before:  Soundtouch plugin effect the Audio Quality?

I didn't want to come off as complaining, but I brought up the issue of the reverb (or raspiness), I hear, because the sound quality change, between the standalone component and the present day SoundTouch, is so drastic. I was hopeful that perhaps something might could be done about it.

Version 0.47 of DSP Effect and the other available algorithm are functioning quite well for me. So I'll be happy and leave it at that.

Re: foo_dsp_effect

Reply #563
Thats the problem.

librubberband is under the GPL. Thats completely incompatible with licensing when doing components for FB2K. Thats why I had to remove it, since I got scared of legal threats. Hence why sticking with SoundTouch which is fairly licensed, even if it has subpar quality.

David Bryant's lib would be a nice alternative to SoundTouch, and DEATH already did a tempo DSP with it, and doing pitch with it is fairly trivial (add a resampler stage)

Re: foo_dsp_effect

Reply #564
As a test I installed the old SoundTouch component and an old DSP Effect 0.43 in a Portable foobar2000 ver. 1.4.8. I had neglected to remember that the old SoundTouch component only allows going to -50.00 %. Whereas with DSP Effect today, my typical use has often been in the -55.00 to -70.00 % range.

Using -50.00 % as the lowest setting, I thought both the old component and DSP Effect 0.43, utilizing SoundTouch, did an adequate enough job in lowering the playback speed without changing the quality of the audio much (according to my hearing).

Applying the same -50.00 % setting to DSP Effect 0.47 (Since that is what I currently have installed in the fb2k system installed version). I thought it did an adequate enough job too.

So @fooball  was on the right track about the more negative the number, the more likely anomalies (My word) are to "become increasingly audible".

Re: foo_dsp_effect

Reply #565
Thats a side effect of the algorithm. Not much can be done at all.

Rubberband iirc was a phase vocoder/FFT based tempo stretcher. There is others around that could be investigated, iirc paulstretch is a more extreme version of the methods in rubberband.

Re: foo_dsp_effect

Reply #566
I use DSP Effect's Tempo Shift ability a lot.

With the SoundTouch algorithm I get a sound that has a bit of reverb in it. Is there a setting I can change to cause the slowed down audio to sound cleaner? Or am I just hearing things?


Attaching some audio files recorded when using DSP Effect version 0.47 and one file from version 0.51.

The Rubber Band audio clip is included for the purpose of comparison.

The Rubber Band and SoundTouch clips are playing at: Tempo -65.88 %


I'm also a frequent user of Tempo Shift, especially with the RubberBand algorithm. I was really saddened to find out that it was removed entirely. Had I known this before updating Foobar, I would have waited. Is there really no chance it will return to the DSP, or is there an alternative that works just as well?

Re: foo_dsp_effect

Reply #567
@DanielFrankDK

I take it you are using 64-bit fb2k?

Is my understanding below correct?

Since Foobar2000 is not open source software it is a violation of the Rubberband algorithm's license to use the algorithm in it. Even through a third party component such as Effect DSP.

https://breakfastquay.com/rubberband/license.html

Re: foo_dsp_effect

Reply #568
New effect idea for this component: Simple limiter (better off to be bundled with foo_dsp_effect rather than its own DSP component)

Based on Winamp EQ's limiter (according to this part) and my own re-implementation of it (with added channel linking and made threshold/ceiling and release time configurable) as AudioWorkletProcessor:
Code: [Select]
class WinampEQLimiter extends AudioWorkletProcessor {
  static get parameterDescriptors() {
    return [{
        name: 'threshold',
        defaultValue: 0
      },{
        name: 'ceiling',
        defaultValue: 0
      },{
        name: 'release',
        defaultValue: 700,
        minValue: 0
      },{
        name: 'channelLink',
        defaultValue: 100,
        minValue: 0,
        maxValue: 100
      }];
  }
 
  constructor() {
    super();
    this.envelopeValues = [];
    this.ampTodB = x => {
      return 20*Math.log10(x);
    };
    this.dBToAmp = x => {
      return 10 ** (x/20);
    }
  }
 
  process(inputs, outputs, parameters) {
    const input = inputs[0],
          output = outputs[0],
          relTime = 0.001 ** (1/(parameters.release[0]*sampleRate/1000));
    this.envelopeValues.length = input.length;
    const globalValue = [];
    input.forEach((channel, x) => {
      for (let i = 0; i < channel.length; i++) {
        globalValue[i] = Math.max(isFinite(globalValue[i]) ? globalValue[i] : 0, Math.abs(channel[i])) * (parameters.channelLink[0] / 100);
      }
    });
    input.forEach((channel, x) => {
      for (let i = 0; i < channel.length; i++) {
        const preamp = this.dBToAmp(-parameters.threshold[0]),
              ceiling = this.dBToAmp(parameters.ceiling[0]),
              amp = Math.max(Math.abs(input[x][i]), isFinite(globalValue[i]) ? globalValue[i] : 0) * preamp / ceiling;
        this.envelopeValues[x] = Math.max(isFinite(this.envelopeValues[x]) ? this.envelopeValues[x] * relTime : isFinite(amp) ? amp : 0, isFinite(amp) ? amp : 0);
       
        output[x][i] = input[x][i] * preamp * Math.min(1/this.envelopeValues[x], 1);
      }
    });
    return true;
  }
}
registerProcessor('waeqlim-dsp', WinampEQLimiter);
with the default setting is the same as it is in Winamp asides channel linking and sound similarly to "Advanced Limiter" DSP bundled with foobar2000 as I've made and tested this over my own sandbox project for testing AudioWorklet-based effects

@mudlord, feel free to omit "threshold" parameter (which does the similar thing on maximizer VST plugins, increase the volume based on the "threshold" parameter before being fed into a peak limiter) and keep the rest of the parameters as it can be done with "Gain/Scale" effect from foo_dsp_utility anyway, when comes to re-implementing my own re-implementation as a foobar2000 DSP effect

Re: foo_dsp_effect

Reply #569
Good ideas,  I had a recent peek at the Winamp source code, and even the EQ might be "amusing" to port. I seen your previous requests and the IIR stuff seems it could still be worked on. As well as some more weird filters, like a resample+bitcrush+noise filter. A pitch shifter using David Bryant's stuff might be nice to prototype, at least then I can submit that for the mobile ports of FB2K for DEATH to look at, like he did for reverb and echo on mobile/Mac.

No ETA on anything, though. I do visit this place, tho lately I been coding on all sorts of personal things lately, like my personal Linux/ARM/Windows replacement to RetroArch which is more Snes9x style in terms of UI, and has a GPU accelerated UI.

Re: foo_dsp_effect

Reply #570
Any possible update to make the playback rate shift able to go lower than -50%?
like say -25%...

Re: foo_dsp_effect

Reply #571
Another effect idea: Solo either the mid or most interestingly, side channels of any given pair based on this web-based experimental audio project, reducing the channel count to 1 (mono)

Though it can fit into @Peter's Utility DSP Array (foo_dsp_utility) component

Re: foo_dsp_effect

Reply #572
Does Effect DSP work differently with the 64-bit version than it does with the 32-bit version?  When I had the 32-bit version, I could add a tab panel in Columns UI that listed all of the effects I added with sliders so I could change the effect while listening to a track.  In the 64-bit version, I can only add a toolbar that has a dropdown for presets.  I can use the Tempo slider in the preferences panel and adjust the tempo while the track is playing and it works as expected.

How do I get the panel and the sliders back?
Thanks for any help!
Windows 10 | Foobar2000 v2.0 Portable | Columns 2.1.0 | SQLite Utilities 3.0.4 | SQLite Tree 4.0.6

Re: foo_dsp_effect

Reply #573
I'm not sure this was ever available as Columns UI panels but I'm not a regular user of this so can't be certain.

It's there in 64bit Default UI.

Re: foo_dsp_effect

Reply #574
Thanks for the tip!  I got the sliders to show up in Flowin.
Windows 10 | Foobar2000 v2.0 Portable | Columns 2.1.0 | SQLite Utilities 3.0.4 | SQLite Tree 4.0.6