.. _program_listing_file_include_audioRender_MixMachine_EFFECT_EFFECTS.hpp: Program Listing for File EFFECTS.hpp ==================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include\audioRender\MixMachine\EFFECT\EFFECTS.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include "DeckData.hpp" #include "FAUST_COMPRESSOR.hpp" #include "FAUST_DISTORTION.hpp" #include "FAUST_ECHO.hpp" #include "FAUST_EQ.hpp" #include "FAUST_FILTERS.hpp" #include "FAUST_FLANGER.hpp" #include "FAUST_OCS_FILTER.hpp" #include "FAUST_PANNER.hpp" #include "FAUST_PHASER.hpp" #include "FAUST_ROBOT.hpp" #include "FAUST_ROLL.hpp" #include "FAUST_TRANCE.hpp" #include "FAUST_VOL.hpp" #include "FrameCalc.hpp" #include "PDJE_EXPORT_SETTER.hpp" template class FaustDType : public Fclass { private: std::vector L; std::vector R; SIMD_FLOAT *originVec; unsigned long long startPos; public: int count; FAUSTFLOAT *PTR[CHANNEL]; FaustDType(SIMD_FLOAT *vec, unsigned long long start, unsigned long long end) : startPos(start), originVec(vec) { count = end - start; L.resize(count); R.resize(count); PTR[0] = L.data(); PTR[1] = R.data(); } void CopyToFaust() { float *lp = L.data(); float *rp = R.data(); float *op = originVec->data(); op += startPos * CHANNEL; for (int i = 0; i < count; ++i) { *(lp++) = *(op++); *(rp++) = *(op++); } } void WriteToOrigin() { float *lp = L.data(); float *rp = R.data(); float *op = originVec->data(); op += startPos * CHANNEL; for (int i = 0; i < count; ++i) { *(op++) = *(lp++); *(op++) = *(rp++); } } }; template class FaustObject { public: FaustClass managingClass; template void consume(std::vector> &jobs) { for (auto &i : jobs) { i.CopyToFaust(); i.template copySetting(managingClass); managingClass.instanceClear(); managingClass.compute(i.count, i.PTR, i.PTR); i.WriteToOrigin(); } } }; class FaustEffects { public: FaustObject compressor; FaustObject distortion; FaustObject echo; FaustObject eq; FaustObject filter; FaustObject flanger; FaustObject ocsFilter; FaustObject panner; FaustObject phaser; FaustObject roll; FaustObject trance; FaustObject vol; FaustObject robot; // public: std::vector> compressorData; std::vector> distortionData; std::vector> echoData; std::vector> eqData; std::vector> filterData; std::vector> flangerData; std::vector> ocsFilterData; std::vector> pannerData; std::vector> phaserData; std::vector> rollData; std::vector> tranceData; std::vector> volData; std::vector> robotData; FaustEffects(int initSampleRate); void consumeAll(); };