示例#1
0
  void SocpSolverInternal::init() {
    // Call the init method of the base class
    FunctionInternal::init();

    ni_ = getOption("ni");
    print_problem_ = getOption("print_problem");

    m_ = ni_.size();

    const Sparsity& A = st_[SOCP_STRUCT_A];
    const Sparsity& G = st_[SOCP_STRUCT_G];
    const Sparsity& E = st_[SOCP_STRUCT_E];

    N_ = std::accumulate(ni_.begin(), ni_.end(), 0);
    casadi_assert_message(N_==G.size2(),
                          "SocpSolverInternal: Supplied G sparsity: number of cols ("
                          << G.size2()
                          <<  ")  must match sum of vector provided with option 'ni' ("
                          << N_ << ").");
    casadi_assert_message(m_==E.size2(),
                          "SocpSolverInternal: Supplied E sparsity: number of cols ("
                          << E.size2()
                          <<  ")  must match number of cone (2-norm) constraints ("
                          << m_ << ").");

    nc_ = A.size1();
    n_ = A.size2();

    casadi_assert_message(n_==G.size1(),
       "SocpSolverInternal: Supplied G sparsity: number of rows ("
        << G.size1()
        <<  ") must match number of decision variables (cols of A): " << n_ << ".");
    casadi_assert_message(n_==E.size1(),
       "SocpSolverInternal: Supplied E sparsity: number of rows ("
        << E.size1()
        <<  ") must match number of decision variables (cols of A): " << n_ << ".");

    // Input arguments
    setNumInputs(SOCP_SOLVER_NUM_IN);
    input(SOCP_SOLVER_G) = DMatrix::zeros(G);
    input(SOCP_SOLVER_H) = DMatrix::zeros(N_, 1);
    input(SOCP_SOLVER_E) = DMatrix::zeros(E);
    input(SOCP_SOLVER_F) = DMatrix::zeros(m_, 1);
    input(SOCP_SOLVER_A) = DMatrix::zeros(A);
    input(SOCP_SOLVER_C) = DMatrix::zeros(n_);
    input(SOCP_SOLVER_LBX) = -DMatrix::inf(n_);
    input(SOCP_SOLVER_UBX) = DMatrix::inf(n_);
    input(SOCP_SOLVER_LBA) = -DMatrix::inf(nc_);
    input(SOCP_SOLVER_UBA) = DMatrix::inf(nc_);

    // Output arguments
    setNumOutputs(SOCP_SOLVER_NUM_OUT);
    output(SOCP_SOLVER_X) = DMatrix::zeros(n_, 1);
    output(SOCP_SOLVER_COST) = 0.0;
    output(SOCP_SOLVER_DUAL_COST) = 0.0;
    output(SOCP_SOLVER_LAM_X) = DMatrix::zeros(n_, 1);
    output(SOCP_SOLVER_LAM_A) = DMatrix::zeros(nc_, 1);
    output(SOCP_SOLVER_LAM_CONE) = DMatrix::zeros(m_, 1);
  }
示例#2
0
文件: rearr.cpp 项目: aardvarkk/rearr
ReArr::ReArr(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, kNumPrograms, kNumParams)
{
  setNumInputs(kNumInputs);
  setNumOutputs(kNumOutputs);

  // reset the parameters
  memset(params_, 0, sizeof(params_));
}
示例#3
0
Silence::Silence(audioMasterCallback audio_master)
  : AudioEffectX(audio_master, 1, 1) {
  setNumInputs(2);
  setNumOutputs(2);
  setUniqueID('Silence');
  canProcessReplacing();
  canDoubleReplacing();

  vst_strncpy(program_name, "Default", kVstMaxProgNameLen);
}
示例#4
0
void OCPSolverInternal::init(){
  // Initialize the functions
  ffcn_.init();
  mfcn_.init();
  if(!cfcn_.isNull()) cfcn_.init();
  if(!mfcn_.isNull()) mfcn_.init();
  
  // Get the number of grid points
  nk_ = getOption("number_of_grid_points");

  // Read final time
  tf_ = getOption("final_time");

  // Get the number of differential states
  nx_ = ffcn_.input(DAE_X).size();

  // Get the number of parameters
  np_ = getOption("number_of_parameters");

  // Get the number of controls
  nu_ = ffcn_.input(DAE_P).size() - np_;
  
  // Number of point constraints
  nh_ = cfcn_.isNull() ? 0 : cfcn_.output().size();
    
  // Number of point coupling constraints
  ng_ = 0;
  
  casadi_assert_message(mfcn_.getNumInputs()<=2, "Mayer term must map endstate [ (nx x 1) , (np x 1) ] to cost (1 x 1). So it needs to accept 2 matrix-valued inputs. You supplied " << mfcn_.getNumInputs());
  
  if (mfcn_.getNumInputs()==2) {
      casadi_assert_message(mfcn_.input(1).size()==np_, "Mayer term must map endstate [ (nx x 1) , (np x 1) ] to cost (1 x 1). Shape of the second input " << mfcn_.input(1).dimString() << " must match the number of parameters np " << np_);
  }
  
  
  // Specify the inputs
  setNumInputs(OCP_NUM_IN);
  input(OCP_LBX) = input(OCP_UBX) = input(OCP_X_INIT) = Matrix<double>(nx_,nk_+1,0);
  input(OCP_LBU) = input(OCP_UBU) = input(OCP_U_INIT) = Matrix<double>(nu_,nk_,0);
  input(OCP_LBP) = input(OCP_UBP) = input(OCP_P_INIT) = Matrix<double>(np_,1,0);
  input(OCP_LBH) = input(OCP_UBH) = Matrix<double>(nh_,nk_+1,0);
  input(OCP_LBG) = input(OCP_UBG) = Matrix<double>(ng_,1,0);
  
  // Specify the outputs
  setNumOutputs(OCP_NUM_OUT);
  output(OCP_X_OPT) = input(OCP_X_INIT);
  output(OCP_U_OPT) = input(OCP_U_INIT);
  output(OCP_P_OPT) = input(OCP_P_INIT);
  output(OCP_COST) = 0.;
  
  // Call the init function of the base class
  FXInternal::init();
  
  
}
void ImplicitFunctionInternal::init(){
  // Initialize the residual function
  if(!f_.isInit()) f_.init();
  
  // Allocate inputs
  setNumInputs(f_.getNumInputs()-1);
  for(int i=0; i<getNumInputs(); ++i){
    input(i) = f_.input(i+1);
  }
  
  // Allocate outputs
  setNumOutputs(f_.getNumOutputs());
  output(0) = f_.input(0);
  for(int i=1; i<getNumOutputs(); ++i){
    output(i) = f_.output(i);
  }

  // Call the base class initializer
  FXInternal::init();

  // Number of equations
  N_ = output().size();

  // Generate Jacobian if not provided
  if(J_.isNull()) J_ = f_.jacobian(0,0);
  J_.init();
  
  casadi_assert_message(J_.output().size1()==J_.output().size2(),"ImplicitFunctionInternal::init: the jacobian must be square but got " << J_.output().dimString());
  
  casadi_assert_message(!isSingular(J_.output().sparsity()),"ImplicitFunctionInternal::init: singularity - the jacobian is structurally rank-deficient. sprank(J)=" << sprank(J_.output()) << " (in stead of "<< J_.output().size1() << ")");
  
  // Get the linear solver creator function
  if(linsol_.isNull() && hasSetOption("linear_solver")){
    linearSolverCreator linear_solver_creator = getOption("linear_solver");
  
    // Allocate an NLP solver
    linsol_ = linear_solver_creator(CRSSparsity());
  
    // Pass options
    if(hasSetOption("linear_solver_options")){
      const Dictionary& linear_solver_options = getOption("linear_solver_options");
      linsol_.setOption(linear_solver_options);
    }
  }
  
  // Initialize the linear solver, if provided
  if(!linsol_.isNull()){
    linsol_.setSparsity(J_.output().sparsity());
    linsol_.init();
  }
    
  // Allocate memory for directional derivatives
  ImplicitFunctionInternal::updateNumSens(false);

}
示例#6
0
void LfpDisplayNode::setNumInputs(int inputs)
{
	std::cout << "Setting num inputs on LfpDisplayNode to " << inputs << std::endl;
	numInputs = inputs;	
	setNumOutputs(0);

	setPlayConfigDetails(getNumInputs(),0,44100.0,128);

	LfpDisplayEditor* editor = (LfpDisplayEditor*) getEditor();
	editor->updateNumInputs(inputs);
}
示例#7
0
文件: mdaBandisto.cpp 项目: EQ4/lad
mdaBandisto::mdaBandisto(audioMasterCallback audioMaster)	: AudioEffectX(audioMaster, 1, 10)	// programs, parameters
{
  //inits here!
  fParam1 = (float)1.00; //Listen: L/M/H/out
  fParam2 = (float)0.40; //xover1
  fParam3 = (float)0.50; //xover2
  fParam4 = (float)0.50; //L drive    (1)
  fParam5 = (float)0.50; //M drive
  fParam6 = (float)0.50; //H drive
  fParam7 = (float)0.50; //L trim     (2)
  fParam8 = (float)0.50; //M trim
  fParam9 = (float)0.50; //H trim
  fParam10 = (float)0.0; //unipolar/bipolar

  setNumInputs(2);
	setNumOutputs(2);
	setUniqueID("mdaBand");    // identify here
	DECLARE_LVZ_DEPRECATED(canMono) ();
	canProcessReplacing();
	strcpy(programName, "Multi-Band Distortion");

  //calcs here!
  driv1 = (float)pow(10.0,(6.0 * fParam4 * fParam4) - 1.0);
  driv2 = (float)pow(10.0,(6.0 * fParam5 *fParam5) - 1.0);
  driv3 = (float)pow(10.0,(6.0 * fParam6 *fParam6) - 1.0);

  valve = int(fParam10 > 0.0);
  if(valve)
  {
    trim1 = (float)(0.5);
    trim2 = (float)(0.5);
    trim3 = (float)(0.5);
  }
  else
  {
    trim1 = 0.3f*(float)pow(10.0,(4.0 * pow(fParam4,3.f)));//(0.5 + 500.0 * pow(fParam4,6.0));
    trim2 = 0.3f*(float)pow(10.0,(4.0 * pow(fParam5,3.f)));
    trim3 = 0.3f*(float)pow(10.0,(4.0 * pow(fParam6,3.f)));
  }
  trim1 = (float)(trim1 * pow(10.0, 2.0 * fParam7 - 1.0));
  trim2 = (float)(trim2 * pow(10.0, 2.0 * fParam8 - 1.0));
  trim3 = (float)(trim3 * pow(10.0, 2.0 * fParam9 - 1.0));

  switch(int(fParam1*3.9))
  {
    case 0: trim2=0.0; trim3=0.0; slev=0.0; break;
    case 1: trim1=0.0; trim3=0.0; slev=0.0; break;
    case 2: trim1=0.0; trim2=0.0; slev=0.0; break;
    default: slev=0.5; break;
  }
  fi1 = (float)pow(10.0,fParam2 - 1.70); fo1=(float)(1.0 - fi1);
  fi2 = (float)pow(10.0,fParam3 - 1.05); fo2=(float)(1.0 - fi2);
  fb1 = fb2 = fb3 = 0.0f;
}
示例#8
0
//------------------------------------------------------------------------------------
TutorialVST2Effect::TutorialVST2Effect (audioMasterCallback audioMaster)
: AudioEffectX (audioMaster, 1, kNumParameters)
{
	setUniqueID (CCONST('G', 'U', 'I', '0'));
	setNumInputs (2);
	setNumOutputs (2);
	parameters[kLeftVolumeParameter] = 1.f;
	parameters[kRightVolumeParameter] = 1.f;

	extern AEffGUIEditor* createEditor (AudioEffectX*);
	setEditor (createEditor (this));
}
示例#9
0
SourceNode::SourceNode(const String& name_)
	: GenericProcessor(name_),
	  dataThread(0)
{
	if (getName().equalsIgnoreCase("Intan Demo Board")) {
		setNumOutputs(16);
		setNumInputs(0);
	} else if (getName().equalsIgnoreCase("Custom FPGA")) {
		setNumOutputs(32);
		setNumInputs(0);
	} else if (getName().equalsIgnoreCase("File Reader")) {
		setNumOutputs(16);
		setNumInputs(0);
	}

	setPlayConfigDetails(getNumInputs(), getNumOutputs(), 44100.0, 128);

	//sendActionMessage("Intan Demo Board source created.");
	//sendMessage("Intan Demo Board source created.");

}
示例#10
0
//-------------------------------------------------------------------------------------------------------
JackVST::JackVST (audioMasterCallback audioMaster)
	: AudioEffectX (audioMaster, 1, 1)	// 1 program, 1 parameter only
{
	fGain = 1.;				// default to 0 dB
	setNumInputs (2);		// stereo in
	setNumOutputs (2);		// stereo out
	setUniqueID ('JACK-ASinsert');	// identify
	canMono ();				// makes sense to feed both inputs with the same signal
	canProcessReplacing ();	// supports both accumulating and replacing output
	strcpy (fProgramName, "Default");	// default program name
	fStatus = kIsOff;
}
示例#11
0
Convolver2::Convolver2(audioMasterCallback audioMaster)
: AudioEffectX(audioMaster, 0, NUM_PARAMS) {
  setNumInputs(NUM_INPUTS);
  setNumOutputs(NUM_OUTPUTS);
  setUniqueID(UNIQUE_ID);

  editor = new Convolver2Editor(this);
  core = new Convolver2Core(NUM_PARAMS, VERSION, DEF_PRODUCT);
  core->setParameter(PRM_SAMPLE_RATE, getSampleRate(), true);
  ((Convolver2Editor*)editor)->setCore(core);
  ((Convolver2Core*)core)->setEditor((Convolver2Editor*)editor);
}
示例#12
0
void FilterNode::setNumInputs(int inputs)
{		

	numInputs = inputs;
	setNumOutputs(inputs);

	if (filter != 0)
	{
		delete filter;
		filter = 0;
	}

	const int nChans = inputs;

	if (nChans == 16) {

	filter = new Dsp::SmoothedFilterDesign 
			<Dsp::Butterworth::Design::BandPass 	// design type
			<4>,								 	// order
			16,										// number of channels (must be const)
			Dsp::DirectFormII>						// realization
			(1024);									// number of samples over which to fade 
		
	} else if (nChans == 32) {
	
	filter = new Dsp::SmoothedFilterDesign 
			<Dsp::Butterworth::Design::BandPass 	// design type
			<4>,								 	// order
			32	,									// number of channels (must be const)
			Dsp::DirectFormII>						// realization
			(1024);									// number of samples over which to fade 
													//   parameter changes

	} else if (nChans == 10) {
		
		filter = new Dsp::SmoothedFilterDesign 
			<Dsp::Butterworth::Design::BandPass 	// design type
			<4>,								 	// order
			10	,									// number of channels (must be const)
			Dsp::DirectFormII>						// realization
			(1024);									// number of samples over which to fade 
													//   parameter changes
	} else {
		// send a message saying this is not implemented

	}									

	//std::cout << "Filter created with " << getNumInputs() << " channels." << std::endl;

	setFilterParameters();

}
示例#13
0
mdaLoudness::mdaLoudness(audioMasterCallback audioMaster): AudioEffectX(audioMaster, NPROGS, NPARAMS)
{
  setNumInputs(2);
  setNumOutputs(2);
  setUniqueID('mdal');
	DECLARE_VST_DEPRECATED(canMono) ();				      
  canProcessReplacing();

  programs = new mdaLoudnessProgram[NPROGS];
  setProgram(0);

  suspend();
}
示例#14
0
Vst2413r::Vst2413r(audioMasterCallback audioMaster)
:   AudioEffectX(audioMaster, 0, 0),
    driver_(44100)
{
    if(audioMaster != NULL) {
        setNumInputs(0);
        setNumOutputs(1);
        setUniqueID(kUniqueId);
        canProcessReplacing();
        isSynth();
    }
    suspend();
}
示例#15
0
//-------------------------------------------------------------------------------------------------------
JackVST::JackVST (audioMasterCallback audioMaster)
	: AudioEffectX (audioMaster, 1, 1),c_jar(NULL),c_error(JARInsert::kNoErr)// 1 program, 1 parameter only
{
	fGain = 1.;				// default to 0 dB
	setNumInputs(2);		// stereo in
	setNumOutputs(2);		// stereo out
	setUniqueID('JACK');	// identify
	canProcessReplacing();	// supports both accumulating and replacing output
	strcpy(programName, "Default");	// default program name
	
	c_jar = new JARInsert('vst ');
	c_error = c_jar->GetError();
}
示例#16
0
文件: again.cpp 项目: eriser/vst2.0
//-------------------------------------------------------------------------------------------------------
AGain::AGain (audioMasterCallback audioMaster)
    : AudioEffectX (audioMaster, 1, 11)	// 1 program, 1 parameter only
{
    setNumInputs (2);		// stereo in
    setNumOutputs (2);		// stereo out
    setUniqueID ('Band');	// identify
    canProcessReplacing ();	// supports replacing output
    canDoubleReplacing ();	// supports double precision processing

    fGain = 1.f;			// default to 0 dB
    vst_strncpy (programName, "Default", kVstMaxProgNameLen);	// default program name
    UdpLog::setup( 7777, "localhost" );
}
示例#17
0
文件: vst.cpp 项目: TronicLabs/crap
plugin::plugin(audioMasterCallback audioMaster)
: AudioEffectX(audioMaster, 1, PARAMETERS)
{
	setNumInputs(2);
	setNumOutputs(2);
	setUniqueID(ID);
	canProcessReplacing();
	canDoubleReplacing();
	vst_strncpy(programName, "Init", kVstMaxProgNameLen);
	#if (PARAMETERS > 0)
	::construct_params(params);
	#endif
	::construct(&data);
}
示例#18
0
  // Constructor
  QpSolverInternal::QpSolverInternal(const std::vector<Sparsity> &st) : st_(st) {

    casadi_assert_message(st_.size()==QP_STRUCT_NUM, "Problem structure mismatch");

    const Sparsity& A = st_[QP_STRUCT_A];
    const Sparsity& H = st_[QP_STRUCT_H];

    n_ = H.size2();
    nc_ = A.isNull() ? 0 : A.size1();

    if (!A.isNull()) {
      casadi_assert_message(A.size2()==n_,
        "Got incompatible dimensions.   min          x'Hx + G'x s.t.   LBA <= Ax <= UBA :"
        << std::endl <<
        "H: " << H.dimString() << " - A: " << A.dimString() << std::endl <<
        "We need: H.size2()==A.size2()" << std::endl);
    }

    casadi_assert_message(H.isSymmetric(),
      "Got incompatible dimensions.   min          x'Hx + G'x" << std::endl <<
      "H: " << H.dimString() <<
      "We need H square & symmetric" << std::endl);

    // Sparsity
    Sparsity x_sparsity = Sparsity::dense(n_, 1);
    Sparsity bounds_sparsity = Sparsity::dense(nc_, 1);

    // Input arguments
    setNumInputs(QP_SOLVER_NUM_IN);
    input(QP_SOLVER_X0) = DMatrix::zeros(x_sparsity);
    input(QP_SOLVER_H) = DMatrix::zeros(H);
    input(QP_SOLVER_G) = DMatrix::zeros(x_sparsity);
    input(QP_SOLVER_A) = DMatrix::zeros(A);
    input(QP_SOLVER_LBA) = -DMatrix::inf(bounds_sparsity);
    input(QP_SOLVER_UBA) =  DMatrix::inf(bounds_sparsity);
    input(QP_SOLVER_LBX) = -DMatrix::inf(x_sparsity);
    input(QP_SOLVER_UBX) =  DMatrix::inf(x_sparsity);
    input(QP_SOLVER_LAM_X0) = DMatrix::zeros(x_sparsity);
    //input(QP_SOLVER_LAM_A0) = DMatrix::zeros(x_sparsity);

    // Output arguments
    setNumOutputs(QP_SOLVER_NUM_OUT);
    output(QP_SOLVER_X) = DMatrix::zeros(x_sparsity);
    output(QP_SOLVER_COST) = 0.0;
    output(QP_SOLVER_LAM_X) = DMatrix::zeros(x_sparsity);
    output(QP_SOLVER_LAM_A) = DMatrix::zeros(bounds_sparsity);

    input_.scheme = SCHEME_QpSolverInput;
    output_.scheme = SCHEME_QpSolverOutput;
  }
示例#19
0
文件: Reverb.cpp 项目: hnney/Stanford
//------------------------------------------------------------------------------
Reverb::Reverb (audioMasterCallback audioMaster)
: AudioEffectX (audioMaster, 1, kNumParams)	// 1 program, 1 parameter only
{
	setNumInputs (kNumInputs);		// stereo in
	setNumOutputs (kNumOutputs);		// stereo out
	setUniqueID ('Rvrb');	// identify
	canProcessReplacing ();	// supports replacing output
    
    
	vst_strncpy (programName, "Default", kVstMaxProgNameLen);	// default program name
    
	// internal state var declaration and initialization
    
	fs = getSampleRate();
    
	pcoefs = coefs;									// pointer for filter coef assignment
    
        
    T60LowValue = 3.5;      // time, in seconds, for low freqs to decay 60dB
	T60LowKnob = SmartKnob::value2knob(T60LowValue, T60LowLimits, T60LowTaper);
    
	T60HighValue = 0.5;			// time, in seconds, for high freqs to decay 60dB
	T60HighKnob = SmartKnob::value2knob(T60HighValue, T60HighLimits, T60HighTaper);

	TransitionValue = 6700.0;			// transition freq, in Hz, between low and high freqs
	TransitionKnob = SmartKnob::value2knob(TransitionValue, TransitionLimits, TransitionTaper);
    
	WetDryKnob = 0.2;		// output (wet/dry) mix
    
	for(int i=0; i<kNumDelays; i++){		
		dl[i].SetDelay(dlens[i]);						// set reverb delay lengths
		designShelf(pcoefs,dlens[i], TransitionValue, T60LowValue, T60HighValue);	// design filters for feedback loop
		fbfilt[i].SetCoefs(coefs);							// assign filter coefs
	}
    
    ParametricFcValue = 5000.0;
    ParametricFcKnob = SmartKnob::value2knob(ParametricFcValue, ParametricFcLimits, ParametricFcTaper);
    ParametricGammaValue = dB2mag(0.0);
    ParametricGammaKnob = SmartKnob::value2knob(ParametricGammaValue, ParametricGammaLimits, ParametricGammaTaper);
    ParametricQValue = 1;
    ParametricQKnob = SmartKnob::value2knob(ParametricQValue, ParametricQLimits, ParametricQTaper);
    
    designParametric(parametric_coefs, ParametricFcValue, ParametricGammaValue, ParametricQValue);
	parametric[0].setCoefs(parametric_coefs);
	parametric[1].setCoefs(parametric_coefs);    

    
}
示例#20
0
mdaOverdrive::mdaOverdrive(audioMasterCallback audioMaster)	: AudioEffectX(audioMaster, 1, 3)	// 1 program, 3 parameters
{
  fParam1 = 0.0f; 		
  fParam2 = 0.0f;
  fParam3 = 0.5f;

  setNumInputs(2);		    
	setNumOutputs(2);		    
	setUniqueID('mdaO');    // identify
	DECLARE_VST_DEPRECATED(canMono) ();				      
	canProcessReplacing();	
	strcpy(programName, "Soft Overdrive");	

  filt1 = filt2 = 0.0f;
  setParameter(0, 0.0f);
}
示例#21
0
FIR_vst::FIR_vst (audioMasterCallback audioMaster)
	: AudioEffectX(audioMaster, 1, PORT_COUNT)	// 1 program
{
	setNumInputs (1);		// mono in
	setNumOutputs (1);		// mono out
	setUniqueID ('HGFI');	// identify
	canProcessReplacing ();	// supports replacing output single precision

	//initialize parameters
	setParameter(PORT_VOL,		0.5f);
	setParameter(PORT_MODEL,	0.5f);
	
	instantiateFIR(&m_State, (uint)getSampleRate());

	vst_strncpy (programName, "Default", kVstMaxProgNameLen);	// default program name
}
示例#22
0
//-----------------------------------------------------------------------------------------
tf3Synth::tf3Synth (audioMasterCallback audioMaster, void* hInstance)
	: AudioEffectX (audioMaster, kNumPrograms, TF_PARAM_COUNT)
{
	// Initialize module path
	eChar mpath[512];
	eMemSet(mpath, 0, 512);
	GetModuleFileName((HMODULE)hInstance, mpath, 512);

	eChar *str = &mpath[511];
	while (str != mpath && *str!='/' && *str!='\\')
	{
		*str-- = '\0';
	}
	
	modulePath = QString(mpath);

	// Initialize tunefish
	tf = new tfInstrument();

	// initialize programs
	for (long i = 0; i < kNumPrograms; i++)
		programs[i].loadDefault(i);

	loadProgramAll();

	for (long i = 0; i < 16; i++)
		channelPrograms[i] = i;

	if (programs)
		setProgram (0);

    editor = new tfEditor(this);
	
	if (audioMaster)
	{
		setNumInputs (0);				// no inputs
		setNumOutputs (kNumOutputs);	// 2 outputs, 1 for each oscillator
		canProcessReplacing ();
		hasVu (false);
		hasClip (false);
		isSynth ();
		setUniqueID ('TF3');			// <<<! *must* change this!!!!
	}
	initProcess ();

	suspend ();
}
示例#23
0
mdaImage::mdaImage(audioMasterCallback audioMaster)	: AudioEffectX(audioMaster, 1, 6)	// programs, parameters
{
  fParam1 = 0.6f; //mode
  fParam2 = 0.75f; //width
  fParam3 = 0.5f; //skew
  fParam4 = 0.75f; //centre
  fParam5 = 0.5f; //balance
  fParam6 = 0.5f; //output

  setNumInputs(2);		  
	setNumOutputs(2);		  
	setUniqueID('mdaI');    // identify here
	DECLARE_VST_DEPRECATED(canMono) ();				      
	canProcessReplacing();	
	strcpy(programName, "Stereo Image / MS Matrix");
	
  setParameter(0, 0.6f); //go and set initial values!
}
示例#24
0
//-----------------------------------------------------------------------------
MidiGain::MidiGain (audioMasterCallback audioMaster) 
	: AudioEffectX(audioMaster, kNumPrograms, kNumParams),
	programs(0)
{ 
    setNumInputs(2);
    setNumOutputs(2);
    isSynth();

    setUniqueID(PLUG_IDENT);         
	canProcessReplacing();             

	programs = new MidiGainProgram[numPrograms];

	if (programs)
	    setProgram (0);

	init();
}
示例#25
0
ZynWise::ZynWise(audioMasterCallback audioMaster) 
	: AudioEffectX(audioMaster, PROGRAMS_COUNT, kParamsCount)
{
    if (audioMaster) 
	{
		isSynth(true);
		programsAreChunks(true);
		setNumInputs(INPUTS_COUNT);
        setNumOutputs(OUTPUTS_COUNT);
        setUniqueID(VST_ID);
        canProcessReplacing();

		View *view = new MainView(this);
		view->SetData(&_zasf);
		_gui = new Gui(this, GUI_WIDTH, GUI_HEIGHT);
		_gui->SetView(view);
		setEditor(_gui);
    }
}
示例#26
0
//-------------------------------------------------------------------------------------------------------
FormantPlugin::FormantPlugin (audioMasterCallback audioMaster)
: AudioEffectX (audioMaster, 1,2)	// 1 program, 1 parameter only
{
	setNumInputs (2);		// stereo in
	setNumOutputs (2);		// stereo out
	setUniqueID ('ijnh');	// identify
	canProcessReplacing ();	// supports replacing output
	canDoubleReplacing ();	// supports double precision processing

	params[pPosition] = new VstParameter("Position", 1.f);
	params[pVowelA] = new VstParameter("VowelA", 1.f);

	filters[0]= new StateVariableFilter(800);
	filters[1]= new StateVariableFilter(1150);
	filters[2]= new StateVariableFilter(800);
	filters[3]= new StateVariableFilter(1150);

	vst_strncpy (programName, "Default", kVstMaxProgNameLen);	// default program name
}
示例#27
0
mdaSplitter::mdaSplitter(audioMasterCallback audioMaster): AudioEffectX(audioMaster, NPROGS, NPARAMS)
{
  setNumInputs(2);
  setNumOutputs(2);
  setUniqueID('mda7');  ///identify plug-in here
	DECLARE_VST_DEPRECATED(canMono) ();				      
  canProcessReplacing();
  
  env = buf0 = buf1 = buf2 = buf3 = 0.0f;
  
  ///differences from default program...
  programs[1].param[2] = 0.50f;
  programs[1].param[4] = 0.25f;
  strcpy(programs[1].name,"Pass Peaks Only");
  programs[2].param[0] = 0.60f;
  strcpy(programs[2].name,"Stereo Crossover");
  
  setProgram(0);  
}
示例#28
0
//-------------------------------------------------------------------------------------------------------
Compressor::Compressor (audioMasterCallback audioMaster)
: AudioEffectX (audioMaster, 1, kNumParams)	// 1 program, 1 parameter only
{
	setNumInputs (kNumInputs);		// stereo in
	setNumOutputs (kNumOutputs);		// stereo out
	setUniqueID ('Cmpr');	// identify
	canProcessReplacing ();	// supports replacing output
    
    
	vst_strncpy (programName, "Default", kVstMaxProgNameLen);	// default program name
    
	// internal state var declaration and initialization
	the_sample_rate=getSampleRate();
	InputGainKnob = 0.5;
	OutputGainKnob = 0.5;
	ThresholdKnob = 0.75;
	AttackKnob = 0.0;
	ReleaseKnob = 0.125;
	RatioKnob = 1.0;
    
	input_gain=pow(10.0,(60.0*InputGainKnob-30.0)/20.0);
	output_gain=pow(10.0,(60.0*OutputGainKnob-30.0)/20.0);
	threshold=pow(10.0,(30.0*ThresholdKnob-30.0)/20.0);
	logthresh=20.0*log10(threshold);
    
	attack_time = pow(10.0,(AttackKnob*3.0-4.0));
	attack_amount=1.0-exp(-1.0/(attack_time*the_sample_rate));
	
	release_time = 0.070*pow(10.0,(log10(20.0)*ReleaseKnob));
	the_sample_rate=getSampleRate();
	release_amount=1.0-exp(-1.0/(release_time*the_sample_rate));
    
	comp_ratio = pow(10.0,(RatioKnob*3.0));
    
	loglev=-96.0;
	filtstate=threshold;
	gainval=1.0;
	dbgainval=0.0;
    
    //memset(past_inputs, 0, num_past_inputs * sizeof(double));
    
}
示例#29
0
文件: mdaSubSynth.cpp 项目: EQ4/lad
mdaSubSynth::mdaSubSynth(audioMasterCallback audioMaster)
	: AudioEffectX(audioMaster, 1, 6)	// programs, parameters
{
  //inits here!
  fParam1 = (float)0.0; //type
  fParam2 = (float)0.3; //level
  fParam3 = (float)0.6; //tune
  fParam4 = (float)1.0; //dry mix 
  fParam5 = (float)0.6; //thresh
  fParam6 = (float)0.65; //release

  setNumInputs(2);		  
	setNumOutputs(2);		  
	setUniqueID("mdaSubSynth");    // identify here
	DECLARE_LVZ_DEPRECATED(canMono) ();				      
	canProcessReplacing();	
	strcpy(programName, "Sub Bass Synthesizer");

  resume();
}
示例#30
0
文件: WahWah.cpp 项目: hnney/Stanford
//------------------------------------------------------------------------------
WahWah::WahWah (audioMasterCallback audioMaster)
: AudioEffectX (audioMaster, kNumProgs, kNumParams)	// 1 program, 1 parameter only
{
	setNumInputs (kNumInputs);		// stereo in
	setNumOutputs (kNumOutputs);		// stereo out
	setUniqueID ('Dstn');	// identify
	canProcessReplacing ();	// supports replacing output


	vst_strncpy (programName, "Default", kVstMaxProgNameLen);	// default program name

	
	GainValue = (float) 0.0;	// input filter gain, dB
	FcValue = (float) 1000.0;	// input filter center frequency, Hz
	QValue = (float) 5.0;	// input filter resonance, ratio
	RateValue = (float) 1.0;
	DepthValue = (float) 1.0;

	GainKnob = SmartKnob::value2knob(GainValue, GainLimits, GainTaper);
	FcKnob = SmartKnob::value2knob(FcValue, FcLimits, FcTaper);
	QKnob = SmartKnob::value2knob(QValue, QLimits, QTaper);
	RateKnob = (float) SmartKnob::value2knob(RateValue, RateLimits, RateTaper);	
	DepthKnob  = (float) SmartKnob::value2knob(DepthValue, DepthLimits, DepthTaper);

	drive = 1.0;

	// signal processing parameter and state initialization
	fs = getSampleRate();	// sampling rate, Hz
	
	fcSlewer.setTau(.02, fs); // set the mod signal slewer
	gSlewer.setTau(.02, fs); // set the mod signal slewer	
	qSlewer.setTau(.02, fs); // set the mod signal slewer
	modSlewer.setTau(.02, fs); // set the mod signal slewer

	// place holder
	designResonantLowPass(lpCoefs, FcValue, QValue);
	lpFilter.setCoefs(lpCoefs);
    
    peak_detector.setTauAttack(0.01, fs);
    peak_detector.setTauRelease(0.1, fs);
}