[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