|
|||
Well I'm not. I guess I can instrument the program to print a log.
In the mean time, I'm on windows 7 64 bit, 32 bit program, using visual studio 2008 but with the intel compiler (my programs requires the intel compiler as I'm using threaded building blocks and intel performance primitives for fft). Intel® C++ Composer XE 2011 Update 10 Package ID: w_ccompxe_2011.10.325 Intel® C++ Composer XE 2011 Update 10 Integration for Microsoft Visual Studio* 2008, Version 12.1.1111.2008, Copyright© 2002-2012 Intel Corporation Could that, or optimization settings make a difference? I can compile the demo with the intel compiler (I haven't yet). I'm also working with 1 channel of audio (vs. 2). Are we sure the filter works correctly with 1 channel? Any other debug suggestions? |
|||
| ^ | Joined: 12 Feb 2009 Member: #200787 | ||
|
|||
The demo seems to run fine with the intel compiler... |
|||
| ^ | Joined: 12 Feb 2009 Member: #200787 | ||
|
|||
Have you tried NOT filtering the data - to make sure that its the filter causing the discontinuity? |
|||
| ^ | Joined: 30 Nov 2008 Member: #194779 | ||
|
|||
Yes,
I can comment out only the call to process and see the unmodified waveform at the same sample count. Here is a 20Hz sine wave with an 80Hz lowpass filter. The bottom waveform is the channel that is filtered:
Commenting out only "lp.process" we get this:
You can see that the output wave form is now not phase shifted (no filter) and does not have a glitch at the boundary between buffers. "lp" is instantiated in a .h file so it has global scope. the parameters are passed once, just after opening the input file, when I have the sample rate of the file. lp.process is called in one of the functions that processes the output data, per buffer. The helpful person who linked code that helped me has an update if "dirty" in lp.process, however I doubled checked to make sure that isn't the problem by commenting it out (dirty is set false when passing the parameters to the filter in any case). |
|||
| ^ | Joined: 12 Feb 2009 Member: #200787 | ||
|
|||
If you could fork DSPFiltersDemo and modify it to reproduce the behavior you are seeing, then we could figure out what the cause is. |
|||
| ^ | Joined: 30 Nov 2008 Member: #194779 | ||
|
|||
So for those that read this later, Switching from the SimpleFilter API to this:
Dsp::Filter* lp = new Dsp::SmoothedFilterDesign <Dsp::Butterworth::Design::LowPass <16>, 1, Dsp::DirectFormII> (1024); made the problem go away. Feature request; It would be nice to have a group delay only function, for time aligning audio that went through one or more filters with audio that didn't. Or, an optional feature where the filter writes passed the "end" of the buffer with any audio that propagates from the input (hope that's clear). That would make it simple to line it back up time wise. Or, maybe better yet, arrange is to there was no group delay. 1st sample in the buffer (after filtering) is time aligned with the first sample in the buffer (before filtering). I tried using the allpass filter, to delay other audio by the same amount as my two Butterworth filters, but I couldn't get things to line up. |
|||
| ^ | Joined: 12 Feb 2009 Member: #200787 | ||
|
|||
Hey
I'm having the same linking errors like dts350z 1>ContinuousAcquireDlg.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: void __thiscall Dsp::Butterworth::BandPassBase::setup(int,double,double,doub le)" (?setup@BandPassBase@Butterworth@Dsp@@QAEXHNNN@Z)" in Funktion ""public: void __thiscall CContinuousAcquireDlg::ButterworthBandpassfilter(void)" (?ButterworthBandpassfilter@CContinuousAcquireDlg@@QAEXXZ)". (its in German but you should get it) How did you fixed that? |
|||
| ^ | Joined: 03 Oct 2012 Member: #289189 | ||
|
|||
gamma_squadron wrote: Hey
I'm having the same linking errors like dts350z 1>ContinuousAcquireDlg.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: void __thiscall Dsp::Butterworth::BandPassBase::setup(int,double,double,doub le)" (?setup@BandPassBase@Butterworth@Dsp@@QAEXHNNN@Z)" in Funktion ""public: void __thiscall CContinuousAcquireDlg::ButterworthBandpassfilter(void)" (?ButterworthBandpassfilter@CContinuousAcquireDlg@@QAEXXZ)". (its in German but you should get it) How did you fixed that? i think, this translates to: [code]1>ContinuousAcquireDlg.obj : error LNK2019: unresolved external symbol ""public: void __thiscall Dsp::Butterworth::BandPassBase::setup(int,double,double,doub le)" (?setup@BandPassBase@Butterworth@Dsp@@QAEXHNNN@Z)" in function ""public: void __thiscall CContinuousAcquireDlg::ButterworthBandpassfilter(void)" (?ButterworthBandpassfilter@CContinuousAcquireDlg@@QAEXXZ)". btw.: finding help on the web is the primary reason why i don't install the german versions anymore. ...and sometimes the translations are just plain wrong (i remember adobe audtion to translate "order" as "Reihenfolge" when "Ordnung" would have been appropriate (it was in the context of filters) - which quite confused me until i realized that this must be a translation error) |
|||
| ^ | Joined: 08 Mar 2004 Member: #15959 Location: Berlin, Germany | ||
|
|||
1>ContinuousAcquireDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall Dsp::Butterworth::BandPassBase::setup(int,double,double,doub le)" (?setup@BandPassBase@Butterworth@Dsp@@QAEXHNNN@Z)
1>ContinuousAcquireDlg.obj : error LNK2001: unresolved external symbol "protected: void __thiscall Dsp::Cascade::setCascadeStorage(struct Dsp::Cascade::Storage const &)" (?setCascadeStorage@Cascade@Dsp@@IAEXABUStorage@12@@Z) 1>ContinuousAcquireDlg.obj : error LNK2001: unresolved external symbol "public: __thiscall Dsp::Butterworth::AnalogLowPass::AnalogLowPass(void)" (??0AnalogLowPass@Butterworth@Dsp@@QAE@XZ) 1>ContinuousAcquireDlg.obj : error LNK2001: unresolved external symbol "public: __thiscall Dsp::Biquad::Biquad(void)" (??0Biquad@Dsp@@QAE@XZ) 1>ContinuousAcquireDlg.obj : error LNK2001: unresolved external symbol "protected: __thiscall Dsp::Cascade::Cascade(void)" (??0Cascade@Dsp@@IAE@XZ) better |
|||
| ^ | Joined: 03 Oct 2012 Member: #289189 | ||
|
|||
interesting: the error-codes seem to be different between english and german version, too (LNK2019 vs LNK2001). i would have guessed that they are the same and could have been used to obtain the translation. not so.
generally, this error means that some object- or library-file is missing (sorry, if i'm belaboring the obvious here - can't say anything more specific right now) |
|||
| ^ | Joined: 08 Mar 2004 Member: #15959 Location: Berlin, Germany | ||
|
|||
actually i had both errors if its german or english it doesnt rly care
i let it run on a another system so we have the correct translation nobody knows how to fix the link error? i downloaded the newst version maybe there are some bugs in it? EDIT: problem solved include (dspfilter.cpp) source file and stop use precompiled header at the source file |
|||
| ^ | Joined: 03 Oct 2012 Member: #289189 | ||
|
|||
Hi, could anybody explain how they got past those pesky LNK2005 errors in Visual Studio 10? A previous post solved it by: "included the source file in the project". Can somebody explain this to me in a more noobish way?
It seems to be a problem with including the DSPfilters.lib library and some symbols that are defined there and in some other standard libraries. |
|||
| ^ | Joined: 18 Oct 2012 Member: #290145 | ||
|
|||
Did you try building the DSPFilters Demo? Does it compile for you?
https://github.com/vinniefalco/DSPFiltersDemo Thanks |
|||
| ^ | Joined: 30 Nov 2008 Member: #194779 | ||
|
|||
Yes, but only after I put both the DSPFilters.lib and JuceAmalgam.lib in the same directory as the .exe
Do I need the JuceAmalgam library when using the DSPFilters, or is that just for building the GUI for the demo? Also, the compiling errors that I'm getting are of this type: error LNK2005: "public: __thiscall std::_Container_base12::~_Container_base12(void)" (??1_Container_base12@std@@QAE@XZ) already defined in DSPfilters.lib(Param.obj) File: msvcprtd.lib |
|||
| ^ | Joined: 18 Oct 2012 Member: #290145 | ||
|
|||
It sounds like you aren't using the latest sources. DSPFilters Demo no longer uses separate static libraries (DSPFilters.lib and JuceAmalgam.lib). |
|||
| ^ | Joined: 30 Nov 2008 Member: #194779 |
| KVR Forum Index » DSP and Plug-in Development | All times are GMT - 8 Hours |
|
Printable version |
Disclaimer: All communications made available as part of this forum and any opinions, advice, statements, views or other information expressed in this forum are solely provided by, and the responsibility of, the person posting such communication and not of kvraudio.com (unless kvraudio.com is specifically identified as the author of the communication).
Powered by phpBB © phpBB Group
















