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 248892 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_dsp_effect

Reply #125
Hi, im new to the foobar2000 and i installed the foo_dsp_effect.dll, but i dont know how to use it! It appears on the component list but i dont see anywhere a place where i can turn on/off the effects. Can anybody help me with this?


File -> Preferences -> Playback -> DSP Manager


Warning: fb2k is addictive.


foo_dsp_effect

Reply #127
Oh great! But theres a way to make it easier to change? like putting it as a UI element?

To configure you can use View -> DSP

In DSP Manager you can save DSP chain presets.
For the two most importent i use keyboard shortcut.
Warning: fb2k is addictive.

foo_dsp_effect

Reply #128
Hey I'm actually loving this plugin, it's fantastic to have such control over how things sound. Great work!

foo_dsp_effect

Reply #129
any way not to get that echo effect when slowing down tempo? I mean if it is possible to slow down tempo like Amazing Slow Downer does it.

foo_dsp_effect

Reply #130
no

foo_dsp_effect

Reply #131
Yes, you can ask the Amazing Slow Downer to make a foobar2000 DSP out of his processing filter.

Currently, the best open source solution for slight tempo changes is the only open source solution. Namely, SoundTouch. Which is what this DSP uses.

There is another filter that seems to do a really good job stretching recordings without a jarring echo, but it's really designed for massive stretches. I'm talking 1/10 to 1/20 the original tempo. I don't think the process used for that is quite so useful for slight tempo changes.

foo_dsp_effect

Reply #132
Yes, you can ask the Amazing Slow Downer to make a foobar2000 DSP out of his processing filter.


And I said no, because currently as you said, ST is used. and we both know ST is absolute crap when it comes to things like this. Even with tweaking the ST parameters a bit, it still sounds horrid.

And the stretcher you are talking about with super HQ stretching has code thats quite bleh, and im not motivated to rewrite it. SoX apparently has pitch/tempo stretching but it seems to be based on ST too, so I figure its best not to look there.

foo_dsp_effect

Reply #133
Well...

I discovered that DSP ("Playback Rate Shift") few days ago (part of "Standard DSPs Array" available in foo installer) and found it usefull, but I started analysing how this kind of effect works and it turned out that it basically degrades sound quality if it isn't permanently removed from DSP chain when it's unused. Such DSP works nearly as resampler and last stage is always low pass filtering. Unfortunately DSP doesn't detect zero value of its "playback rate" parameter and doesn't by-pass signal in this setting and still low pass filters sound... To be 100% sure I've made a test - I created two WAVE files from one FLAC file using built in Converter.  First one was just pure conversion to WAVE with no DSPs and and no additional DTS/HDCD decoders - just uncompressed FLAC. Second was created with one DSP activated - "Playback Rate Shift" and still no "additional decoding". Then I calculated MD5 checksums and unfortunately files were different. This means that if "Playback Rate Shift" DSP is activated then it alters sound even when "playback rate" it's set to "0%". In this situation "alters" definitely means "degrades" - this low pass filtering in unnecessary and doesn't improve anything - only adds some phase shifts. So my suggestion is that when "playback rate" parameter is set to "0%" DSP should specifically detect this value, and set itself to just by-pass siggnal. You can say that I can just remove that DSP from chain, but my answer is that I never know when I want to change playback rate and I want to change it as easy as possible at anytime. Best option will be to have "playback rate fader" visible just as regular element of UI, so removing and adding DSP each time when I want to use it is solution very far from preferred. So to provide ease of use DSP should be always present in the chain, but to avoid unnecessary low pass filtering and thus slight degrading of sound quality DSP should work in specific way. Summarising:

1. "Playback Rate Shift" DSP should specifically detect when it's set to "0%" and in this situation it should switch to by-pass mode
2.  Regular DUI/CUI elemnt for this DSP (just simple fader with % value) will be highly appreciated

PS.
DUI/CUI elements for all DSPs from that family will be nice ("Pith Sfifter", "Tempo Shift", "Playback Rate Shift")

foo_dsp_effect

Reply #134
A) yes, ST does resampling + a FIR filter for playback rate changing, i could make it do what you want.
B) I am wondering about the point of making them all a DUI element. What usability functionality will that add, other than making people able to pretend they are DJs.

foo_dsp_effect

Reply #135
Thanks for your reply
Well, I'm not trying to be a foobar DJ, but sometimes certain tracks sound better for my ears when they are playing just 3-5% faster (like Cramp - Deadline, Tiesto - Ten Seconds Before Sunrise, Factoria - Excalibur and few more). In this situation I had to hold on my disk 2 separate WAVE files - original from Beatport and shifted from wave editor. I have about 20 doubled WAVEs on my HDD... Adding DUI/CUI element will just let me use that option in more comfortable way, whenever I want to use it and it will eliminate necessity of holding two WAVEs in case of files that I often listen with shifted tempo - slider will be always at hand. Other situation is when I want to slow down some vocal track to better hear/understand the words. I always need to open file in wave editor, go through menu, dialog boxes, wait for calculations and if tempo is inaccurate I need to Ctrl+Z, again go through menu, dialog boxes and again and again... That simple slider pinned to UI for "Playback Rate Shift" will just make such situation much easier. And if there will be such sliders for other effects it will just expand possibilities of sound tuning  .
It will be very nice if all these 3 effects (and maybe others which I currently don't use) from foo_dsp_effect have implemented bypassing when parameters are set to zero - "0%", "0 semitones" etc. It will just provide possibility of keeping best possible sound quality (unchanged, without unnecessary modifications) while letting people keep rarely used / currently unused plug-ins in DSP chain and thus improving their ease of using program.

foo_dsp_effect

Reply #136
hy mudlord,
I'm not DJ, just musician and I use Pitch Shift to detune tracks recorded in Eb or not at A440 for exemple
occasionally, I also use Tempo Shift to learn difficult parts at slow speed

as EpicForever, and a lot of people I think, I have to duplicate tracks
so it would be very interesting to store the settings in tags which would be used automaticaly by your components

of course, I have any idea of the time required to code that 

foo_dsp_effect

Reply #137
I rather not add settings that autoadd tags to files: some people might not like that.

foo_dsp_effect

Reply #138
Well, I think that Gnx said only about autoloading settings from tags rather than autoadding tags with settings. From this point of view tags will be manually added and/or edited by user or added by software only at explicit user request (like right-click menu item or ticking checkbox in dsp effect interface). It might be usefull, but for me it's not the most wanted option. I'm waiting for auto by-passing at 0% and for DUI controls

foo_dsp_effect

Reply #139
Well, I think that Gnx said only about autoloading settings from tags rather than autoadding tags with settings.

yes, that's the idea. thx EpicForever

(I have to return to my English lesson now ...)

foo_dsp_effect

Reply #140
Muddy, didn't you promise a DC filter a while back?

foo_dsp_effect

Reply #141
Yes and xnor made the filter himself based on my code. So I didnt feel the need to make it public.

foo_dsp_effect

Reply #142
a realtime CD de-emphasis decode post processor. The tag "PRE_EMPHASIS" must be used on content which is supported by FB2Ks decode processor services, for this to work. Pre-emphasis can be signified in your media with the values "1" or "0".


... just for the record: "0" is just the same as the tag being absent?

(And ... you don't use any dithering, the filter returns a 16-bit undithered version?)

foo_dsp_effect

Reply #143
Yes and xnor made the filter himself based on my code. So I didnt feel the need to make it public.


What?? I posted a code snippet of the first "DC blocker or filter" result on Google here and asked if you could include it.
"I hear it when I see it."

foo_dsp_effect

Reply #144
oh fine, in that case you will get your DC blocker. just dont ask me when.
and B) yes 0 is if deemphasis is off

foo_dsp_effect

Reply #145
@mudlord:
dsp_dcblocker.cpp
foo_dsp_effect.rc (might want to only extract the dialog I added, search for IDD_DCBLOCKER)

Also, the range of the parameter needs some tuning. You might want to add another decimal place (e.g. to allow 0.9999) and further restrict the min.

p = 0.999 -> -1 dB at 13 Hz, -3 dB at 7 Hz, -10 dB at 2 Hz
p = 0.997 -> -1 dB at 38 Hz, -3 dB at 21 Hz, -10 dB at 7 Hz
...
p = 0.900 -> -1 dB around 1.3 kHz
"I hear it when I see it."

 

foo_dsp_effect

Reply #146
Dumb question, but can I easily use the pre-emphasis filter to convert to a de-emphed FLAC using fb2k?

In which case, how? And in which case, should dither be applied?

foo_dsp_effect

Reply #147
Quote
Dumb question, but can I easily use the pre-emphasis filter to convert to a de-emphed FLAC using fb2k?


Using the convertor?

And I havent really looked into how dithering effects it, though all DSPs run at 32bit float bit depth anyway. Wouldnt hurt to see how it effects it.

foo_dsp_effect

Reply #148
Yeah I realized I should be more precise: there is a dithering choice in the conversion menu, but it seems like the DSPs are applied after dithering. The right thing would – I think! – be to apply the EQ with higher internal precision and then dither it down to the desired wordlength (say, 16).

I did a test, using no dithering, and #4 below produces differences:

1) originalrip_16bit.flac converted to originalrip_24bit.flac by simply padding with zeroes
--> bit-identical, of course.

2) each of these converted to 24-bit FLAC with your de-emphasis EQ as post-processing DSP
--> outputs bit-identical to each other; there is no truncation going on here.

3) converted in one operation per file
originalrip_16bit.flac converted to deemph16bit.flac (16 bits internally) and
originalrip_24bit.flac converted to deemph2416.flac setting fb2k to output 16 bits
both using your de-emphasis EQ as post-processing DSP
--> outputs bit-identical

4) converted originalrip_24bit.flac to deemph24bit.flac using your de-emphasis EQ as post-processing DSP,
AND THEN converted deemph24bit.flac to deemph242416.flac by setting fb2k to output 16 bits.

Then deemph2416.flac and deemph242416.flac are different. So t matters – I didn't say 'audibly' – how long I stay in the 24 bits domain.


I suppose I can just pad my pre-emphasized files up to 24 bits (at no cost in filesize) and tag them with PRE_EMPHASIS = 1, and leave those additional 8 bits to the DAC (which accepts that input).

foo_dsp_effect

Reply #149
Hello again.

Can I ask about any update for foo_DSP_effect ? especially the one with requested features  (bypassing at 0% and DUI elements...)