[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52858] trunk/blender/intern/audaspace: Audaspace:

Joerg Mueller nexyon at gmail.com
Mon Dec 10 17:58:57 CET 2012


Revision: 52858
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52858
Author:   nexyon
Date:     2012-12-10 16:58:47 +0000 (Mon, 10 Dec 2012)
Log Message:
-----------
Audaspace:
Implemented forgotten Calculator classes from boost migration.

Modified Paths:
--------------
    trunk/blender/intern/audaspace/CMakeLists.txt
    trunk/blender/intern/audaspace/FX/AUD_ButterworthFactory.cpp
    trunk/blender/intern/audaspace/FX/AUD_ButterworthFactory.h
    trunk/blender/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.cpp
    trunk/blender/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.h
    trunk/blender/intern/audaspace/FX/AUD_HighpassFactory.cpp
    trunk/blender/intern/audaspace/FX/AUD_HighpassFactory.h
    trunk/blender/intern/audaspace/FX/AUD_IDynamicIIRFilterCalculator.h
    trunk/blender/intern/audaspace/FX/AUD_LowpassFactory.cpp
    trunk/blender/intern/audaspace/FX/AUD_LowpassFactory.h

Added Paths:
-----------
    trunk/blender/intern/audaspace/FX/AUD_BandpassCalculator.cpp
    trunk/blender/intern/audaspace/FX/AUD_BandpassCalculator.h
    trunk/blender/intern/audaspace/FX/AUD_ButterworthCalculator.cpp
    trunk/blender/intern/audaspace/FX/AUD_ButterworthCalculator.h
    trunk/blender/intern/audaspace/FX/AUD_HighpassCalculator.cpp
    trunk/blender/intern/audaspace/FX/AUD_HighpassCalculator.h
    trunk/blender/intern/audaspace/FX/AUD_LowpassCalculator.cpp
    trunk/blender/intern/audaspace/FX/AUD_LowpassCalculator.h

Modified: trunk/blender/intern/audaspace/CMakeLists.txt
===================================================================
--- trunk/blender/intern/audaspace/CMakeLists.txt	2012-12-10 16:38:58 UTC (rev 52857)
+++ trunk/blender/intern/audaspace/CMakeLists.txt	2012-12-10 16:58:47 UTC (rev 52858)
@@ -34,6 +34,7 @@
 set(SRC
 	FX/AUD_AccumulatorFactory.cpp
 	FX/AUD_BaseIIRFilterReader.cpp
+	FX/AUD_ButterworthCalculator.cpp
 	FX/AUD_ButterworthFactory.cpp
 	FX/AUD_CallbackIIRFilterReader.cpp
 	FX/AUD_DelayFactory.cpp
@@ -47,6 +48,7 @@
 	FX/AUD_EnvelopeFactory.cpp
 	FX/AUD_FaderFactory.cpp
 	FX/AUD_FaderReader.cpp
+	FX/AUD_HighpassCalculator.cpp
 	FX/AUD_HighpassFactory.cpp
 	FX/AUD_IIRFilterFactory.cpp
 	FX/AUD_IIRFilterReader.cpp
@@ -54,6 +56,7 @@
 	FX/AUD_LimiterReader.cpp
 	FX/AUD_LoopFactory.cpp
 	FX/AUD_LoopReader.cpp
+	FX/AUD_LowpassCalculator.cpp
 	FX/AUD_LowpassFactory.cpp
 	FX/AUD_PingPongFactory.cpp
 	FX/AUD_PitchFactory.cpp
@@ -145,6 +148,7 @@
 
 	FX/AUD_AccumulatorFactory.h
 	FX/AUD_BaseIIRFilterReader.h
+	FX/AUD_ButterworthCalculator.h
 	FX/AUD_ButterworthFactory.h
 	FX/AUD_CallbackIIRFilterReader.h
 	FX/AUD_DelayFactory.h
@@ -159,6 +163,7 @@
 	FX/AUD_EnvelopeFactory.h
 	FX/AUD_FaderFactory.h
 	FX/AUD_FaderReader.h
+	FX/AUD_HighpassCalculator.h
 	FX/AUD_HighpassFactory.h
 	FX/AUD_IIRFilterFactory.h
 	FX/AUD_IIRFilterReader.h
@@ -166,6 +171,7 @@
 	FX/AUD_LimiterReader.h
 	FX/AUD_LoopFactory.h
 	FX/AUD_LoopReader.h
+	FX/AUD_LowpassCalculator.h
 	FX/AUD_LowpassFactory.h
 	FX/AUD_PingPongFactory.h
 	FX/AUD_PitchFactory.h

Added: trunk/blender/intern/audaspace/FX/AUD_BandpassCalculator.cpp
===================================================================
--- trunk/blender/intern/audaspace/FX/AUD_BandpassCalculator.cpp	                        (rev 0)
+++ trunk/blender/intern/audaspace/FX/AUD_BandpassCalculator.cpp	2012-12-10 16:58:47 UTC (rev 52858)
@@ -0,0 +1,5 @@
+#include "AUD_BandpassCalculator.h"
+
+AUD_BandpassCalculator::AUD_BandpassCalculator()
+{
+}


Property changes on: trunk/blender/intern/audaspace/FX/AUD_BandpassCalculator.cpp
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Added: trunk/blender/intern/audaspace/FX/AUD_BandpassCalculator.h
===================================================================
--- trunk/blender/intern/audaspace/FX/AUD_BandpassCalculator.h	                        (rev 0)
+++ trunk/blender/intern/audaspace/FX/AUD_BandpassCalculator.h	2012-12-10 16:58:47 UTC (rev 52858)
@@ -0,0 +1,10 @@
+#ifndef AUD_BANDPASSCALCULATOR_H
+#define AUD_BANDPASSCALCULATOR_H
+
+class AUD_BandpassCalculator
+{
+public:
+  AUD_BandpassCalculator();
+};
+
+#endif // AUD_BANDPASSCALCULATOR_H


Property changes on: trunk/blender/intern/audaspace/FX/AUD_BandpassCalculator.h
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Added: trunk/blender/intern/audaspace/FX/AUD_ButterworthCalculator.cpp
===================================================================
--- trunk/blender/intern/audaspace/FX/AUD_ButterworthCalculator.cpp	                        (rev 0)
+++ trunk/blender/intern/audaspace/FX/AUD_ButterworthCalculator.cpp	2012-12-10 16:58:47 UTC (rev 52858)
@@ -0,0 +1,38 @@
+#include "AUD_ButterworthCalculator.h"
+
+#include <cmath>
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+#define BWPB41 0.76536686473
+#define BWPB42 1.84775906502
+
+AUD_ButterworthCalculator::AUD_ButterworthCalculator(float frequency) :
+	m_frequency(frequency)
+{
+}
+
+void AUD_ButterworthCalculator::recalculateCoefficients(AUD_SampleRate rate, std::vector<float> &b, std::vector<float> &a)
+{
+	float omega = 2 * tan(m_frequency * M_PI / rate);
+	float o2 = omega * omega;
+	float o4 = o2 * o2;
+	float x1 = o2 + 2.0f * (float)BWPB41 * omega + 4.0f;
+	float x2 = o2 + 2.0f * (float)BWPB42 * omega + 4.0f;
+	float y1 = o2 - 2.0f * (float)BWPB41 * omega + 4.0f;
+	float y2 = o2 - 2.0f * (float)BWPB42 * omega + 4.0f;
+	float o228 = 2.0f * o2 - 8.0f;
+	float norm = x1 * x2;
+	a.push_back(1);
+	a.push_back((x1 + x2) * o228 / norm);
+	a.push_back((x1 * y2 + x2 * y1 + o228 * o228) / norm);
+	a.push_back((y1 + y2) * o228 / norm);
+	a.push_back(y1 * y2 / norm);
+	b.push_back(o4 / norm);
+	b.push_back(4 * o4 / norm);
+	b.push_back(6 * o4 / norm);
+	b.push_back(b[1]);
+	b.push_back(b[0]);
+}


Property changes on: trunk/blender/intern/audaspace/FX/AUD_ButterworthCalculator.cpp
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Added: trunk/blender/intern/audaspace/FX/AUD_ButterworthCalculator.h
===================================================================
--- trunk/blender/intern/audaspace/FX/AUD_ButterworthCalculator.h	                        (rev 0)
+++ trunk/blender/intern/audaspace/FX/AUD_ButterworthCalculator.h	2012-12-10 16:58:47 UTC (rev 52858)
@@ -0,0 +1,20 @@
+#ifndef AUD_BUTTERWORTHCALCULATOR_H
+#define AUD_BUTTERWORTHCALCULATOR_H
+
+#include "AUD_IDynamicIIRFilterCalculator.h"
+
+class AUD_ButterworthCalculator : public AUD_IDynamicIIRFilterCalculator
+{
+private:
+	/**
+	 * The attack value in seconds.
+	 */
+	const float m_frequency;
+
+public:
+	AUD_ButterworthCalculator(float frequency);
+
+	virtual void recalculateCoefficients(AUD_SampleRate rate, std::vector<float> &b, std::vector<float> &a);
+};
+
+#endif // AUD_BUTTERWORTHCALCULATOR_H


Property changes on: trunk/blender/intern/audaspace/FX/AUD_ButterworthCalculator.h
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Modified: trunk/blender/intern/audaspace/FX/AUD_ButterworthFactory.cpp
===================================================================
--- trunk/blender/intern/audaspace/FX/AUD_ButterworthFactory.cpp	2012-12-10 16:38:58 UTC (rev 52857)
+++ trunk/blender/intern/audaspace/FX/AUD_ButterworthFactory.cpp	2012-12-10 16:58:47 UTC (rev 52858)
@@ -29,44 +29,11 @@
 
 #include "AUD_ButterworthFactory.h"
 #include "AUD_IIRFilterReader.h"
+#include "AUD_ButterworthCalculator.h"
 
-#include <cmath>
-
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-
-#define BWPB41 0.76536686473
-#define BWPB42 1.84775906502
-
 AUD_ButterworthFactory::AUD_ButterworthFactory(boost::shared_ptr<AUD_IFactory> factory,
 											   float frequency) :
-		AUD_DynamicIIRFilterFactory(factory),
-		m_frequency(frequency)
+		AUD_DynamicIIRFilterFactory(factory, boost::shared_ptr<AUD_IDynamicIIRFilterCalculator>(new AUD_ButterworthCalculator(frequency)))
 {
 }
 
-void AUD_ButterworthFactory::recalculateCoefficients(AUD_SampleRate rate,
-													 std::vector<float> &b,
-													 std::vector<float> &a)
-{
-	float omega = 2 * tan(m_frequency * M_PI / rate);
-	float o2 = omega * omega;
-	float o4 = o2 * o2;
-	float x1 = o2 + 2.0f * (float)BWPB41 * omega + 4.0f;
-	float x2 = o2 + 2.0f * (float)BWPB42 * omega + 4.0f;
-	float y1 = o2 - 2.0f * (float)BWPB41 * omega + 4.0f;
-	float y2 = o2 - 2.0f * (float)BWPB42 * omega + 4.0f;
-	float o228 = 2.0f * o2 - 8.0f;
-	float norm = x1 * x2;
-	a.push_back(1);
-	a.push_back((x1 + x2) * o228 / norm);
-	a.push_back((x1 * y2 + x2 * y1 + o228 * o228) / norm);
-	a.push_back((y1 + y2) * o228 / norm);
-	a.push_back(y1 * y2 / norm);
-	b.push_back(o4 / norm);
-	b.push_back(4 * o4 / norm);
-	b.push_back(6 * o4 / norm);
-	b.push_back(b[1]);
-	b.push_back(b[0]);
-}

Modified: trunk/blender/intern/audaspace/FX/AUD_ButterworthFactory.h
===================================================================
--- trunk/blender/intern/audaspace/FX/AUD_ButterworthFactory.h	2012-12-10 16:38:58 UTC (rev 52857)
+++ trunk/blender/intern/audaspace/FX/AUD_ButterworthFactory.h	2012-12-10 16:58:47 UTC (rev 52858)
@@ -38,11 +38,6 @@
 class AUD_ButterworthFactory : public AUD_DynamicIIRFilterFactory
 {
 private:
-	/**
-	 * The attack value in seconds.
-	 */
-	const float m_frequency;
-
 	// hide copy constructor and operator=
 	AUD_ButterworthFactory(const AUD_ButterworthFactory&);
 	AUD_ButterworthFactory& operator=(const AUD_ButterworthFactory&);
@@ -54,10 +49,6 @@
 	 * \param frequency The cutoff frequency.
 	 */
 	AUD_ButterworthFactory(boost::shared_ptr<AUD_IFactory> factory, float frequency);
-
-	virtual void recalculateCoefficients(AUD_SampleRate rate,
-	                                     std::vector<float>& b,
-	                                     std::vector<float>& a);
 };
 
 #endif //__AUD_BUTTERWORTHFACTORY_H__

Modified: trunk/blender/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.cpp
===================================================================
--- trunk/blender/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.cpp	2012-12-10 16:38:58 UTC (rev 52857)
+++ trunk/blender/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.cpp	2012-12-10 16:58:47 UTC (rev 52858)
@@ -30,8 +30,10 @@
 #include "AUD_DynamicIIRFilterReader.h"
 
 
-AUD_DynamicIIRFilterFactory::AUD_DynamicIIRFilterFactory(boost::shared_ptr<AUD_IFactory> factory) :
-	AUD_EffectFactory(factory)
+AUD_DynamicIIRFilterFactory::AUD_DynamicIIRFilterFactory(boost::shared_ptr<AUD_IFactory> factory,
+														 boost::shared_ptr<AUD_IDynamicIIRFilterCalculator> calculator) :
+	AUD_EffectFactory(factory),
+	m_calculator(calculator)
 {
 }
 

Modified: trunk/blender/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.h
===================================================================
--- trunk/blender/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.h	2012-12-10 16:38:58 UTC (rev 52857)
+++ trunk/blender/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.h	2012-12-10 16:58:47 UTC (rev 52858)
@@ -49,7 +49,8 @@
 	 * Creates a new Dynmic IIR filter factory.
 	 * \param factory The input factory.
 	 */
-	AUD_DynamicIIRFilterFactory(boost::shared_ptr<AUD_IFactory> factory);
+	AUD_DynamicIIRFilterFactory(boost::shared_ptr<AUD_IFactory> factory,
+								boost::shared_ptr<AUD_IDynamicIIRFilterCalculator> calculator);
 
 	virtual boost::shared_ptr<AUD_IReader> createReader();
 };

Added: trunk/blender/intern/audaspace/FX/AUD_HighpassCalculator.cpp
===================================================================
--- trunk/blender/intern/audaspace/FX/AUD_HighpassCalculator.cpp	                        (rev 0)
+++ trunk/blender/intern/audaspace/FX/AUD_HighpassCalculator.cpp	2012-12-10 16:58:47 UTC (rev 52858)
@@ -0,0 +1,27 @@

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list