75 lines · 1.3 KB · C
RawDownload

#pragma once

// base class
#include "VAOnePoleFilterEx.h"

// abstract base class for RackAFX filters
class CVADiodeLadderFilter
{
public:
	// RackAFX Plug-In API Member Methods:
	// The followung 5 methods must be impelemented for a meaningful Plug-In
	//
	// 1. One Time Initialization
	CVADiodeLadderFilter();

	// 2. One Time Destruction
	virtual ~CVADiodeLadderFilter(void);

	// 3. The Prepare For Play Function is called just before audio streams
	bool prepareForPlay(float fs);

	// Add your code here: ----------------------------------------------------------- //
	CVAOnePoleFilterEx m_LPF1;
	CVAOnePoleFilterEx m_LPF2;
	CVAOnePoleFilterEx m_LPF3;
	CVAOnePoleFilterEx m_LPF4;

	double m_dGAMMA; // Gamma see App Note

	// our feedback S values (global)
	double m_dSG1; 
	double m_dSG2; 
	double m_dSG3; 
	double m_dSG4; 

	void reset()
	{
		m_LPF1.reset(); m_LPF2.reset();
		m_LPF3.reset(); m_LPF4.reset();

		m_LPF1.setFeedback(0.0); m_LPF2.setFeedback(0.0); 
		m_LPF3.setFeedback(0.0); m_LPF4.setFeedback(0.0); 
	}

	// recalc the coeffs
	void updateFilter();
	
	// do the filter
	double doFilter(double xn);

    float m_nSampleRate;
	double m_dFc;
	double m_dK;
	double m_dSaturation;
	UINT m_NonLinearProcessing;
	enum{OFF,ON};
	UINT m_uNLPType;
	enum{NORM,REG};

};














Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t