changeset 79:afcf540ae3a2

add the real time filter stack to manage real time filters and their attributes
author lbajardsilogic
date Tue, 19 Jun 2007 15:15:12 +0000
parents d99441818cd9
children e760dd1ca601
files data/svdata.vcproj plugin/LADSPAPluginFactory.cpp sv/audioio/AudioCallbackPlaySource.cpp sv/audioio/AudioCallbackPlaySource.h sv/document/Document.cpp sv/document/Document.h sv/filter/DSP.cpp sv/filter/DSP.h sv/filter/FFTReal.cpp sv/filter/FFTReal.h sv/filter/Filter.cpp sv/filter/Filter.h sv/filter/FilterStack.cpp sv/filter/FilterStack.h sv/filter/RealTimeFilterFactory.cpp sv/filter/RealTimeFilterFactory.h sv/filter/TimeStretchFilter.cpp sv/filter/TimeStretchFilter.h sv/main/MainWindow.cpp sv/main/MainWindow.h sv/sound_access.vcproj sv/sv.pro widgets/AudioFilterViewerWidget.cpp widgets/AudioFilterViewerWidget.h widgets/GenericItemList.h widgets/ItemAudioFilterList.cpp widgets/ItemAudioFilterList.h widgets/ItemContainer.cpp widgets/ItemContainer.h widgets/ItemLayerList.h widgets/RealTimeFilterPropertyStack.cpp widgets/RealTimeFilterPropertyStack.h widgets/svwidgets.vcproj widgets/widgets.pro
diffstat 34 files changed, 2641 insertions(+), 73 deletions(-) [+]
line wrap: on
line diff
--- a/data/svdata.vcproj	Wed Jun 13 15:49:23 2007 +0000
+++ b/data/svdata.vcproj	Tue Jun 19 15:15:12 2007 +0000
@@ -736,7 +736,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;fft&quot; -I &quot;model&quot; -I &quot;fileio&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;fft&quot; -I &quot;model&quot; -I &quot;fileio&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
--- a/plugin/LADSPAPluginFactory.cpp	Wed Jun 13 15:49:23 2007 +0000
+++ b/plugin/LADSPAPluginFactory.cpp	Tue Jun 19 15:15:12 2007 +0000
@@ -645,7 +645,7 @@
 	 i != pathList.end(); ++i) {
 
 	QDir pluginDir(*i, PLUGIN_GLOB);
-
+	
 	for (unsigned int j = 0; j < pluginDir.count(); ++j) {
 	    discoverPlugins(QString("%1/%2").arg(*i).arg(pluginDir[j]));
 	}
--- a/sv/audioio/AudioCallbackPlaySource.cpp	Wed Jun 13 15:49:23 2007 +0000
+++ b/sv/audioio/AudioCallbackPlaySource.cpp	Tue Jun 19 15:15:12 2007 +0000
@@ -59,7 +59,8 @@
     m_fillThread(0),
     m_converter(0),
     m_crapConverter(0),
-    m_resampleQuality(Preferences::getInstance()->getResampleQuality())
+    m_resampleQuality(Preferences::getInstance()->getResampleQuality()),
+	m_filterStack(0)
 {
     m_viewManager->setAudioPlaySource(this);
 
@@ -827,6 +828,8 @@
 
         applyAuditioningEffect(count, buffer);
 
+		applyRealTimeFilters(count, buffer);
+
         m_condition.wakeAll();
 	return got;
     }
@@ -918,6 +921,8 @@
 
     applyAuditioningEffect(count, buffer);
 
+	applyRealTimeFilters(count, buffer);
+
     m_condition.wakeAll();
 
     return count;
@@ -1463,3 +1468,11 @@
     s.m_mutex.unlock();
 }
 
+void AudioCallbackPlaySource::applyRealTimeFilters(size_t count, float **buffers)
+{
+	if (!m_filterStack) return;
+
+	m_filterStack->putInput(buffers, count);
+	m_filterStack->getOutput(buffers, count);
+
+}
\ No newline at end of file
--- a/sv/audioio/AudioCallbackPlaySource.h	Wed Jun 13 15:49:23 2007 +0000
+++ b/sv/audioio/AudioCallbackPlaySource.h	Tue Jun 19 15:15:12 2007 +0000
@@ -20,6 +20,7 @@
 #include "base/AudioPlaySource.h"
 #include "base/PropertyContainer.h"
 #include "base/Scavenger.h"
+#include "FilterStack.h"
 
 #include <QObject>
 #include <QMutex>
@@ -215,6 +216,8 @@
      */
     void setAuditioningPlugin(RealTimePluginInstance *plugin);
 
+	void setRealTimeFilterStack(FilterStack	*filterStack){ m_filterStack = filterStack;}
+
 signals:
     void modelReplaced();
 
@@ -305,6 +308,8 @@
     // Called from getSourceSamples.
     void applyAuditioningEffect(size_t count, float **buffers);
 
+	void applyRealTimeFilters(size_t count, float **buffers);
+
     class FillThread : public Thread
     {
     public:
@@ -325,6 +330,8 @@
     SRC_STATE *m_crapConverter; // for use when playing very fast
     int m_resampleQuality;
     void initialiseConverter();
+
+	FilterStack			*m_filterStack;
 };
 
 #endif
--- a/sv/document/Document.cpp	Wed Jun 13 15:49:23 2007 +0000
+++ b/sv/document/Document.cpp	Tue Jun 19 15:15:12 2007 +0000
@@ -35,6 +35,14 @@
     m_mainModel(0),
 	m_audioSourceInfoModel(0)
 {
+	m_filterStack = new FilterStack();
+
+	connect(m_filterStack, SIGNAL(filterRemoved(QString)),
+            this, SIGNAL(filterRemoved(QString)));
+
+	connect(m_filterStack, SIGNAL(newFilterAdded(Filter *)),
+            this, SIGNAL(newFilterAdded(Filter *)));
+
     connect(this, SIGNAL(modelAboutToBeDeleted(Model *)),
             TransformFactory::getInstance(),
             SLOT(modelAboutToBeDeleted(Model *)));
@@ -84,6 +92,7 @@
     emit mainModelChanged(0);
     delete m_mainModel;
 
+	delete m_filterStack;
 }
 
 Layer *
@@ -896,3 +905,29 @@
 
     return s;
 }
+
+
+Filter * Document::createFilter(RealTimeFilterFactory::FilterType type)
+{
+	Filter *newFilter = RealTimeFilterFactory::getInstance()->createFilter(type);
+    if (!newFilter) return 0;
+
+    newFilter->setObjectName(m_filterStack->getUniqueFilterName(newFilter->objectName()));
+
+	m_filterStack->addFilter(newFilter);
+
+    return newFilter;
+}
+
+void Document::removeFilter(QString &name)
+{
+	if (name == "")
+		return;
+
+	m_filterStack->removeFilter(name);
+}
+
+void Document::removeAllFilters()
+{
+	m_filterStack->removeAllFilters();
+}
\ No newline at end of file
--- a/sv/document/Document.h	Wed Jun 13 15:49:23 2007 +0000
+++ b/sv/document/Document.h	Tue Jun 19 15:15:12 2007 +0000
@@ -21,6 +21,8 @@
 #include "transform/PluginTransform.h"
 #include "base/Command.h"
 #include "data/model/AudioSourceInfoModel.h"
+#include "filter/RealTimeFilterFactory.h"
+#include "filter/FilterStack.h"
 
 #include <map>
 #include <set>
@@ -202,6 +204,13 @@
 
 	QString toEasaierXmlString(QString indent, QString extraAttributes) const;
 
+	Filter *createFilter(RealTimeFilterFactory::FilterType);
+
+	FilterStack	*getRealTimeFilterStack(){return m_filterStack;}
+
+	void removeFilter(QString &name);
+	void removeAllFilters();
+
 signals:
     void layerAdded(Layer *);
     void layerRemoved(Layer *);
@@ -220,6 +229,9 @@
 
 	void audioSourceInfoAdded(AudioSourceInfoModel *);
 
+	void newFilterAdded(Filter *);
+	void filterRemoved(QString);
+
 protected:
     void releaseModel(Model *model);
 
@@ -325,6 +337,8 @@
      */
     typedef std::set<Layer *> LayerSet;
     LayerSet m_layers;
+
+	FilterStack			*m_filterStack;
 };
 
 #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sv/filter/DSP.cpp	Tue Jun 19 15:15:12 2007 +0000
@@ -0,0 +1,419 @@
+//#include  "stdafx.h"
+#include  "DSP.h"
+#include  "math.h"
+#include	<cassert>
+#include	<cmath>
+extern int currentposition;
+extern float lastfactor;
+extern float hopfactor;
+
+
+//These variables are only required for find peaks...the same variables are passed in to other functions
+extern int numpeaks;
+extern float *peak_locations; 
+extern float *p_mags; 
+extern float *c_mags;
+
+void intobyte(int num, char* pbyte1 ,char* pbyte2)
+{
+
+		
+		char firstByte = (num & 0xff);
+		int secondByteInt = (num & 0xff00);
+		secondByteInt = secondByteInt>>8;
+		char secondByte = secondByteInt;
+
+		/*int thirdByteInt = (array[i] & 0xff0000);
+		thirdByteInt = thirdByteInt>>16;
+		char thirdByte = thirdByteInt;
+
+		int fourthByteInt = (array[i] & 0xff000000);
+		fourthByteInt = fourthByteInt>>24;
+		char fourthByte = fourthByteInt;*/
+
+
+		*pbyte1 = firstByte;
+		*pbyte2 = secondByte;
+}
+
+
+void cart2pol(float* cart, float* mags, float* phases, int framesize)
+{
+	int length=framesize/2;
+	for (int f = 0; f<length; f++)
+	{
+	
+	mags[f]=sqrt((cart[f]*cart[f])+(cart[length+f]*cart[length+f]));
+	
+
+	phases[f]=atan2((double)(-1*cart[f+length]),(double)(cart[f]));
+	
+	
+
+	}
+
+
+}
+
+void pol2cart(float* cart, float* mags, float* phases, int framesize)
+{
+	int length=framesize/2;
+	for (int f = 0; f<length; f++)
+	{
+		
+		cart[f]=mags[f]*cos(phases[f]);
+		cart[length+f]=-(mags[f]*sin(phases[f]));
+	
+	
+	}
+
+
+}
+
+void hanning(float* window, int framesize)
+{
+	
+	for (int f = 0; f<framesize; f++)
+	{
+		
+		window[f]= (0.5*(1-cos(2*PI*(f+1)/(framesize+1))));
+	
+	}
+
+
+}
+
+void updatephases(float* c_phase,float* p_phase,float* c_synthphase,float* p_synthphase, int framesize,float hopfactor,float interpfactor)
+{
+
+	float synth_hopsize=framesize/4;
+	float actual_anhop=floor(hopfactor*synth_hopsize);
+	float anhop = floor((hopfactor*synth_hopsize)/interpfactor);
+	float inst_freq;
+	float omega_k;
+	float delta_phi;
+	float a, k;
+
+	for (int f = 0; f<(framesize/2); f++)
+	{
+		
+		//float bin = (f/(float)framesize);
+
+		interpfactor;
+
+		omega_k=(2*PI*f)/float(framesize);			//This is the predicted angular freqency rads/sec of the centre frequency
+		
+		delta_phi=(c_phase[f]-p_phase[f])-(anhop*omega_k);
+
+		a = delta_phi/(2*PI);
+		
+		k = floor(a+0.5);
+		
+		delta_phi = delta_phi-k*2*PI;
+		
+		inst_freq=omega_k+delta_phi/anhop; 
+	
+		
+		
+		c_synthphase[f] = p_synthphase[f]+(inst_freq*synth_hopsize); 
+
+		if (currentposition<actual_anhop){c_synthphase[f] = c_phase[f];}
+		
+		p_synthphase[f] = c_synthphase[f];
+
+		p_phase[f] = c_phase[f];
+
+		
+		
+		
+
+	
+	}
+}
+
+void updatephases2(float* c_phase,float* p_phase,float* c_synthphase,float* p_synthphase, int framesize,float hopfactor,float interpfactor)
+{
+
+	float synth_hopsize=framesize/4;
+	float actual_anhop=actual_anhop=floor(hopfactor*synth_hopsize);
+	float anhop = floor((hopfactor*synth_hopsize)/interpfactor);
+	float inst_freq;
+	float omega_k;
+	float delta_phi;
+	float a, k;
+
+	for (int f = 0; f<(framesize/2); f++)
+	{
+		
+		//float bin = (f/(float)framesize);
+
+		interpfactor;
+
+		omega_k=(2*PI*f)/float(framesize);			//This is the predicted angular freqency rads/sec of the centre frequency
+		
+		delta_phi=(c_phase[f]-p_phase[f])-(anhop*omega_k);
+
+		a = delta_phi/(2*PI);
+		
+		k = floor(a+0.5);
+		
+		delta_phi = delta_phi-k*2*PI;
+		
+		inst_freq=omega_k+delta_phi/anhop; 
+	
+		
+		
+		c_synthphase[f] = p_synthphase[f]+(inst_freq*synth_hopsize); 
+
+		
+
+		if (currentposition<actual_anhop){c_synthphase[f] = c_phase[f];}
+		
+		if (!(anhop==lastfactor)){c_synthphase[f]=c_phase[f];}
+		
+		
+		
+		p_synthphase[f] = c_synthphase[f];
+		
+
+		p_phase[f] = c_phase[f];
+
+		
+
+		
+
+	
+	}
+	lastfactor=anhop;
+}
+
+void rotatephases(float* c_phase, float* p_phase, float* c_synthphase, float* p_synthphase, int framesize, float interpfactor)
+{
+	float phase_diff;
+	int diffhop = framesize/4;
+
+	float anhop = floor((diffhop)/interpfactor);
+	float inst_freq;
+	float omega_k;
+	float delta_phi;
+	float a, k;
+	
+	//findpeaks(c_mags, p_mags, framesize, peak_locations, numpeaks);
+	
+	for (int i=0; i<framesize/2; i++)
+	{
+		
+		phase_diff=(c_phase[i]-p_phase[i]);
+		
+		omega_k=(2*PI*i)/float(framesize);
+
+		delta_phi=(phase_diff)-(anhop*omega_k);
+
+		a = delta_phi/(2*PI);
+		
+		k = floor(a+0.5);
+		
+		delta_phi = delta_phi-k*2*PI;
+		
+		inst_freq=omega_k+delta_phi/anhop; 
+					
+		c_synthphase[i]=p_synthphase[i]+(inst_freq*diffhop);
+
+		//c_synthphase[i]=p_synthphase[i]+(phase_diff);
+
+		//c_synthphase[i]=p_synthphase[i]+((phase_diff*diffhop)*interpfactor);
+		
+		//if (currentposition<framesize/2 || (!(lastfactor==hopfactor))){c_synthphase[i] = c_phase[i];}
+		if (currentposition<framesize/2){c_synthphase[i] = c_phase[i];}
+		
+		p_synthphase[i]=c_synthphase[i];
+	}
+
+	lastfactor=hopfactor;
+}
+
+void rotatephases_peaklocked(float* c_phase, float* p_phase, float* c_synthphase, float* p_synthphase, int framesize, float interpfactor)
+{
+	float phase_diff;
+	int diffhop = framesize/4;
+
+	float anhop = floor((diffhop)/interpfactor);
+	float inst_freq;
+	float omega_k;
+	float delta_phi;
+	float a, k;
+	int start, end, i;
+	float original_peak_phase;
+	float cutoff;
+
+	cutoff = 10000;
+
+	cutoff = floor(cutoff/(44100/framesize));
+
+	numpeaks = findpeaks(c_mags, p_mags, framesize, peak_locations);
+	
+	int p=1;
+	//while(peak_locations[p]<cutoff)
+		while(p<=numpeaks)
+	{
+		
+		i=peak_locations[p];
+
+		original_peak_phase=c_phase[i];
+		
+		//start=i-2;
+		//end=i+2;
+		
+		
+		if (p==1){
+			start=0;
+			end=floor(peak_locations[p]+((peak_locations[p+1]-peak_locations[p])/2));
+		}
+
+		else{
+		if (p==numpeaks){
+			start=floor(peak_locations[p-1]+((peak_locations[p]-peak_locations[p-1])/2));
+			end=(framesize/2);
+		}
+		else {
+			start=floor(peak_locations[p-1]+((peak_locations[p]-peak_locations[p-1])/2));
+			end=floor(peak_locations[p]+((peak_locations[p+1]-peak_locations[p])/2));
+		}
+		}
+			
+		phase_diff=(c_phase[i]-p_phase[i]);
+		omega_k=(2*PI*i)/float(framesize);
+		delta_phi=(phase_diff)-(anhop*omega_k);
+		a = delta_phi/(2*PI);
+		k = floor(a+0.5);
+		delta_phi = delta_phi-k*2*PI;
+		inst_freq=omega_k+delta_phi/anhop; 
+		c_synthphase[i]=p_synthphase[i]+(inst_freq*diffhop);
+		//c_synthphase[i]=p_synthphase[i]+(phase_diff);
+		//c_synthphase[i]=p_synthphase[i]+((phase_diff*diffhop)*interpfactor);
+		//if (currentposition<framesize/2 || (!(lastfactor==hopfactor))){c_synthphase[i] = c_phase[i];}
+		if (currentposition<framesize/2){c_synthphase[i] = c_phase[i];}
+		p_synthphase[i]=c_synthphase[i];
+
+		int j;
+		for (j=start; j<i; j++)
+		{
+			c_synthphase[j]=c_synthphase[i]-(original_peak_phase-c_phase[j]);
+			p_synthphase[j]=c_synthphase[j];
+		}
+
+		for (j=i+1; j<end; j++)
+		{
+			c_synthphase[j]=c_synthphase[i]-(original_peak_phase-c_phase[j]);
+			p_synthphase[j]=c_synthphase[j];
+		}
+
+
+		 p++;
+	}
+
+	/*for (i=peak_locations[p]+1; i<(framesize/2); i++)
+	{
+		phase_diff=(c_phase[i]-p_phase[i]);
+		
+		omega_k=(2*PI*i)/float(framesize);
+
+		delta_phi=(phase_diff)-(anhop*omega_k);
+
+		a = delta_phi/(2*PI);
+		
+		k = floor(a+0.5);
+		
+		delta_phi = delta_phi-k*2*PI;
+		
+		inst_freq=omega_k+delta_phi/anhop; 
+					
+		c_synthphase[i]=p_synthphase[i]+(inst_freq*diffhop);
+
+		p_synthphase[i]=c_synthphase[i];
+	}  */
+
+	lastfactor=hopfactor;
+}
+
+
+
+bool transient_detect(float* L_mags, float* R_mags, float* pL_mags, float* pR_mags, float drumthresh, float framesize)
+{
+	
+	extern float *L_phase, *R_phase;
+	int trans = 0;
+	
+	for (int f = 0; f<(framesize/2); f++)
+	{
+		
+			if	((R_mags[f]-pR_mags[f])>0 &&
+				(L_mags[f]-pL_mags[f])>0){trans++;}
+				
+				
+				pR_mags[f]=R_mags[f];
+				pL_mags[f]=L_mags[f];
+				
+
+	}
+	drumthresh=(drumthresh/100)*(framesize/2);
+	
+
+	if (trans>=drumthresh)
+	{
+
+	return true;
+	}
+	else{return false;}
+}
+
+void sintable(float* sinewave, float length, float sr)
+{
+	double pi=3.14179;
+	double time;
+	double amp, freq;
+	
+	for (int i = 0; i<sr; i++)
+
+	{
+		time=double(i*(1/sr));
+		sinewave[i]=(amp)*(cos(2*pi*freq*(time)));
+	}
+}
+
+void cur2last(float* c_phase, float* c_synthphase, float* p_synthphase, int framesize)
+{
+
+for (int i=0; i<framesize/2; i++)
+	{
+		
+		c_synthphase[i]=c_phase[i];
+						
+		p_synthphase[i]=c_synthphase[i];
+	}
+
+
+}
+
+
+int findpeaks(float* c_mags, float* p_mags, float framesize, float* peak_locations)
+
+{
+	numpeaks=0;
+	peak_locations[0]=0;
+	float peakthreshold=0;
+
+	for (int i=2; i<(framesize/2)-2; i++)
+	{
+		
+		if(c_mags[i]>c_mags[i-1] && c_mags[i]>c_mags[i+1] && c_mags[i]>c_mags[i-2] && c_mags[i]>c_mags[i+2] && c_mags[i]>peakthreshold)
+		{
+			numpeaks++;
+			peak_locations[numpeaks]=i;
+			
+		}
+		
+		
+	}
+	return numpeaks;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sv/filter/DSP.h	Tue Jun 19 15:15:12 2007 +0000
@@ -0,0 +1,38 @@
+
+
+
+
+#define PI 3.14179
+
+void intobyte(int num, char* pbyte1 ,char* pbyte2);
+
+void cart2pol(float* cart, float* mags, float* phases, int framesize);
+
+void pol2cart(float* cart, float* mags, float* phases, int framesize);
+
+void hanning(float* window, int framesize);
+
+//This function is the standard phase vocoder propagation technique using the hetrodyned phase increment.
+//The previous frame and phases is always assumed to be the last 'current' frame. This is fine in when the TSM factor is 
+//is not changed. If you change the TSM factor the instantaneous frequency estimates will be wrong since the actual difference 
+//in time between the 2 analysis frames will have changed when the factor changed. This will propagate a phase error 
+void updatephases(float* c_phase,float* p_phase,float* c_synthphase, float* p_synthphase, int framesize,float hopfactor,float interpfactor);
+
+//This function is almost identical to updatephases(). The only difference is that automatically resets the current synthesis phases 
+//to the analysis phases when any change in TSM is invoked. This inhibits the projection of the phase error
+//but causes some grinding on whenever the TSM slider is tweeked.
+void updatephases2(float* c_phase,float* p_phase,float* c_synthphase, float* p_synthphase, int framesize,float hopfactor,float interpfactor);
+
+
+void rotatephases_peaklocked(float* c_phase, float* p_phase, float* c_synthphase, float* p_synthphase, int framesize, float interpfactor);
+
+void rotatephases(float* c_phase, float* p_phase, float* c_synthphase, float* p_synthphase, int framesize, float interpfactor);
+
+
+bool transient_detect(float* L_mags, float* R_mags, float* pL_mags, float* pR_mags, float drumthresh, float framesize);
+
+void sintable(float* sinewave, float length, float sr);
+
+void cur2last(float* c_phase, float* c_synthphase, float* p_synthphase, int framesize);
+
+int findpeaks(float* c_mags, float* p_mags, float framesize, float* peak_locations);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sv/filter/FFTReal.cpp	Tue Jun 19 15:15:12 2007 +0000
@@ -0,0 +1,619 @@
+/*****************************************************************************
+*                                                                            *
+*       DIGITAL SIGNAL PROCESSING TOOLS                                      *
+*       Version 1.01, 1999/11/07                                             *
+*       (c) 1999 - Laurent de Soras                                          *
+*                                                                            *
+*       FFTReal.cpp                                                          *
+*       Fourier transformation of real number arrays.                        *
+*       Portable ISO C++                                                     *
+*                                                                            *
+* Tab = 3                                                                    *
+*****************************************************************************/
+
+
+
+/*\\\ INCLUDE FILES \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
+
+#include	"FFTReal.h"
+
+#include	<cassert>
+#include	<cmath>
+
+
+
+#if defined (_MSC_VER)
+#pragma pack (push, 8)
+#endif	// _MSC_VER
+
+
+
+/*\\\ PUBLIC MEMBER FUNCTIONS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
+
+
+
+/*==========================================================================*/
+/*      Name: Constructor                                                   */
+/*      Input parameters:                                                   */
+/*        - length: length of the array on which we want to do a FFT.       */
+/*                  Range: power of 2 only, > 0.                            */
+/*      Throws: std::bad_alloc, anything                                    */
+/*==========================================================================*/
+
+
+FFTReal::FFTReal (const long length)
+:	_length (length)
+,	_nbr_bits (int (floor (log ((float)length) / log (2.0f) + 0.5f)))
+,	_bit_rev_lut (int (floor (log ((float)length) / log (2.0f) + 0.5f)))
+,	_trigo_lut (int (floor (log ((float)length) / log (2.0f) + 0.5f)))
+,	_sqrt2_2 (flt_t (sqrt (2.0f) * 0.5))
+{
+	assert ((1L << _nbr_bits) == length);
+
+	_buffer_ptr = 0;
+	if (_nbr_bits > 2)
+	{
+		_buffer_ptr = new flt_t [_length];
+	}
+}
+
+
+
+/*==========================================================================*/
+/*      Name: Destructor                                                    */
+/*==========================================================================*/
+
+FFTReal::~FFTReal (void)
+{
+	delete [] _buffer_ptr;
+	_buffer_ptr = 0;
+}
+
+
+
+/*==========================================================================*/
+/*      Name: do_fft                                                        */
+/*      Description: Compute the FFT of the array.                          */
+/*      Input parameters:                                                   */
+/*        - x: pointer on the source array (time).                          */
+/*      Output parameters:                                                  */
+/*        - f: pointer on the destination array (frequencies).              */
+/*             f [0...length(x)/2] = real values,                           */
+/*             f [length(x)/2+1...length(x)-1] = imaginary values of        */
+/*               coefficents 1...length(x)/2-1.                             */
+/*      Throws: Nothing                                                     */
+/*==========================================================================*/
+
+void	FFTReal::do_fft (flt_t f [], const flt_t x []) const
+{
+
+/*______________________________________________
+ *
+ * General case
+ *______________________________________________
+ */
+
+	if (_nbr_bits > 2)
+	{
+		flt_t *			sf;
+		flt_t *			df;
+
+		if (_nbr_bits & 1)
+		{
+			df = _buffer_ptr;
+			sf = f;
+		}
+		else
+		{
+			df = f;
+			sf = _buffer_ptr;
+		}
+
+		/* Do the transformation in several pass */
+		{
+			int		pass;
+			long		nbr_coef;
+			long		h_nbr_coef;
+			long		d_nbr_coef;
+			long		coef_index;
+
+			/* First and second pass at once */
+			{
+				const long * const	bit_rev_lut_ptr = _bit_rev_lut.get_ptr ();
+				coef_index = 0;
+				do
+				{
+					const long		rev_index_0 = bit_rev_lut_ptr [coef_index];
+					const long		rev_index_1 = bit_rev_lut_ptr [coef_index + 1];
+					const long		rev_index_2 = bit_rev_lut_ptr [coef_index + 2];
+					const long		rev_index_3 = bit_rev_lut_ptr [coef_index + 3];
+
+					flt_t	* const	df2 = df + coef_index;
+					df2 [1] = x [rev_index_0] - x [rev_index_1];
+					df2 [3] = x [rev_index_2] - x [rev_index_3];
+
+					const flt_t		sf_0 = x [rev_index_0] + x [rev_index_1];
+					const flt_t		sf_2 = x [rev_index_2] + x [rev_index_3];
+
+					df2 [0] = sf_0 + sf_2;
+					df2 [2] = sf_0 - sf_2;
+					
+					coef_index += 4;
+				}
+				while (coef_index < _length);
+			}
+
+			/* Third pass */
+			{
+				coef_index = 0;
+				const flt_t		sqrt2_2 = _sqrt2_2;
+				do
+				{
+					flt_t				v;
+
+					sf [coef_index] = df [coef_index] + df [coef_index + 4];
+					sf [coef_index + 4] = df [coef_index] - df [coef_index + 4];
+					sf [coef_index + 2] = df [coef_index + 2];
+					sf [coef_index + 6] = df [coef_index + 6];
+
+					v = (df [coef_index + 5] - df [coef_index + 7]) * sqrt2_2;
+					sf [coef_index + 1] = df [coef_index + 1] + v;
+					sf [coef_index + 3] = df [coef_index + 1] - v;
+
+					v = (df [coef_index + 5] + df [coef_index + 7]) * sqrt2_2;
+					sf [coef_index + 5] = v + df [coef_index + 3];
+					sf [coef_index + 7] = v - df [coef_index + 3];
+
+					coef_index += 8;
+				}
+				while (coef_index < _length);
+			}
+
+			/* Next pass */
+			for (pass = 3; pass < _nbr_bits; ++pass)
+			{
+				coef_index = 0;
+				nbr_coef = 1 << pass;
+				h_nbr_coef = nbr_coef >> 1;
+				d_nbr_coef = nbr_coef << 1;
+				const flt_t	* const	cos_ptr = _trigo_lut.get_ptr (pass);
+				do
+				{
+					long				i;
+					const flt_t	*	const sf1r = sf + coef_index;
+					const flt_t	*	const sf2r = sf1r + nbr_coef;
+					flt_t *			const dfr = df + coef_index;
+					flt_t *			const dfi = dfr + nbr_coef;
+
+					/* Extreme coefficients are always real */
+					dfr [0] = sf1r [0] + sf2r [0];
+					dfi [0] = sf1r [0] - sf2r [0];	// dfr [nbr_coef] =
+					dfr [h_nbr_coef] = sf1r [h_nbr_coef];
+					dfi [h_nbr_coef] = sf2r [h_nbr_coef];
+
+					/* Others are conjugate complex numbers */
+					const flt_t	* const	sf1i = sf1r + h_nbr_coef;
+					const flt_t	* const	sf2i = sf1i + nbr_coef;
+					for (i = 1; i < h_nbr_coef; ++ i)
+					{
+						const flt_t		c = cos_ptr [i];					// cos (i*PI/nbr_coef);
+						const flt_t		s = cos_ptr [h_nbr_coef - i];	// sin (i*PI/nbr_coef);
+						flt_t				v;
+
+						v = sf2r [i] * c - sf2i [i] * s;
+						dfr [i] = sf1r [i] + v;
+						dfi [-i] = sf1r [i] - v;	// dfr [nbr_coef - i] =
+
+						v = sf2r [i] * s + sf2i [i] * c;
+						dfi [i] = v + sf1i [i];
+						dfi [nbr_coef - i] = v - sf1i [i];
+					}
+
+					coef_index += d_nbr_coef;
+				}
+				while (coef_index < _length);
+
+				/* Prepare to the next pass */
+				{
+					flt_t	* const		temp_ptr = df;
+					df = sf;
+					sf = temp_ptr;
+				}
+			}
+		}
+	}
+
+/*______________________________________________
+ *
+ * Special cases
+ *______________________________________________
+ */
+
+	/* 4-point FFT */
+	else if (_nbr_bits == 2)
+	{
+		f [1] = x [0] - x [2];
+		f [3] = x [1] - x [3];
+
+		const flt_t			b_0 = x [0] + x [2];
+		const flt_t			b_2 = x [1] + x [3];
+		
+		f [0] = b_0 + b_2;
+		f [2] = b_0 - b_2;
+	}
+
+	/* 2-point FFT */
+	else if (_nbr_bits == 1)
+	{
+		f [0] = x [0] + x [1];
+		f [1] = x [0] - x [1];
+	}
+
+	/* 1-point FFT */
+	else
+	{
+		f [0] = x [0];
+	}
+}
+
+
+
+/*==========================================================================*/
+/*      Name: do_ifft                                                       */
+/*      Description: Compute the inverse FFT of the array. Notice that      */
+/*                   IFFT (FFT (x)) = x * length (x). Data must be          */
+/*                   post-scaled.                                           */
+/*      Input parameters:                                                   */
+/*        - f: pointer on the source array (frequencies).                   */
+/*             f [0...length(x)/2] = real values,                           */
+/*             f [length(x)/2+1...length(x)] = imaginary values of          */
+/*               coefficents 1...length(x)-1.                               */
+/*      Output parameters:                                                  */
+/*        - x: pointer on the destination array (time).                     */
+/*      Throws: Nothing                                                     */
+/*==========================================================================*/
+
+void	FFTReal::do_ifft (const flt_t f [], flt_t x []) const
+{
+
+/*______________________________________________
+ *
+ * General case
+ *______________________________________________
+ */
+
+	if (_nbr_bits > 2)
+	{
+		flt_t *			sf = const_cast <flt_t *> (f);
+		flt_t *			df;
+		flt_t *			df_temp;
+
+		if (_nbr_bits & 1)
+		{
+			df = _buffer_ptr;
+			df_temp = x;
+		}
+		else
+		{
+			df = x;
+			df_temp = _buffer_ptr;
+		}
+
+		/* Do the transformation in several pass */
+		{
+			int			pass;
+			long			nbr_coef;
+			long			h_nbr_coef;
+			long			d_nbr_coef;
+			long			coef_index;
+
+			/* First pass */
+			for (pass = _nbr_bits - 1; pass >= 3; --pass)
+			{
+				coef_index = 0;
+				nbr_coef = 1 << pass;
+				h_nbr_coef = nbr_coef >> 1;
+				d_nbr_coef = nbr_coef << 1;
+				const flt_t	*const cos_ptr = _trigo_lut.get_ptr (pass);
+				do
+				{
+					long				i;
+					const flt_t	*	const sfr = sf + coef_index;
+					const flt_t	*	const sfi = sfr + nbr_coef;
+					flt_t *			const df1r = df + coef_index;
+					flt_t *			const df2r = df1r + nbr_coef;
+
+					/* Extreme coefficients are always real */
+					df1r [0] = sfr [0] + sfi [0];		// + sfr [nbr_coef]
+					df2r [0] = sfr [0] - sfi [0];		// - sfr [nbr_coef]
+					df1r [h_nbr_coef] = sfr [h_nbr_coef] * 2;
+					df2r [h_nbr_coef] = sfi [h_nbr_coef] * 2;
+
+					/* Others are conjugate complex numbers */
+					flt_t * const	df1i = df1r + h_nbr_coef;
+					flt_t * const	df2i = df1i + nbr_coef;
+					for (i = 1; i < h_nbr_coef; ++ i)
+					{
+						df1r [i] = sfr [i] + sfi [-i];		// + sfr [nbr_coef - i]
+						df1i [i] = sfi [i] - sfi [nbr_coef - i];
+
+						const flt_t		c = cos_ptr [i];					// cos (i*PI/nbr_coef);
+						const flt_t		s = cos_ptr [h_nbr_coef - i];	// sin (i*PI/nbr_coef);
+						const flt_t		vr = sfr [i] - sfi [-i];		// - sfr [nbr_coef - i]
+						const flt_t		vi = sfi [i] + sfi [nbr_coef - i];
+
+						df2r [i] = vr * c + vi * s;
+						df2i [i] = vi * c - vr * s;
+					}
+
+					coef_index += d_nbr_coef;
+				}
+				while (coef_index < _length);
+
+				/* Prepare to the next pass */
+				if (pass < _nbr_bits - 1)
+				{
+					flt_t	* const	temp_ptr = df;
+					df = sf;
+					sf = temp_ptr;
+				}
+				else
+				{
+					sf = df;
+					df = df_temp;
+				}
+			}
+
+			/* Antepenultimate pass */
+			{
+				const flt_t		sqrt2_2 = _sqrt2_2;
+				coef_index = 0;
+				do
+				{
+					df [coef_index] = sf [coef_index] + sf [coef_index + 4];
+					df [coef_index + 4] = sf [coef_index] - sf [coef_index + 4];
+					df [coef_index + 2] = sf [coef_index + 2] * 2;
+					df [coef_index + 6] = sf [coef_index + 6] * 2;
+
+					df [coef_index + 1] = sf [coef_index + 1] + sf [coef_index + 3];
+					df [coef_index + 3] = sf [coef_index + 5] - sf [coef_index + 7];
+
+					const flt_t		vr = sf [coef_index + 1] - sf [coef_index + 3];
+					const flt_t		vi = sf [coef_index + 5] + sf [coef_index + 7];
+
+					df [coef_index + 5] = (vr + vi) * sqrt2_2;
+					df [coef_index + 7] = (vi - vr) * sqrt2_2;
+
+					coef_index += 8;
+				}
+				while (coef_index < _length);
+			}
+
+			/* Penultimate and last pass at once */
+			{
+				coef_index = 0;
+				const long *	bit_rev_lut_ptr = _bit_rev_lut.get_ptr ();
+				const flt_t	*	sf2 = df;
+				do
+				{
+					{
+						const flt_t		b_0 = sf2 [0] + sf2 [2];
+						const flt_t		b_2 = sf2 [0] - sf2 [2];
+						const flt_t		b_1 = sf2 [1] * 2;
+						const flt_t		b_3 = sf2 [3] * 2;
+
+						x [bit_rev_lut_ptr [0]] = b_0 + b_1;
+						x [bit_rev_lut_ptr [1]] = b_0 - b_1;
+						x [bit_rev_lut_ptr [2]] = b_2 + b_3;
+						x [bit_rev_lut_ptr [3]] = b_2 - b_3;
+					}
+					{
+						const flt_t		b_0 = sf2 [4] + sf2 [6];
+						const flt_t		b_2 = sf2 [4] - sf2 [6];
+						const flt_t		b_1 = sf2 [5] * 2;
+						const flt_t		b_3 = sf2 [7] * 2;
+
+						x [bit_rev_lut_ptr [4]] = b_0 + b_1;
+						x [bit_rev_lut_ptr [5]] = b_0 - b_1;
+						x [bit_rev_lut_ptr [6]] = b_2 + b_3;
+						x [bit_rev_lut_ptr [7]] = b_2 - b_3;
+					}
+
+					sf2 += 8;
+					coef_index += 8;
+					bit_rev_lut_ptr += 8;
+				}
+				while (coef_index < _length);
+			}
+		}
+	}
+
+/*______________________________________________
+ *
+ * Special cases
+ *______________________________________________
+ */
+
+	/* 4-point IFFT */
+	else if (_nbr_bits == 2)
+	{
+		const flt_t		b_0 = f [0] + f [2];
+		const flt_t		b_2 = f [0] - f [2];
+
+		x [0] = b_0 + f [1] * 2;
+		x [2] = b_0 - f [1] * 2;
+		x [1] = b_2 + f [3] * 2;
+		x [3] = b_2 - f [3] * 2;
+	}
+
+	/* 2-point IFFT */
+	else if (_nbr_bits == 1)
+	{
+		x [0] = f [0] + f [1];
+		x [1] = f [0] - f [1];
+	}
+
+	/* 1-point IFFT */
+	else
+	{
+		x [0] = f [0];
+	}
+}
+
+
+
+/*==========================================================================*/
+/*      Name: rescale                                                       */
+/*      Description: Scale an array by divide each element by its length.   */
+/*                   This function should be called after FFT + IFFT.       */
+/*      Input/Output parameters:                                            */
+/*        - x: pointer on array to rescale (time or frequency).             */
+/*      Throws: Nothing                                                     */
+/*==========================================================================*/
+
+void	FFTReal::rescale (flt_t x []) const
+{
+	const double dpi=3.14179;
+	const flt_t		mul = flt_t (1.0 / _length);
+	long				i = _length - 1;
+
+	do
+	{
+		x [i] *= mul;
+		//x [i] *= mul*(0.5*(1-cos(2*dpi*(i)/_length))); // dan made this change to do rewindowing
+		--i;
+	}
+	while (i >= 0);
+}
+
+
+
+/*\\\ NESTED CLASS MEMBER FUNCTIONS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
+
+
+
+/*==========================================================================*/
+/*      Name: Constructor                                                   */
+/*      Input parameters:                                                   */
+/*        - nbr_bits: number of bits of the array on which we want to do a  */
+/*                    FFT. Range: > 0                                       */
+/*      Throws: std::bad_alloc                                              */
+/*==========================================================================*/
+
+FFTReal::BitReversedLUT::BitReversedLUT (const int nbr_bits)
+{
+	long				length;
+	long				cnt;
+	long				br_index;
+	long				bit;
+
+	length = 1L << nbr_bits;
+	_ptr = new long [length];
+
+	br_index = 0;
+	_ptr [0] = 0;
+	for (cnt = 1; cnt < length; ++cnt)
+	{
+		/* ++br_index (bit reversed) */
+		bit = length >> 1;
+		while (((br_index ^= bit) & bit) == 0)
+		{
+			bit >>= 1;
+		}
+
+		_ptr [cnt] = br_index;
+	}
+}
+
+
+
+/*==========================================================================*/
+/*      Name: Destructor                                                    */
+/*==========================================================================*/
+
+FFTReal::BitReversedLUT::~BitReversedLUT (void)
+{
+	delete [] _ptr;
+	_ptr = 0;
+}
+
+
+
+/*==========================================================================*/
+/*      Name: Constructor                                                   */
+/*      Input parameters:                                                   */
+/*        - nbr_bits: number of bits of the array on which we want to do a  */
+/*                    FFT. Range: > 0                                       */
+/*      Throws: std::bad_alloc, anything                                    */
+/*==========================================================================*/
+
+FFTReal::TrigoLUT::TrigoLUT (const int nbr_bits)
+{
+	long		total_len;
+
+	_ptr = 0;
+	if (nbr_bits > 3)
+	{
+		total_len = (1L << (nbr_bits - 1)) - 4;
+		_ptr = new flt_t [total_len];
+
+		const double	PI = atan (1.0f) * 4;
+		for (int level = 3; level < nbr_bits; ++level)
+		{
+			const long		level_len = 1L << (level - 1);
+			flt_t	* const	level_ptr = const_cast<flt_t *> (get_ptr (level));
+			const double	mul = PI / (level_len << 1);
+
+			for (long i = 0; i < level_len; ++ i)
+			{
+				level_ptr [i] = (flt_t) cos (i * mul);
+			}
+		}
+	}
+}
+
+
+
+/*==========================================================================*/
+/*      Name: Destructor                                                    */
+/*==========================================================================*/
+
+FFTReal::TrigoLUT::~TrigoLUT (void)
+{
+	delete [] _ptr;
+	_ptr = 0;
+}
+
+
+
+#if defined (_MSC_VER)
+#pragma pack (pop)
+#endif	// _MSC_VER
+
+
+
+/*****************************************************************************
+
+	LEGAL
+
+	Source code may be freely used for any purpose, including commercial
+	applications. Programs must display in their "About" dialog-box (or
+	documentation) a text telling they use these routines by Laurent de Soras.
+	Modified source code can be distributed, but modifications must be clearly
+	indicated.
+
+	CONTACT
+
+	Laurent de Soras
+	92 avenue Albert 1er
+	92500 Rueil-Malmaison
+	France
+
+	ldesoras@club-internet.fr
+
+*****************************************************************************/
+
+
+
+/*\\\ EOF \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sv/filter/FFTReal.h	Tue Jun 19 15:15:12 2007 +0000
@@ -0,0 +1,139 @@
+/*****************************************************************************
+*                                                                            *
+*       DIGITAL SIGNAL PROCESSING TOOLS                                      *
+*       Version 1.01, 1999/11/07                                             *
+*       (c) 1999 - Laurent de Soras                                          *
+*                                                                            *
+*       FFTReal.h                                                            *
+*       Fourier transformation of real number arrays.                        *
+*       Portable ISO C++                                                     *
+*                                                                            *
+* Tab = 3                                                                    *
+*****************************************************************************/
+
+
+
+#if defined (FFTReal_CURRENT_HEADER)
+	#error Recursive inclusion of FFTReal header file.
+#endif
+#define	FFTReal_CURRENT_HEADER
+
+#if ! defined (FFTReal_HEADER_INCLUDED)
+#define	FFTReal_HEADER_INCLUDED
+
+
+
+#if defined (_MSC_VER)
+#pragma pack (push, 8)
+#endif	// _MSC_VER
+
+
+
+class	FFTReal
+{
+
+/*\\\ PUBLIC \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
+
+public:
+
+	/* Change this typedef to use a different floating point type in your FFTs
+		(i.e. float, double or long double). */
+	typedef float	flt_t;
+
+	explicit			FFTReal (const long length);
+						~FFTReal ();
+	void				do_fft (flt_t f [], const flt_t x []) const;
+	void				do_ifft (const flt_t f [], flt_t x []) const;
+	void				rescale (flt_t x []) const;
+
+
+
+/*\\\ PRIVATE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
+
+private:
+
+	/* Bit-reversed look-up table nested class */
+	class BitReversedLUT
+	{
+	public:
+		explicit			BitReversedLUT (const int nbr_bits);
+							~BitReversedLUT ();
+		const long *	get_ptr () const
+		{
+			return (_ptr);
+		}
+	private:
+		long *			_ptr;
+	};
+
+	/* Trigonometric look-up table nested class */
+	class	TrigoLUT
+	{
+	public:
+		explicit			TrigoLUT (const int nbr_bits);
+							~TrigoLUT ();
+		const flt_t	*	get_ptr (const int level) const
+		{
+			return (_ptr + (1L << (level - 1)) - 4);
+		};
+	private:
+		flt_t	*			_ptr;
+	};
+
+	const BitReversedLUT	_bit_rev_lut;
+	const TrigoLUT	_trigo_lut;
+	const flt_t		_sqrt2_2;
+	const long		_length;
+	const int		_nbr_bits;
+	flt_t *			_buffer_ptr;
+
+
+
+/*\\\ FORBIDDEN MEMBER FUNCTIONS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
+
+private:
+
+						FFTReal (const FFTReal &other);
+	const FFTReal&	operator = (const FFTReal &other);
+	int				operator == (const FFTReal &other);
+	int				operator != (const FFTReal &other);
+};
+
+
+
+#if defined (_MSC_VER)
+#pragma pack (pop)
+#endif	// _MSC_VER
+
+
+
+#endif	// FFTReal_HEADER_INCLUDED
+
+#undef FFTReal_CURRENT_HEADER
+
+
+
+/*****************************************************************************
+
+	LEGAL
+
+	Source code may be freely used for any purpose, including commercial
+	applications. Programs must display in their "About" dialog-box (or
+	documentation) a text telling they use these routines by Laurent de Soras.
+	Modified source code can be distributed, but modifications must be clearly
+	indicated.
+
+	CONTACT
+
+	Laurent de Soras
+	92 avenue Albert 1er
+	92500 Rueil-Malmaison
+	France
+
+	ldesoras@club-internet.fr
+
+*****************************************************************************/
+
+
+
+/*\\\ EOF \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sv/filter/Filter.cpp	Tue Jun 19 15:15:12 2007 +0000
@@ -0,0 +1,20 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*	Sound Access	
+		EASAIER client application.	
+		Silogic 2007. Laure Bajard. 
+	
+	This program is free software; you can redistribute it and/or    
+	modify it under the terms of the GNU General Public License as    
+	published by the Free Software Foundation; either version 2 of the    
+	License, or (at your option) any later version.  See the file    
+	COPYING included with this distribution for more information.
+*/
+ 
+#include "Filter.h"
+
+Filter::Filter() : PropertyContainer()
+{}
+
+Filter::~Filter()
+{}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sv/filter/Filter.h	Tue Jun 19 15:15:12 2007 +0000
@@ -0,0 +1,49 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*	Sound Access	
+		EASAIER client application.	
+		Silogic 2007. Laure Bajard. 
+	
+	This program is free software; you can redistribute it and/or    
+	modify it under the terms of the GNU General Public License as    
+	published by the Free Software Foundation; either version 2 of the    
+	License, or (at your option) any later version.  See the file    
+	COPYING included with this distribution for more information.
+*/
+
+#ifndef _FILTER_H_
+#define _FILTER_H_
+
+#include "base/PropertyContainer.h"
+
+class Filter : public PropertyContainer
+{
+	Q_OBJECT
+
+public:
+	Filter();
+	virtual ~Filter();
+
+	virtual QString getPropertyLabel(const PropertyName &) const {return "";}
+	virtual QString getPropertyContainerName() const {return "";}
+    virtual QString getPropertyContainerIconName() const {return "";}
+
+	/**
+     * Put (and possibly process) a given number of input samples.
+     * Number should usually equal the value returned from
+     * getRequiredInputSamples().
+     */
+    virtual void putInput(float **input, size_t samples) = 0;
+
+	/**
+     * Get some processed samples.
+     */
+    virtual void getOutput(float **output, size_t samples) = 0;
+
+
+protected:
+
+
+};
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sv/filter/FilterStack.cpp	Tue Jun 19 15:15:12 2007 +0000
@@ -0,0 +1,108 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*	Sound Access	
+		EASAIER client application.	
+		Silogic 2007. Laure Bajard. 
+	
+	This program is free software; you can redistribute it and/or    
+	modify it under the terms of the GNU General Public License as    
+	published by the Free Software Foundation; either version 2 of the    
+	License, or (at your option) any later version.  See the file    
+	COPYING included with this distribution for more information.
+*/
+ 
+#include "FilterStack.h"
+
+FilterStack::FilterStack() : QObject()
+{}
+
+FilterStack::~FilterStack()
+{
+	std::map<int, Filter *>::iterator iter;
+
+	for (iter = m_filters.begin(); iter != m_filters.end(); iter++)
+	{
+		Filter * filter = iter->second;
+		delete filter;
+	}
+	m_filters.clear();
+}
+
+void FilterStack::addFilter(Filter * filter)
+{
+	m_filters[m_count] = filter;
+	m_count++;	
+	emit newFilterAdded(filter);
+}
+
+void FilterStack::putInput(float **input, size_t samples)
+{
+	//only process the first filter, should pass in all filters !!!
+	std::map<int, Filter *>::iterator iter = m_filters.begin();
+
+	if (iter != m_filters.end())
+	{
+		Filter * filter = iter->second;
+		filter->putInput(input, samples);
+	}
+}
+
+void FilterStack::getOutput(float **output, size_t samples)
+{
+	//only process the first filter, should pass in all filters !!!
+	std::map<int, Filter *>::iterator iter = m_filters.begin();
+
+	if (iter != m_filters.end())
+	{
+		Filter * filter = iter->second;
+		filter->getOutput(output, samples);
+	}
+}
+
+QString FilterStack::getUniqueFilterName(QString candidate)
+{
+    for (int count = 1; ; ++count) {
+
+        QString adjusted =
+            (count > 1 ? QString("%1 <%2>").arg(candidate).arg(count) :
+             candidate);
+        
+        bool duplicate = false;
+
+        for (std::map<int, Filter *>::iterator i = m_filters.begin(); i != m_filters.end(); ++i) {
+			Filter * filter = i->second;
+			if (filter->objectName() == adjusted) {
+                duplicate = true;
+                break;
+            }
+        }
+
+        if (!duplicate) return adjusted;
+    }
+}
+
+void FilterStack::removeFilter(QString &name)
+{
+	std::map<int, Filter *>::iterator iter;
+
+	for (iter = m_filters.begin(); iter != m_filters.end(); iter++)
+	{
+		Filter * filter = iter->second;
+		if (filter->objectName() == name)
+		{
+			delete filter;
+			m_filters.erase(iter);
+			emit filterRemoved(name);
+			return;
+		}
+	}
+}
+
+void FilterStack::removeAllFilters()
+{
+	while (!m_filters.empty())
+	{
+		Filter * filter = m_filters.begin()->second;
+		removeFilter(filter->objectName());
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sv/filter/FilterStack.h	Tue Jun 19 15:15:12 2007 +0000
@@ -0,0 +1,50 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*	Sound Access	
+		EASAIER client application.	
+		Silogic 2007. Laure Bajard. 
+	
+	This program is free software; you can redistribute it and/or    
+	modify it under the terms of the GNU General Public License as    
+	published by the Free Software Foundation; either version 2 of the    
+	License, or (at your option) any later version.  See the file    
+	COPYING included with this distribution for more information.
+*/
+
+#ifndef _FILTER_STACK_H_
+#define _FILTER_STACK_H_
+
+#include <QObject>
+#include <map>
+
+#include "Filter.h"
+
+class FilterStack : public QObject
+{
+	Q_OBJECT
+
+public:
+	FilterStack();
+	virtual ~FilterStack();
+
+	void addFilter(Filter * filter);
+	void removeFilter(QString &name);
+
+	void removeAllFilters();
+
+	void putInput(float **input, size_t samples);
+    void getOutput(float **output, size_t samples);
+
+	QString getUniqueFilterName(QString candidate);
+
+signals:
+	void newFilterAdded(Filter *);
+	void filterRemoved(QString);
+
+protected:
+	std::map<int, Filter *> m_filters; 
+
+	int			m_count;
+};
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sv/filter/RealTimeFilterFactory.cpp	Tue Jun 19 15:15:12 2007 +0000
@@ -0,0 +1,81 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*	Sound Access	
+		EASAIER client application.	
+		Silogic 2007. Laure Bajard. 
+	
+	This program is free software; you can redistribute it and/or    
+	modify it under the terms of the GNU General Public License as    
+	published by the Free Software Foundation; either version 2 of the    
+	License, or (at your option) any later version.  See the file    
+	COPYING included with this distribution for more information.
+*/
+ 
+#include "RealTimeFilterFactory.h"
+
+#include "TimeStretchFilter.h"
+
+#include <iostream>
+
+RealTimeFilterFactory * RealTimeFilterFactory::m_instance = new RealTimeFilterFactory;
+
+RealTimeFilterFactory * RealTimeFilterFactory::getInstance()
+{
+    return m_instance;
+}
+
+RealTimeFilterFactory::RealTimeFilterFactory() 
+{}
+
+RealTimeFilterFactory::~RealTimeFilterFactory()
+{}
+
+RealTimeFilterFactory::FilterTypeSet RealTimeFilterFactory::getFilterTypes()
+{
+	FilterTypeSet types;
+
+	types.insert(TimeStretch);
+	
+	return types;
+}
+
+QString RealTimeFilterFactory::getFilterLabel(FilterType type)
+{
+	switch (type) {
+		case TimeStretch: return "Time Stretching";
+		default: return "unknown";
+    }
+}
+
+RealTimeFilterFactory::FilterType RealTimeFilterFactory::getFilterType(QString strType)
+{
+	if (strType == "Time Stretching") {
+		return TimeStretch;
+    }
+	else
+	{
+		return UnknownFilter;
+	}
+}
+
+Filter * RealTimeFilterFactory::createFilter(FilterType type)
+{
+    Filter *filter = 0;
+
+    switch (type) {
+
+		case TimeStretch:
+		filter = new TimeStretchFilter;
+		break;
+
+	    default: break;
+    }
+
+    if (!filter) {
+		std::cerr << "RealTimeFilterFactory::createFilter: Unknown filter type " << type << std::endl;
+    } else {
+		filter->setObjectName(getFilterLabel(type));
+    }
+
+    return filter;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sv/filter/RealTimeFilterFactory.h	Tue Jun 19 15:15:12 2007 +0000
@@ -0,0 +1,50 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*	Sound Access	
+		EASAIER client application.	
+		Silogic 2007. Laure Bajard. 
+	
+	This program is free software; you can redistribute it and/or    
+	modify it under the terms of the GNU General Public License as    
+	published by the Free Software Foundation; either version 2 of the    
+	License, or (at your option) any later version.  See the file    
+	COPYING included with this distribution for more information.
+*/
+
+#ifndef _REAL_TIME_FILTER_FACTORY_H_
+#define _REAL_TIME_FILTER_FACTORY_H_
+
+#include "Filter.h"
+
+#include <set>
+
+class RealTimeFilterFactory
+{
+public:
+
+	enum FilterType {
+		TimeStretch,
+
+		// Not-a-layer-type
+		UnknownFilter = 255
+    };
+
+	RealTimeFilterFactory();
+	virtual ~RealTimeFilterFactory();
+
+	static RealTimeFilterFactory *getInstance();
+
+	typedef std::set<FilterType> FilterTypeSet;
+    FilterTypeSet getFilterTypes();
+
+	QString getFilterLabel(FilterType type);
+	FilterType getFilterType(QString strType);
+
+	Filter * createFilter(FilterType type);
+
+protected:
+
+	static RealTimeFilterFactory *m_instance;
+};
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sv/filter/TimeStretchFilter.cpp	Tue Jun 19 15:15:12 2007 +0000
@@ -0,0 +1,416 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*	Sound Access	
+		EASAIER client application.	
+		Silogic 2007. Laure Bajard. 
+	
+	This program is free software; you can redistribute it and/or    
+	modify it under the terms of the GNU General Public License as    
+	published by the Free Software Foundation; either version 2 of the    
+	License, or (at your option) any later version.  See the file    
+	COPYING included with this distribution for more information.
+*/
+
+#include <math.h>
+
+#include "TimeStretchFilter.h"
+
+#include  "FFTReal.h"
+#include  "DSP.h"
+
+float *audioframe;
+float *prev_audioframe;
+float *window;
+float *processedframe;
+float *outbuffer;
+float *holdbuffer3;
+float *holdbuffer2;
+float *holdbuffer1;
+
+float *c_mags;		///CURRENT FRAME MAGNITUDES
+float *p_mags;		///PREVIOUS FRAME MAGNITUDES
+float *c_phase;		///CURRENT FRAME phases
+float *p_phase;		///PREVIOUS FRAME phases
+float *c_synthphase;
+float *p_synthphase;
+float *synthframe;
+
+float *FFTframe;
+//FFTReal fft_object;
+int framesize = 1024;
+int hop = framesize/4;
+float volume = 1;
+float interpfactor = 1;
+int currentposition = hop+1;
+float *wavdata;
+int dd;
+float sampdiff;
+float difratio;
+float interpsample;
+float maxvalue = 0; 
+
+
+float hopfactor = 1;
+float lastfactor;
+int filelength;
+
+char byte1, byte2;
+int samplevalue;
+char *pbyte1 = &byte1;; 
+char *pbyte2 = &byte2;;
+char *buffer;
+int tempval = 0;
+bool drum = 0;
+float drumthresh = 65;
+int transhold = 0;
+
+int numpeaks;
+float *peak_locations; 
+
+TimeStretchFilter::TimeStretchFilter() : Filter()
+{
+	m_bypass = true;
+	m_transcheck = false;
+	m_peakcheck = false;
+
+	/**********malloc***********/
+/*	FFTframe=(float *)calloc((framesize), sizeof(float));
+			
+	//This block specifically sets up the buffers required to do a 75% overlap scheme
+	audioframe=(float *)calloc((framesize), sizeof(float));			//The current frame
+	prev_audioframe=(float *)calloc((framesize), sizeof(float));
+	window=(float *)calloc((framesize), sizeof(float));				//Window
+	processedframe=(float *)calloc((framesize), sizeof(float));			//The current frame
+	synthframe=(float *)calloc((framesize), sizeof(float));
+	outbuffer=(float *)calloc((framesize/4), sizeof(float));			//The current output segment which is 1/4 framesize for 75% overlap		
+			
+	holdbuffer3=(float *)calloc((framesize*0.75), sizeof(float));	//The hold buffer for the previous frame segment
+	holdbuffer2=(float *)calloc((framesize/2), sizeof(float));		//The fold buffer for the frame segment 2 frames ago
+	holdbuffer1=(float *)calloc((framesize/4), sizeof(float));
+
+	c_mags=(float *)calloc((framesize/2), sizeof(float));			//The magnitude and phase arrays
+	p_mags=(float *)calloc((framesize/2), sizeof(float));
+	c_phase=(float *)calloc((framesize/2), sizeof(float));
+	p_phase=(float *)calloc((framesize/2), sizeof(float));
+	c_synthphase=(float *)calloc((framesize/2), sizeof(float));
+	p_synthphase=(float *)calloc((framesize/2), sizeof(float));
+
+	peak_locations=(float *)calloc((framesize/2), sizeof(float));
+
+	buffer=(char *)calloc((framesize/2), sizeof(char));
+
+	wavdata = (float*)calloc((framesize*2), sizeof(float));
+
+	hanning(window, framesize);
+*/
+	/***************************/
+}
+
+TimeStretchFilter::~TimeStretchFilter()
+{
+	/**********de-alloc***********/
+/*	delete FFTframe;
+			
+	delete audioframe;		
+	delete prev_audioframe;
+	delete window;			
+	delete processedframe;	
+	delete synthframe;
+	//delete outbuffer;	
+			
+	delete holdbuffer3;
+	delete holdbuffer2;
+	delete holdbuffer1;
+			
+	delete c_mags;
+	delete p_mags;
+	delete c_phase;
+	delete p_phase;
+	delete c_synthphase;
+	delete p_synthphase;
+
+	delete peak_locations;
+
+	delete buffer;
+
+	delete outbuffer;	
+*/
+	/***************************/
+}
+
+TimeStretchFilter::PropertyList TimeStretchFilter::getProperties() const
+{
+	PropertyList list;
+    list.push_back("Time");
+	list.push_back("Pitch");
+	list.push_back("Bypass");
+	list.push_back("Transdetect");
+	list.push_back("Peaklock");
+    return list;
+}
+
+QString TimeStretchFilter::getPropertyLabel(const PropertyName &name) const
+{
+    if (name == "Time") return tr("Time");
+	if (name == "Pitch") return tr("Pitch");
+	if (name == "Bypass") return tr("Bypass Processing");
+	if (name == "Transdetect") return tr("Transient Detection");
+	if (name == "Peaklock") return tr("Peak Locking");
+    return "";
+}
+
+TimeStretchFilter::PropertyType TimeStretchFilter::getPropertyType(const PropertyName &name) const
+{
+	if (name == "Time") return RangeProperty;
+	if (name == "Pitch") return RangeProperty;
+	if (name == "Bypass") return ToggleProperty;
+	if (name == "Transdetect") return ToggleProperty;
+	if (name == "Peaklock") return ToggleProperty;
+    return InvalidProperty;
+}
+
+int TimeStretchFilter::getPropertyRangeAndValue(const PropertyName &name,
+                                    int *min, int *max, int *deflt) const
+{
+    //!!! factor this colour handling stuff out into a colour manager class
+	int val = 0;
+
+    if (name == "Time") {
+
+		if (min) *min = -100;
+		if (max) *max = 100;
+		if (deflt) *deflt = 0;
+
+	}
+
+	if (name == "Pitch") {
+
+		if (min) *min = -100;
+		if (max) *max = 100;
+		if (deflt) *deflt = 0;
+
+	}
+
+    return val;
+}
+
+QString TimeStretchFilter::getPropertyValueLabel(const PropertyName &name,
+				    int value) const
+{
+    if (name == "Time") {
+		if (value == -100) 
+			return tr("Slow");
+		if (value == 100)
+			return tr("Fast");
+	}
+    return tr("<unknown>");
+}
+
+void TimeStretchFilter::setProperty(const PropertyName &name, int value)
+{
+    if (name == "Time") {
+		int tmaxfactor=2;
+		if (value > 0){
+			hopfactor=1+((tmaxfactor-1)*(value/100));
+		}
+		if (value < 0){
+			hopfactor=1/(1+((tmaxfactor-1)*((-value)/100)));
+		}
+		if(value == 0){
+			hopfactor=1;
+		}
+	} else if (name == "Pitch") {
+		int pmaxfactor=2;
+		if (value > 0){
+			interpfactor=1+((pmaxfactor-1)*(value/100));
+		}
+		if (value < 0){
+			interpfactor=1/(1+((pmaxfactor-1)*((-value)/100)));
+		}
+		if(value == 0){
+			interpfactor=1;
+		}
+	} else if (name == "Bypass"){
+		m_bypass = (value > 0) ? true : false;
+	} else if (name == "Transdetect"){
+		m_transcheck = (value > 0) ? true : false;
+	} else if (name == "Peaklock"){
+		m_peakcheck = (value > 0) ? true : false;
+	}
+
+}
+
+void TimeStretchFilter::putInput(float **input, size_t samples)
+{
+/*	int i;
+	int channel = 2;
+
+	for (i=0; i<framesize; i++){
+		wavdata[2*i]=input[0][i];
+		wavdata[2*i+1]=input[1][i];
+		//wavdata[2*i+1]=input[0][i];
+	}
+
+	currentposition=hop+1;
+
+	for (int i = 0; i<(framesize); i++)
+	{
+			
+		//This block was specifically written to do resampling interpolation for crude pitch shifting
+		//if it's not being used the audioframe line after the else should be used which is also used in bypass mode
+		//At
+		
+		if (m_bypass == false) {
+			dd = floor(double(i*interpfactor));
+			difratio = (double(i*interpfactor)) - floor(double(i*interpfactor));
+		
+		
+			// this block loads a frame as normal
+			sampdiff=wavdata[dd+currentposition+1]-wavdata[dd+currentposition];
+			interpsample = (difratio*sampdiff)+wavdata[dd+currentposition];
+			audioframe[i] = (interpsample*32767*volume)*window[i];
+		
+			// this block loads a frame exactly 1 hop back. This is used only forthe purposes of an efficient 
+			// way to calculate phase differences without having to use hetrodyning as suggested by Dave Dorran
+			sampdiff=wavdata[dd+currentposition+1-hop]-wavdata[dd+currentposition-hop];
+			interpsample = (difratio*sampdiff)+wavdata[dd+currentposition-hop];
+			prev_audioframe[i] = (interpsample*32767*volume)*window[i];
+		
+			//processedframe[i] = (audioframe[i])*(0.5*(1-cos(2*PI*(i)/framesize)));   ///needs to happen after processing
+		}
+		else {
+			audioframe[i] = (wavdata[i+currentposition+1]*32767*volume)*window[i];
+			processedframe[i] = (audioframe[i])*window[i];
+		}
+		//--------------------------------------------------------------------------------------------
+		
+		//calculate time frame stats here
+		if (audioframe[i]> maxvalue){
+			maxvalue=audioframe[i];
+		}	
+	}
+		
+	//This maxvalue is the paeak in the frame. The progress bar is on
+	//a timer event which checks this value in order to have a realtime
+	//display update for the peak meter.
+	tempval = ((maxvalue/32767)*2)*100;
+	maxvalue = maxvalue*.9;
+	
+	//---------------------------------------------------------------------------------
+	FFTReal fft_object (framesize);
+			
+	if (m_bypass == false)
+	{ 
+		fft_object.do_fft (FFTframe,audioframe);
+	
+		cart2pol(FFTframe, c_mags, c_phase, framesize);
+
+		//--------------------------------------------
+	
+		fft_object.do_fft (FFTframe,prev_audioframe);
+
+		cart2pol(FFTframe, p_mags, p_phase, framesize);
+		
+		drum=transient_detect(c_mags, c_mags, p_mags, p_mags, drumthresh, framesize);
+	
+	
+		if (m_transcheck)
+		{
+	
+			if (drum && transhold==0){
+				cur2last(c_phase, c_synthphase, p_synthphase, framesize);
+				transhold=4;
+			}
+			else{
+				if(m_peakcheck){
+					rotatephases_peaklocked(c_phase, p_phase, c_synthphase, p_synthphase, framesize, interpfactor);
+				}
+				else{
+					rotatephases(c_phase, p_phase, c_synthphase, p_synthphase, framesize, interpfactor);
+				}
+			}
+		}
+		else
+		{
+			if(m_peakcheck){
+				rotatephases_peaklocked(c_phase, p_phase, c_synthphase, p_synthphase, framesize, interpfactor);
+			}
+			else{
+				rotatephases(c_phase, p_phase, c_synthphase, p_synthphase, framesize, interpfactor);
+			}
+		}
+	
+		if(transhold != 0){
+			transhold=transhold-1;
+		}
+	
+		drum = 0;
+		//---------------------------------------
+		
+		//updatephases2(c_phase, p_phase, c_synthphase, p_synthphase, framesize, hopfactor, interpfactor);
+
+		//calculate freqframe stats here
+
+		//process freq domian here
+		
+		pol2cart(FFTframe, c_mags, c_synthphase, framesize);
+		
+		fft_object.do_ifft (FFTframe,processedframe);
+		fft_object.rescale (processedframe); //VIP######## I have edited this function to do rewindowing also######
+	}
+
+	//-----------------------------------------------------------------------------------
+	
+	for (int p = 0; p<(framesize); p++){
+		processedframe[p]=processedframe[p]*window[p];
+	}
+	
+	for (int j = 0; j<(framesize); j++)
+	{		
+		//This block deals with the buffers for a 75% overlap scheme		
+		
+		if (j < framesize/4){
+			outbuffer[j]=(processedframe[j]+holdbuffer1[j]+holdbuffer2[j]+holdbuffer3[j])*0.5;
+			holdbuffer1[j]=holdbuffer2[j+(framesize/4)];
+		}
+
+		if (j < framesize/2){
+			holdbuffer2[j]=holdbuffer3[j+(framesize/4)];
+		}
+
+		if (j < framesize*0.75){
+			holdbuffer3[j]=processedframe[j+(framesize/4)];
+		}
+
+		if (j < framesize/4){
+			samplevalue = outbuffer[j];
+			intobyte(samplevalue, pbyte1, pbyte2);
+			buffer[j*2] = byte1;
+			buffer[j*2+1] = byte2;
+		}	
+	}
+
+	if (m_bypass == false && transhold==0) {
+		currentposition = currentposition + floor(hop*hopfactor);
+	}
+	else {		
+		currentposition = currentposition + hop;
+	} // LB + floor(hop)
+				
+	if (filelength - currentposition < framesize*2){
+		currentposition=hop+1;
+	}
+	*/
+}
+
+void TimeStretchFilter::getOutput(float **output, size_t samples)
+{
+	/*int i;
+	int channel = 2;
+
+	for (i=0; i<samples; i++){
+		output[0][i] = outbuffer[i*2];
+		output[1][i] = outbuffer[i*2+1];
+	}*/
+	
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sv/filter/TimeStretchFilter.h	Tue Jun 19 15:15:12 2007 +0000
@@ -0,0 +1,52 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*	Sound Access	
+		EASAIER client application.	
+		Silogic 2007. Laure Bajard. 
+	
+	This program is free software; you can redistribute it and/or    
+	modify it under the terms of the GNU General Public License as    
+	published by the Free Software Foundation; either version 2 of the    
+	License, or (at your option) any later version.  See the file    
+	COPYING included with this distribution for more information.
+*/
+
+#ifndef _TIME_STRETCH_FILTER_H_
+#define _TIME_STRETCH_FILTER_H_
+
+#include "Filter.h"
+
+class TimeStretchFilter : public Filter
+{
+	Q_OBJECT
+
+public:
+	TimeStretchFilter();
+	virtual ~TimeStretchFilter();
+
+	virtual PropertyList getProperties() const;
+	virtual QString getPropertyLabel(const PropertyName &) const;
+	virtual PropertyType getPropertyType(const PropertyName &) const;
+	virtual int getPropertyRangeAndValue(const PropertyName &,
+                                         int *min, int *max, int *deflt) const;
+    virtual QString getPropertyValueLabel(const PropertyName &,
+					  int value) const;
+
+	virtual void setProperty(const PropertyName &, int value);
+
+	virtual void putInput(float **input, size_t samples);
+	virtual void getOutput(float **output, size_t samples);
+
+protected:
+
+	bool m_bypass;
+	bool m_transcheck;
+	bool m_peakcheck;
+		
+
+
+
+
+};
+
+#endif
\ No newline at end of file
--- a/sv/main/MainWindow.cpp	Wed Jun 13 15:49:23 2007 +0000
+++ b/sv/main/MainWindow.cpp	Tue Jun 19 15:15:12 2007 +0000
@@ -48,8 +48,6 @@
 #include "widgets/AdvancedToolBox.h"
 #include "widgets/ConnectionStatus.h"
 #include "widgets/LayerViewerWidget.h"
-#include "widgets/AudioFilterViewerWidget.h"
-#include "widgets/ItemAudioFilterList.h"
 
 #include "audioio/AudioCallbackPlaySource.h"
 #include "audioio/AudioCallbackPlayTarget.h"
@@ -72,6 +70,9 @@
 #include "base/TempDirectory.h"
 #include "osc/OSCQueue.h"
 #include "main/EasaierSessionManager.h"
+#include "widgets/RealTimeFilterPropertyStack.h"
+#include "filter/FilterStack.h"
+#include "filter/RealTimeFilterFactory.h"
 
 // For version information
 #include "vamp/vamp.h"
@@ -285,15 +286,8 @@
 	m_toolBox = new AdvancedToolBox();
 	m_toolBox->addItem("Layers", new QWidget);
 	
-/*	ItemAudioFilterList *itAudio = new ItemAudioFilterList;
-	itAudio->setName(QString("testttttttt"));
-	itAudio->setIcon(QString(":icons/easaier.png"));
-*/
-	AudioFilterViewerWidget *audioview = new AudioFilterViewerWidget;
-//	audioview->addItem(itAudio);
-
-	
-	m_toolBox->addItem("Real-time filters",audioview);
+	m_filterPropertyStack = new RealTimeFilterPropertyStack();
+	m_toolBox->addItem("Real-time filters",m_filterPropertyStack);
 
 	/******** only for logo ****/
 	QLabel *logo = new QLabel;
@@ -312,8 +306,6 @@
 	widgetAuxForLogo->setLayout(logoLayout);
 	/****************************/
 
-	
-
 	ExpandWidget *mainExpandWidget = new ExpandWidget();
 	mainExpandWidget->setWidgetLocation(ExpandWidget::Location_Right);
 	mainExpandWidget->setPanes(bottomExpandWidget, widgetAuxForLogo);
@@ -488,6 +480,7 @@
     setupViewMenu();
     setupPaneAndLayerMenus();
     setupTransformsMenu();
+	setupFiltersMenu();
 	setupSettingMenu();
     setupHelpMenu();
 
@@ -1817,6 +1810,7 @@
     emit canClearSelection(haveSelection);
     emit canEditSelection(haveSelection && haveCurrentEditableLayer);
     emit canSave(m_sessionFile != "" && m_documentModified);
+	emit canAddFilter(haveMainModel);		
 }
 
 void
@@ -2773,6 +2767,14 @@
             this, SLOT(modelGenerationFailed(QString)));
     connect(m_document, SIGNAL(modelRegenerationFailed(QString, QString)),
             this, SLOT(modelRegenerationFailed(QString, QString)));
+
+	connect(m_document, SIGNAL(newFilterAdded(Filter *)), 
+		m_filterPropertyStack, SLOT(filterAdded(Filter *)));
+	connect(m_document, SIGNAL(filterRemoved(QString)), 
+		m_filterPropertyStack, SLOT(filterRemoved(QString)));
+
+	m_playSource->setRealTimeFilterStack(m_document->getRealTimeFilterStack());
+
 }
 
 void
@@ -2807,6 +2809,9 @@
 	m_paneStack->deletePane(pane);
     }
 
+	if (m_document)
+		m_document->removeAllFilters();
+
 	m_infoWidget->reset();
 	m_searchWidget->reset();
 	m_resultsWidget->reset();
@@ -4206,6 +4211,8 @@
     m_panLayer->setModel(model);
     if (model) m_viewManager->setMainModelSampleRate(model->getSampleRate());
     if (model && !m_playTarget && m_audioOutput) createPlayTarget();
+
+	updateMenuStates();
 }
 
 void
@@ -5326,4 +5333,43 @@
 	connect(m_multiPaneLayerContainer, SIGNAL(removeSelectedItem()), this, SLOT(deleteCurrentLayer())); 
 	connect(this, SIGNAL(newCurrentPane(Pane*)), m_multiPaneLayerContainer, SLOT(currentPaneChanged(Pane*)));
 	m_toolBox->insertItem(0,"Layers", m_multiPaneLayerContainer);
-}	
\ No newline at end of file
+}	
+
+void MainWindow::setupFiltersMenu()
+{
+	if (m_mainMenusCreated) return;
+
+	QAction *action = 0;
+	QMenu *menu = 0;
+
+    menu = menuBar()->addMenu(tr("&Filter"));
+    menu->setTearOffEnabled(true);
+    
+	RealTimeFilterFactory::FilterTypeSet filterTypes = RealTimeFilterFactory::getInstance()->getFilterTypes();
+	RealTimeFilterFactory::FilterTypeSet::iterator iter;
+
+    for (iter = filterTypes.begin(); iter != filterTypes.end(); iter++) {
+		action = new QAction(RealTimeFilterFactory::getInstance()->getFilterLabel(*iter), this);
+		action->setObjectName(RealTimeFilterFactory::getInstance()->getFilterLabel(*iter));
+		connect(action, SIGNAL(triggered()), this, SLOT(addFilter()));
+		connect(this, SIGNAL(canAddFilter(bool)), action, SLOT(setEnabled(bool)));
+		menu->addAction(action);
+	}
+
+	connect(m_filterPropertyStack, SIGNAL(removeFilter(QString)), this, SLOT(removeFilter(QString))); 
+
+}
+
+void MainWindow::addFilter()
+{
+	QString filterType = sender()->objectName();
+
+	Filter* filter = m_document->createFilter(RealTimeFilterFactory::getInstance()->getFilterType(filterType));
+
+}
+
+void MainWindow::removeFilter(QString name)
+{
+	if (m_document)
+		m_document->removeFilter(name);
+}
\ No newline at end of file
--- a/sv/main/MainWindow.h	Wed Jun 13 15:49:23 2007 +0000
+++ b/sv/main/MainWindow.h	Tue Jun 19 15:15:12 2007 +0000
@@ -65,6 +65,7 @@
 class AdvancedToolBox;
 class EasaierSessionManager;
 class QueryModel;
+class RealTimeFilterPropertyStack;
 
 class MainWindow : public QMainWindow
 {
@@ -138,6 +139,8 @@
     void canSave(bool);
 	void newCurrentPane(Pane *pane);
 
+	void canAddFilter(bool);
+
 public slots:
     void preferenceChanged(PropertyContainer::PropertyName);
 
@@ -189,6 +192,9 @@
     void renameCurrentLayer();
     void deleteCurrentLayer();
 
+	void addFilter();
+	void removeFilter(QString);
+
     void playLoopToggled();
     void playSelectionToggled();
     void playSpeedChanged(int);
@@ -369,7 +375,8 @@
     void setupViewMenu();
     void setupPaneAndLayerMenus();
     void setupTransformsMenu();
-    void setupHelpMenu();
+	void setupFiltersMenu();
+	void setupHelpMenu();
     void setupExistingLayersMenus();
     void setupToolbars();
 
@@ -471,6 +478,8 @@
 
 	MultiPaneLayerContainer					*m_multiPaneLayerContainer;
 
+	RealTimeFilterPropertyStack	*m_filterPropertyStack;
+
 private:
 	void createMultiPaneLayerContainer();
 
--- a/sv/sound_access.vcproj	Wed Jun 13 15:49:23 2007 +0000
+++ b/sv/sound_access.vcproj	Tue Jun 19 15:15:12 2007 +0000
@@ -44,7 +44,7 @@
 				Name="VCCLCompilerTool"
 				AdditionalOptions="-Zm200 -EHsc"
 				Optimization="2"
-				AdditionalIncludeDirectories="&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include\QtXml&quot;;&quot;$(QTDIR)\include&quot;;.;..;audioio;document;transform;osc;main;&quot;$(QTDIR)\include\ActiveQt&quot;;tmp_moc;&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot;;&quot;$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0&quot;;&quot;$(EASAIER_UTILS_DIR)\libsamplerate\libsamplerate-0.1.2\src&quot;;&quot;$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2&quot;;&quot;$(EASAIER_UTILS_DIR)\portaudio\portaudio_v18_1\pa_common&quot;;&quot;$(EASAIER_UTILS_DIR)\libsndfile\libsndfile-1_0_16&quot;;&quot;$(EASAIER_UTILS_DIR)\bzip2\bzip2-1.0.3&quot;"
+				AdditionalIncludeDirectories="&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include\QtXml&quot;;&quot;$(QTDIR)\include&quot;;.;..;audioio;document;transform;osc;filter;main;&quot;$(QTDIR)\include\ActiveQt&quot;;tmp_moc;&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot;;&quot;$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0&quot;;&quot;$(EASAIER_UTILS_DIR)\libsamplerate\libsamplerate-0.1.2\src&quot;;&quot;$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2&quot;;&quot;$(EASAIER_UTILS_DIR)\portaudio\portaudio_v18_1\pa_common&quot;;&quot;$(EASAIER_UTILS_DIR)\libsndfile\libsndfile-1_0_16&quot;;&quot;$(EASAIER_UTILS_DIR)\bzip2\bzip2-1.0.3&quot;"
 				PreprocessorDefinitions="NDEBUG;BUILD_RELEASE;UNICODE;_UNICODE;_WINDOWS;QT_LARGEFILE_SUPPORT;WIN32;HAVE_BZ2;HAVE_PORTAUDIO;HAVE_PORTAUDIO_V18;HAVE_OGGZ;HAVE_FISHSOUND;HAVE_FFTW3F;HAVE_VAMP;HAVE_VAMP_HOSTSDK;HAVE_SNDFILE;HAVE_SAMPLERATE;QT_THREAD_SUPPORT;QT_DLL;QT_NO_DEBUG;QT_XML_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB;USE_VC;_USE_MATH_DEFINES"
 				GeneratePreprocessedFile="0"
 				MinimalRebuild="false"
@@ -135,7 +135,7 @@
 				Name="VCCLCompilerTool"
 				AdditionalOptions="-Zm200 -EHsc"
 				Optimization="0"
-				AdditionalIncludeDirectories="&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include\QtXml&quot;;&quot;$(QTDIR)\include&quot;;.;..;audioio;document;transform;osc;main;&quot;$(QTDIR)\include\ActiveQt&quot;;tmp_moc;&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot;;&quot;$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0&quot;;&quot;$(EASAIER_UTILS_DIR)\libsamplerate\libsamplerate-0.1.2\src&quot;;&quot;$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2&quot;;&quot;$(EASAIER_UTILS_DIR)\portaudio\portaudio_v18_1\pa_common&quot;;&quot;$(EASAIER_UTILS_DIR)\libsndfile\libsndfile-1_0_16&quot;;&quot;$(EASAIER_UTILS_DIR)\bzip2\bzip2-1.0.3&quot;"
+				AdditionalIncludeDirectories="&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include\QtXml&quot;;&quot;$(QTDIR)\include&quot;;.;..;audioio;document;transform;osc;filter;main;&quot;$(QTDIR)\include\ActiveQt&quot;;tmp_moc;&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot;;&quot;$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0&quot;;&quot;$(EASAIER_UTILS_DIR)\libsamplerate\libsamplerate-0.1.2\src&quot;;&quot;$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2&quot;;&quot;$(EASAIER_UTILS_DIR)\portaudio\portaudio_v18_1\pa_common&quot;;&quot;$(EASAIER_UTILS_DIR)\libsndfile\libsndfile-1_0_16&quot;;&quot;$(EASAIER_UTILS_DIR)\bzip2\bzip2-1.0.3&quot;"
 				PreprocessorDefinitions="BUILD_DEBUG;UNICODE;_UNICODE;_WINDOWS;QT_LARGEFILE_SUPPORT;WIN32;HAVE_BZ2;HAVE_PORTAUDIO;HAVE_PORTAUDIO_V18;HAVE_OGGZ;HAVE_FISHSOUND;HAVE_FFTW3F;HAVE_VAMP;HAVE_VAMP_HOSTSDK;HAVE_SNDFILE;HAVE_SAMPLERATE;QT_THREAD_SUPPORT;QT_DLL;QT_XML_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB;USE_VC;_USE_MATH_DEFINES"
 				GeneratePreprocessedFile="0"
 				MinimalRebuild="false"
@@ -237,6 +237,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\filter\DSP.CPP"
+				>
+			</File>
+			<File
 				RelativePath=".\main\EasaierSessionManager.cpp"
 				>
 			</File>
@@ -249,6 +253,18 @@
 				>
 			</File>
 			<File
+				RelativePath=".\filter\FFTReal.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\filter\Filter.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\filter\FilterStack.cpp"
+				>
+			</File>
+			<File
 				RelativePath="main\main.cpp"
 				>
 			</File>
@@ -281,6 +297,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\filter\RealTimeFilterFactory.cpp"
+				>
+			</File>
+			<File
 				RelativePath="transform\RealTimePluginTransform.cpp"
 				>
 			</File>
@@ -289,6 +309,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\filter\TimeStretchFilter.cpp"
+				>
+			</File>
+			<File
 				RelativePath="transform\Transform.cpp"
 				>
 			</File>
@@ -306,10 +330,18 @@
 				>
 			</File>
 			<File
+				RelativePath=".\filter\DSP.H"
+				>
+			</File>
+			<File
 				RelativePath=".\document\ESFileReader.h"
 				>
 			</File>
 			<File
+				RelativePath=".\filter\FFTReal.h"
+				>
+			</File>
+			<File
 				RelativePath="osc\OSCMessage.h"
 				>
 			</File>
@@ -326,6 +358,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\filter\RealTimeFilterFactory.h"
+				>
+			</File>
+			<File
 				RelativePath="transform\RealTimePluginTransform.h"
 				>
 			</File>
@@ -579,6 +615,58 @@
 					</FileConfiguration>
 				</File>
 				<File
+					RelativePath=".\filter\Filter.h"
+					>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;..\..\vamp-plugin-sdk&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath=".\filter\FilterStack.h"
+					>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;..\..\vamp-plugin-sdk&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
 					RelativePath="main\MainWindow.h"
 					>
 					<FileConfiguration
@@ -657,6 +745,32 @@
 					</FileConfiguration>
 				</File>
 				<File
+					RelativePath=".\filter\TimeStretchFilter.h"
+					>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;..\..\vamp-plugin-sdk&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
 					RelativePath="transform\TransformFactory.h"
 					>
 					<FileConfiguration
@@ -725,6 +839,14 @@
 				>
 			</File>
 			<File
+				RelativePath=".\tmp_moc\moc_Filter.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\tmp_moc\moc_FilterStack.cpp"
+				>
+			</File>
+			<File
 				RelativePath="tmp_moc\moc_MainWindow.cpp"
 				>
 			</File>
@@ -737,6 +859,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\tmp_moc\moc_TimeStretchFilter.cpp"
+				>
+			</File>
+			<File
 				RelativePath="tmp_moc\moc_TransformFactory.cpp"
 				>
 			</File>
--- a/sv/sv.pro	Wed Jun 13 15:49:23 2007 +0000
+++ b/sv/sv.pro	Tue Jun 19 15:15:12 2007 +0000
@@ -10,7 +10,7 @@
 TARGET = sound-access
 
 DEPENDPATH += . .. audioio document i18n main osc transform
-INCLUDEPATH += . .. audioio document transform osc main
+INCLUDEPATH += . .. audioio document transform osc main filter
 LIBPATH = ../view ../layer ../data ../widgets ../plugin ../base ../system $$LIBPATH
 
 contains(DEFINES, BUILD_STATIC):LIBS -= -ljack
@@ -50,7 +50,13 @@
            transform/PluginTransform.h \
            transform/RealTimePluginTransform.h \
            transform/Transform.h \
-           transform/TransformFactory.h
+           transform/TransformFactory.h \
+           filter/DSP.h \
+           filter/FFTReal.h \
+           filter/Filter.h \
+           filter/FilterStack.h \
+           filter/RealTimeFilterFactory.h \
+           filter/TimeStretchFilter.h 
 SOURCES += audioio/AudioCallbackPlaySource.cpp \
            audioio/AudioCallbackPlayTarget.cpp \
            audioio/AudioCoreAudioTarget.cpp \
@@ -73,7 +79,13 @@
            transform/PluginTransform.cpp \
            transform/RealTimePluginTransform.cpp \
            transform/Transform.cpp \
-           transform/TransformFactory.cpp
+           transform/TransformFactory.cpp \
+           filter/DSP.cpp \
+           filter/FFTReal.cpp \
+           filter/Filter.cpp \
+           filter/FilterStack.cpp \
+           filter/RealTimeFilterFactory.cpp \
+           filter/TimeStretchFilter.cpp 
 RESOURCES += sound-access.qrc
 
 
--- a/widgets/AudioFilterViewerWidget.cpp	Wed Jun 13 15:49:23 2007 +0000
+++ b/widgets/AudioFilterViewerWidget.cpp	Tue Jun 19 15:15:12 2007 +0000
@@ -58,7 +58,8 @@
 	connect(m_pushButtonUP,SIGNAL(clicked()),m_widgetLIST,SLOT(upCurrentItem()));
 	connect(m_pushButtonDOWN,SIGNAL(clicked()),m_widgetLIST,SLOT(downCurrentItem()));
 	connect(m_pushButtonCONFIG,SIGNAL(clicked()),m_widgetLIST,SLOT(openConfigBoxForCurrentItem()));
-	connect(m_pushButtonREMOVE,SIGNAL(clicked()),this,SLOT(removeSelectedItemRequested()));
+	//connect(m_pushButtonREMOVE,SIGNAL(clicked()),this,SLOT(removeSelectedItemRequested()));
+	connect(m_pushButtonREMOVE,SIGNAL(clicked()),this,SLOT(removeFilterRequested()));
 		
 	/*connect the list of items */
 	connect(m_widgetLIST,SIGNAL(currentChanged(int)),this,SLOT(newItemSelected(int)));
@@ -71,11 +72,13 @@
 }
 
 void AudioFilterViewerWidget::addItem(ItemAudioFilterList *item){
+	if (m_widgetLIST)
 		m_widgetLIST->addItem(item);
 }
 
 void AudioFilterViewerWidget::removeAllItems(){
-	m_widgetLIST->removeAllItems();
+	if (m_widgetLIST)
+		m_widgetLIST->removeAllItems();
 }
 
 void AudioFilterViewerWidget::setCurrentIndex(int i){
@@ -88,5 +91,21 @@
 }
 
 void AudioFilterViewerWidget::removeSelectedItemRequested(){
+	m_widgetLIST->removeSelectedItem();
+}
 
+void AudioFilterViewerWidget::removeFilterRequested()
+{
+	QString filterName = m_widgetLIST->getCurrentFilterName();
+	emit removeFilter(filterName);
+}
+
+QString AudioFilterViewerWidget::getCurrentFilterName()
+{
+	return m_widgetLIST->getCurrentFilterName();
+}
+
+void AudioFilterViewerWidget::removeItem(QString name)
+{
+	m_widgetLIST->removeItem(name);
 }
\ No newline at end of file
--- a/widgets/AudioFilterViewerWidget.h	Wed Jun 13 15:49:23 2007 +0000
+++ b/widgets/AudioFilterViewerWidget.h	Tue Jun 19 15:15:12 2007 +0000
@@ -33,9 +33,18 @@
 	void addItem(ItemAudioFilterList *item);
 	void removeAllItems();
 	void setCurrentIndex(int i);
+
+	QString getCurrentFilterName();
+
+	void removeItem(QString name);
+
+protected slots:
+	void removeFilterRequested();
+
 signals :
 	void currentChanged(int i);
-
+	void removeFilter(QString name);
+	
 private:
 	QPushButton *m_pushButtonCONFIG;
 	QPushButton *m_pushButtonUP;
--- a/widgets/GenericItemList.h	Wed Jun 13 15:49:23 2007 +0000
+++ b/widgets/GenericItemList.h	Tue Jun 19 15:15:12 2007 +0000
@@ -29,6 +29,9 @@
 	virtual void configAction();
 	void setAcceptDrag(bool status);
 
+	virtual void setName(QString &name) = 0;
+	virtual QString getName() = 0;
+
 signals :
 	void doubleClicked();
 	void selected(int index=0);
--- a/widgets/ItemAudioFilterList.cpp	Wed Jun 13 15:49:23 2007 +0000
+++ b/widgets/ItemAudioFilterList.cpp	Tue Jun 19 15:15:12 2007 +0000
@@ -25,7 +25,10 @@
 #include <QLabel>
 
 
-ItemAudioFilterList::ItemAudioFilterList(QWidget *parent) : GenericItemList(parent){
+ItemAudioFilterList::ItemAudioFilterList(QWidget *parent) : GenericItemList(parent),
+	m_propertyBox(0),
+	m_container(0)
+{
 	setAcceptDrops(true);
 
 	/* Init all variables*/
--- a/widgets/ItemAudioFilterList.h	Wed Jun 13 15:49:23 2007 +0000
+++ b/widgets/ItemAudioFilterList.h	Tue Jun 19 15:15:12 2007 +0000
@@ -31,6 +31,7 @@
 	ItemAudioFilterList(QWidget *parent=0);
 	void setIcon(QString &icon);
 	void setName(QString &name);
+	inline QString getName(){return m_labelName->text();}
 	void changeCheckBoxPlayState(bool state);
 	void setPropertyBox(PropertyBox *box);
 	virtual void configAction();
--- a/widgets/ItemContainer.cpp	Wed Jun 13 15:49:23 2007 +0000
+++ b/widgets/ItemContainer.cpp	Tue Jun 19 15:15:12 2007 +0000
@@ -33,6 +33,8 @@
 
 	this->setLayout(mainlayout);
 
+	m_currentItem = -1;
+
 }
 
 void ItemContainer::addItem(GenericItemList *item){
@@ -58,10 +60,88 @@
 }
 
 void ItemContainer::removeSelectedItem(){
-	//QLindList<int>::iterator iter = m_linkedList->find(x);
+	if (m_currentItem < 0)
+		return;
 	
+	QLinkedList<int>::iterator iter = find(m_currentItem);
+	QMap<int,GenericItemList*>::iterator iterItem = m_map->find(*iter);
+	
+	QLinkedList<int>::iterator newCurItem = iter + 1;
+
+	if (iter != m_linkedList->end())
+	{
+		m_linkedList->erase(iter);
+	}
+	if (iterItem != m_map->end())
+	{
+		delete iterItem.value();
+		m_map->erase(iterItem);
+	}
+	
+	reorganize();
+
+	
+	if (newCurItem != m_linkedList->end())
+	{
+		m_currentItem = *newCurItem;
+		newItemSelected(m_currentItem);
+		return;
+	} else if (!m_linkedList->isEmpty()) {
+		m_currentItem = *(m_linkedList->end() - 1);
+		newItemSelected(m_currentItem);
+		return;
+	}
 }
 
+void ItemContainer::removeItem(QString &name){
+	
+	QMap<int,GenericItemList*>::iterator iterItem;
+
+	int index = -1;
+
+	//erase the element from the widget map
+	for (iterItem = m_map->begin(); iterItem != m_map->end(); iterItem++)
+	{
+		QString iterName = iterItem.value()->getName();
+		if (iterName == name)
+		{
+			index = iterItem.key();
+			delete iterItem.value();
+			m_map->erase(iterItem);
+			break;
+		}
+	}
+
+	if (index != -1)
+	{
+		QLinkedList<int>::iterator iter = find(index);
+
+		QLinkedList<int>::iterator newCurItem = iter + 1;
+
+		//erase the element from the linked list
+		if (iter != m_linkedList->end())
+		{
+			m_linkedList->erase(iter);
+		}
+
+		//if it was the current item, select the following item if it exists
+		if (index == m_currentItem)
+		{
+			if (newCurItem != m_linkedList->end())
+			{
+				m_currentItem = *newCurItem;
+				newItemSelected(m_currentItem);
+				return;
+			} else if (!m_linkedList->isEmpty()) {
+				m_currentItem = *(m_linkedList->end() - 1);
+				newItemSelected(m_currentItem);
+				return;
+			}
+		}
+	}
+	
+	reorganize();
+}
 void ItemContainer::reset()
 {
 	QLayoutItem *child;
@@ -73,9 +153,8 @@
 void ItemContainer::removeAllItems(){
 	m_linkedList->clear();
 	reset();
+	m_cpt=0;
 	m_map->clear();
-	m_cpt=0;
-
 }
 
 void ItemContainer::setCurrentIndex(int i){
@@ -93,13 +172,24 @@
 }
 
 void ItemContainer::reorganize(){
-	for (int i = 0; i < m_itemLayout->count(); i++){
+	int count = m_itemLayout->count();
+	for (int i = count-1; i >= 0; i--){
 		m_itemLayout->removeItem(m_itemLayout->itemAt(i));
     }
 	QLinkedList<int>::iterator iter;
 	for(iter = m_linkedList->begin(); iter != m_linkedList->end(); iter++){
-		m_itemLayout->addWidget(m_map->value(*iter));
+		int j = *iter;
+		QMap<int,GenericItemList*>::iterator iterItem = m_map->find(j);
+		if (iterItem != m_map->end())
+		{
+			int toto = iterItem.key();
+			m_itemLayout->addWidget(iterItem.value());
+		}
+		
+
+		//m_itemLayout->addWidget(m_map->value(*iter));
 	}
+	m_itemLayout->update();
 }
 
 /********* SLOTS **************/
@@ -192,3 +282,24 @@
 		item->configAction();
 	}
 }
+
+QString ItemContainer::getCurrentFilterName()
+{
+	QString name = "";
+
+	if (m_currentItem < 0)
+		return name;
+
+	QLinkedList<int>::iterator iter = find(m_currentItem);
+	
+	if (iter != m_linkedList->end())
+	{
+		QMap<int,GenericItemList*>::iterator iterItem = m_map->find(*iter);
+		if (iterItem != m_map->end())
+		{
+			GenericItemList* item = iterItem.value();
+			name = item->getName();
+		}
+	}
+	return name;
+}
\ No newline at end of file
--- a/widgets/ItemContainer.h	Wed Jun 13 15:49:23 2007 +0000
+++ b/widgets/ItemContainer.h	Tue Jun 19 15:15:12 2007 +0000
@@ -32,8 +32,11 @@
 	void removeSelectedItem();
 	void removeAllItems();
 	void setCurrentIndex(int i);
+	QString getCurrentFilterName();
 	QLinkedList<int>::iterator find(int value);
 
+	void removeItem(QString &name);
+
 signals : 
 	void currentChanged(int i);
 
--- a/widgets/ItemLayerList.h	Wed Jun 13 15:49:23 2007 +0000
+++ b/widgets/ItemLayerList.h	Tue Jun 19 15:15:12 2007 +0000
@@ -31,6 +31,7 @@
 	ItemLayerList(QWidget *parent=0);
 	void setIcon(QString &icon);
 	void setName(QString &name);
+	inline QString getName(){return m_labelName->text();}
 	void setColor(QColor &color);
 	void changeCheckBoxShowState(bool state);
 	void changeCheckBoxPlayState(bool state);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/RealTimeFilterPropertyStack.cpp	Tue Jun 19 15:15:12 2007 +0000
@@ -0,0 +1,40 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*	Sound Access	
+		EASAIER client application.	
+		Silogic 2007. Laure Bajard. 
+	
+	This program is free software; you can redistribute it and/or    
+	modify it under the terms of the GNU General Public License as    
+	published by the Free Software Foundation; either version 2 of the    
+	License, or (at your option) any later version.  See the file    
+	COPYING included with this distribution for more information.
+*/
+
+#include "RealTimeFilterPropertyStack.h"
+#include "ItemAudioFilterList.h"
+
+RealTimeFilterPropertyStack::RealTimeFilterPropertyStack() : AudioFilterViewerWidget()
+{}
+
+RealTimeFilterPropertyStack::~RealTimeFilterPropertyStack()
+{}
+
+void RealTimeFilterPropertyStack::filterAdded(Filter * filter)
+{
+	PropertyBox *box = new PropertyBox(filter);
+
+	ItemAudioFilterList *itAudio = new ItemAudioFilterList;
+	itAudio->setName(filter->objectName());
+	itAudio->setToolTip(filter->objectName());
+	itAudio->setIcon(QString(":icons/easaier.png"));
+	itAudio->setPropertyBox(box);
+
+	addItem(itAudio);
+
+}
+
+void RealTimeFilterPropertyStack::filterRemoved(QString name)
+{
+	removeItem(name);
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/RealTimeFilterPropertyStack.h	Tue Jun 19 15:15:12 2007 +0000
@@ -0,0 +1,39 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*	Sound Access	
+		EASAIER client application.	
+		Silogic 2007. Laure Bajard. 
+	
+	This program is free software; you can redistribute it and/or    
+	modify it under the terms of the GNU General Public License as    
+	published by the Free Software Foundation; either version 2 of the    
+	License, or (at your option) any later version.  See the file    
+	COPYING included with this distribution for more information.
+*/
+
+#ifndef _REAL_TIME_FILTER_PROPERTY_STACK_H_
+#define _REAL_TIME_FILTER_PROPERTY_STACK_H_
+
+#include <QWidget>
+
+#include "widgets/AudioFilterViewerWidget.h"
+#include "filter/Filter.h"
+
+class RealTimeFilterPropertyStack : public AudioFilterViewerWidget 
+{
+	Q_OBJECT
+public:
+	RealTimeFilterPropertyStack();
+	virtual ~RealTimeFilterPropertyStack();
+
+public slots:
+
+	void filterAdded(Filter *);
+	void filterRemoved(QString);
+
+protected:
+
+
+};
+
+#endif
\ No newline at end of file
--- a/widgets/svwidgets.vcproj	Wed Jun 13 15:49:23 2007 +0000
+++ b/widgets/svwidgets.vcproj	Tue Jun 19 15:15:12 2007 +0000
@@ -294,6 +294,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\RealTimeFilterPropertyStack.cpp"
+				>
+			</File>
+			<File
 				RelativePath=".\SearchWidget.cpp"
 				>
 			</File>
@@ -338,7 +342,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -364,7 +368,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -390,7 +394,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -401,7 +405,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -416,7 +420,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -442,7 +446,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -468,7 +472,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -494,7 +498,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -520,7 +524,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -546,7 +550,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -572,7 +576,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -598,7 +602,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -609,7 +613,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -624,7 +628,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -650,7 +654,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -676,7 +680,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -702,7 +706,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -728,7 +732,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -754,7 +758,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -780,7 +784,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -806,7 +810,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -832,7 +836,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -858,7 +862,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -884,7 +888,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -910,7 +914,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -936,7 +940,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -962,7 +966,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -988,7 +992,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1014,7 +1018,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1040,7 +1044,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1066,7 +1070,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1092,7 +1096,33 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath=".\RealTimeFilterPropertyStack.h"
+					>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1118,7 +1148,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1144,7 +1174,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1170,7 +1200,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1196,7 +1226,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1222,7 +1252,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1248,7 +1278,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1274,7 +1304,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1418,6 +1448,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\tmp_moc\moc_RealTimeFilterPropertyStack.cpp"
+				>
+			</File>
+			<File
 				RelativePath=".\tmp_moc\moc_SearchWidget.cpp"
 				>
 			</File>
--- a/widgets/widgets.pro	Wed Jun 13 15:49:23 2007 +0000
+++ b/widgets/widgets.pro	Tue Jun 19 15:15:12 2007 +0000
@@ -50,7 +50,8 @@
            GenericItemList.h \
            LayerViewerWidget.h \
            ItemLayerList.h \
-           ItemContainer.h 
+           ItemContainer.h \
+           RealTimeFilterPropertyStack.h 
 SOURCES += AudioDial.cpp \
            Fader.cpp \
            ItemEditDialog.cpp \
@@ -86,5 +87,6 @@
            GenericItemList.cpp \
            LayerViewerWidget.cpp \
            ItemLayerList.cpp \
-           ItemContainer.cpp 
+           ItemContainer.cpp \
+           RealTimeFilterPropertyStack.cpp