Plug-ins, Hosts, Apps,
Hardware, Soundware
Developers
(Brands)
Videos Groups
Whats's in?
Banks & Patches
Download & Upload
Music Search
KVR
   
KVR Forum » DSP and Plug-in Development
Thread Read
A Collection of Useful C++ Classes for Signal Processing
Goto page Previous  1, 2, 3 ... 17, 18, 19, 20, 21  Next
dts350z
KVRer
- profile
- pm
PostPosted: Tue May 22, 2012 6:01 am reply with quote
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  
dts350z
KVRer
- profile
- pm
PostPosted: Tue May 22, 2012 6:16 am reply with quote
The demo seems to run fine with the intel compiler...
^ Joined: 12 Feb 2009  Member: #200787  
thevinn
KVRian
- profile
- pm
- www
PostPosted: Tue May 22, 2012 9:16 am reply with quote
Have you tried NOT filtering the data - to make sure that its the filter causing the discontinuity?
^ Joined: 30 Nov 2008  Member: #194779  
dts350z
KVRer
- profile
- pm
PostPosted: Tue May 22, 2012 10:30 am reply with quote
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  
thevinn
KVRian
- profile
- pm
- www
PostPosted: Tue May 22, 2012 12:18 pm reply with quote
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  
dts350z
KVRer
- profile
- pm
PostPosted: Sat May 26, 2012 5:53 pm reply with quote
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  
gamma_squadron
KVRer
- profile
- pm
PostPosted: Wed Oct 03, 2012 7:19 pm reply with quote
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  
Robin from www.rs-met.com
KVRAF
- profile
- pm
- e-mail
- www
PostPosted: Thu Oct 04, 2012 4:10 am reply with quote
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
gamma_squadron
KVRer
- profile
- pm
PostPosted: Thu Oct 04, 2012 4:41 am reply with quote
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 Wink?
^ Joined: 03 Oct 2012  Member: #289189  
Robin from www.rs-met.com
KVRAF
- profile
- pm
- e-mail
- www
PostPosted: Thu Oct 04, 2012 4:48 am reply with quote
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
gamma_squadron
KVRer
- profile
- pm
PostPosted: Sun Oct 07, 2012 3:32 pm reply with quote
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 Smile
^ Joined: 03 Oct 2012  Member: #289189  
GrovRoald
KVRer
- profile
- pm
PostPosted: Thu Oct 18, 2012 5:46 am reply with quote
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  
thevinn
KVRian
- profile
- pm
- www
PostPosted: Thu Oct 18, 2012 9:01 am reply with quote
Did you try building the DSPFilters Demo? Does it compile for you?

https://github.com/vinniefalco/DSPFiltersDemo

Thanks
^ Joined: 30 Nov 2008  Member: #194779  
GrovRoald
KVRer
- profile
- pm
PostPosted: Fri Oct 19, 2012 2:09 am reply with quote
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  
thevinn
KVRian
- profile
- pm
- www
PostPosted: Fri Oct 19, 2012 6:16 am reply with quote
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  
All times are GMT - 8 Hours

Printable version
Page 18 of 21
Goto page Previous  1, 2, 3 ... 17, 18, 19, 20, 21  Next
Display posts from previous:   
ReplyNew TopicPrevious TopicNext Topic
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Username: Password:  
KVR Developer Challenge 2012