Beispiel #1
0
SorolletVSTi::SorolletVSTi(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, kNumPrograms, kNumParams)
{
	if (audioMaster)
	{
		// TODO: load default / more varied programs!

		// initialize programs
		programs = new SorolletVSTiProgram[kNumPrograms];
		for (VstInt32 i = 0; i < 16; i++)
			channelPrograms[i] = i;

		mSorolletVoice = new SorolletVoice();

		if (programs)
		{
			setProgram(0);
		}

		setNumInputs(0); // no inputs
		setNumOutputs(kNumOutputs); // 2 outputs
		canProcessReplacing();
		isSynth();
		setUniqueID('so02');

		currentEvent = EVENT_NULL;

		initProcess();
		suspend();
	}
}
mdaLooplex::mdaLooplex(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, NPROGS, NPARAMS)
{

  Fs = 44100.0f; //won't we know the sample rate by the time we need it?

  //initialise...
  bypass = bypassed = busy = status = 0; //0=not recorded 1=first pass 2=looping
  bufmax = 882000;
  buffer = new short[bufmax + 10];
  memset(buffer, 0, (bufmax + 10) * sizeof(short));
  bufpos = 0;
  buflen = 0;
  recreq = 0;
  oldParam0 = oldParam1 = oldParam2 = 0.0f;
  modwhl = 1.0f;

  programs = new mdaLooplexProgram[NPROGS];
	if(programs) setProgram(0);

  if(audioMaster)
	{
		setNumInputs(NOUTS);				
		setNumOutputs(NOUTS);
		canProcessReplacing();
    //needIdle(); idle is broken in VST2.4
		setUniqueID('MDA~');	///
	}

  update();
	suspend();
  
  idleList.next = new IdleList(this, idleList.next); //add to idle list, start timer if not running...
}
Beispiel #3
0
TimedFader::TimedFader(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, 1, 3)
{
	//inits here!
	fOutput = 1.0f;
	faderSteps = 15;
	currentFaderFrameCount = 1;

	setNumInputs(2);
	setNumOutputs(2);
	setUniqueID('tFd1');    // identify here
	DECLARE_VST_DEPRECATED(canMono) ();
	canProcessReplacing();
	strcpy(programName, "Timed Fader 1");

	setParameter(PARAM_PlayDuration, 30.0f); // 10 seconds  //0.166667); //~30 seconds
	setParameter(PARAM_FadeDuration, 3.0f);  // 3 seconds

	fPlaySecondsRemaining = fPlayDuration;
	fFadeSecondsRemaining = fFadeDuration;
	state = STATE_DONE;

	muteGain = (float)pow(10.0f, 0.05f * -60.0f);
	muteGain *= 0.01f;

	fSecondsPerFrame = 1 / sampleRate;
	
	// Create the editor
	faderDisplay = new FaderDisplay(this);
	editor = faderDisplay;

	suspend();		// flush buffer
}
Beispiel #4
0
/*!
	The constructor of your class is passed a parameter of the type \e audioMasterCallback. The actual 
	mechanism in which your class gets constructed is not important right now. Effectively your class is 
	constructed by the hosting application, which passes an object of type \e audioMasterCallback that 
	handles the interaction with the plug-in. You pass this on to the base class' constructor and then 
	can forget about it.

	\param audioMaster Passed by the Host and handles interaction
	\param numPrograms Pass the number of programs the plug-in provides
	\param numParams Pass the number of parameters the plug-in provides
	
\code
MyPlug::MyPlug (audioMasterCallback audioMaster)
: AudioEffectX (audioMaster, 1, 1)    // 1 program, 1 parameter only
{
	setNumInputs (2); // stereo in
	setNumOutputs (2); // stereo out
	setUniqueID ('MyPl'); // you must change this for other plug-ins!
	canProcessReplacing (); // supports replacing mode
}
\endcode

	\sa setNumInputs, setNumOutputs, setUniqueID, canProcessReplacing
*/
AudioEffect::AudioEffect (audioMasterCallback audioMaster, VstInt32 numPrograms, VstInt32 numParams)
: audioMaster (audioMaster)
, editor (0)
, sampleRate (44100.f)
, blockSize (1024)
, numPrograms (numPrograms)
, numParams (numParams)
, curProgram (0)
{
	memset (&cEffect, 0, sizeof (cEffect));

	cEffect.magic = kEffectMagic;
	cEffect.dispatcher = dispatchEffectClass;
	cEffect.DECLARE_VST_DEPRECATED (process) = DECLARE_VST_DEPRECATED (processClass);
	cEffect.setParameter = setParameterClass;
	cEffect.getParameter = getParameterClass;
	cEffect.numPrograms  = numPrograms;
	cEffect.numParams    = numParams;
	cEffect.numInputs  = 1;		// mono input
	cEffect.numOutputs = 2;		// stereo output
	cEffect.DECLARE_VST_DEPRECATED (ioRatio) = 1.f;
	cEffect.object = this;
	cEffect.uniqueID = CCONST ('N', 'o', 'E', 'f');
	cEffect.version  = 1;
	cEffect.processReplacing = processClassReplacing;

#if VST_2_4_EXTENSIONS
	canProcessReplacing (); // mandatory in VST 2.4!
	cEffect.processDoubleReplacing = processClassDoubleReplacing;
#endif
}
mdaLimiter::mdaLimiter(audioMasterCallback audioMaster)	: AudioEffectX(audioMaster, 1, 5)	// 1 program, 4 parameters
{
	fParam1 = (float)0.60; //thresh 		
  fParam2 = (float)0.60; //trim
  fParam3 = (float)0.15; //attack
  fParam4 = (float)0.50; //release
  fParam5 = (float)0.40; //knee

  setNumInputs(2);		    // stereo in
	setNumOutputs(2);		    // stereo out
	setUniqueID('mdaL');    // identify
	DECLARE_VST_DEPRECATED(canMono) ();				      
	canProcessReplacing();	// supports both accumulating and replacing output
	strcpy(programName, "Limiter");	// default program name

  if(fParam5>0.5) //soft knee
  {
    thresh = (float)pow(10.0, 1.0 - (2.0 * fParam1));
  }
  else //hard knee
  {
    thresh = (float)pow(10.0, (2.0 * fParam1) - 2.0);
  }
  trim = (float)(pow(10.0, (2.0 * fParam2) - 1.0));
  att = (float)pow(10.0, -0.01 - 2.0 * fParam3);//wavelab overruns with zero???
  rel = (float)pow(10.0, -2.0 - (3.0 * fParam4));
  gain = 1.0;
}
Beispiel #6
0
mdaTracker::mdaTracker(audioMasterCallback audioMaster)	: AudioEffectX(audioMaster, 1, 8)	// programs, parameters
{
  //inits here!
  fParam1 = (float)0.00; //Mode
  fParam2 = (float)1.00; //Dynamics
  fParam3 = (float)1.00; //Mix
  fParam4 = (float)0.97; //Tracking
  fParam5 = (float)0.50; //Trnspose
  fParam6 = (float)0.80; //Maximum Hz
  fParam7 = (float)0.50; //Trigger dB
  fParam8 = (float)0.50; //Output

  setNumInputs(2);
	setNumOutputs(2);
	setUniqueID("mdaTracker");    // identify here
	DECLARE_LVZ_DEPRECATED(canMono) ();
	canProcessReplacing();
	strcpy(programName, "Pitch Tracker");

  dphi = 100.f/getSampleRate(); //initial pitch
  min = (int32_t)(getSampleRate()/30.0); //lower limit
  res1 = (float)cos(0.01); //p
  res2 = (float)sin(0.01); //q

  fi = fo = thr = phi = ddphi = trans = buf1 = buf2 = dn = bold = wet = dry = 0.0f;
  dyn = env = rel = saw = dsaw = res1 = res2 = buf3 = buf4 = 0.0f;
  max = min = num = sig = mode = 0;

  setParameter(0, 0.0f);
}
Beispiel #7
0
NitroSynth::NitroSynth(audioMasterCallback pCallback)
:	AudioEffectX(pCallback, 0, 128),
	fSamplePeriod(1.0f/44100.0f),
	bRecording(false),
	iRecorderState(IDLE)
{
	if ( pCallback )
	{
		setNumInputs(0);
		setNumOutputs(2);
		canProcessReplacing();
		isSynth();
		setUniqueID('SRTN');
	}

	for ( int i = 0 ; i < 8 ; i++ )
		if ( i < 6 )
			pInstruments[i] = new Instrument(new WaveDuty(), & pParameters[i]);
		else
			pInstruments[i] = new Instrument(new Noise(), & pParameters[i]);

#ifndef NO_VST_GUI
	setEditor(new NitroSynthInterface(this));
#endif // NO_VST_GUI
}
Beispiel #8
0
CLlconVST::CLlconVST ( audioMasterCallback AudioMaster ) :
    AudioEffectX ( AudioMaster, 1, 0 ), // 1 program with no parameters (=0)
    Client ( LLCON_DEFAULT_PORT_NUMBER )
{
    // stereo input/output
	setNumInputs  ( 2 );
	setNumOutputs ( 2 );

	setUniqueID ( 'Llco' );

    // capabilities of llcon VST plugin
	canProcessReplacing();	// supports replacing output

    // set default program name
    GetName ( strProgName );

    // we want a single shot timer to shut down the connection if no
    // processing is done anymore (VST host has stopped the stream)
    TimerOnOff.setSingleShot ( true );
    TimerOnOff.setInterval   ( VST_STOP_TIMER_INTERVAL );

    // connect timer event
    connect ( &TimerOnOff, SIGNAL ( timeout() ),
        this, SLOT ( OnTimerOnOff() ) );

// TODO settings
Client.SetServerAddr ( DEFAULT_SERVER_ADDRESS );
}
mdaTalkBox::mdaTalkBox(audioMasterCallback audioMaster): AudioEffectX(audioMaster, NPROGS, NPARAMS)
{
  setNumInputs(2);
  setNumOutputs(2);
  setUniqueID('mda&');  ///identify plug-in here
  //canMono();
  canProcessReplacing();

  ///initialise...
  buf0 = new float[BUF_MAX];
  buf1 = new float[BUF_MAX];
  window = new float[BUF_MAX];
  car0 = new float[BUF_MAX];
  car1 = new float[BUF_MAX];
  N = 1; //trigger window recalc
  K = 0;

  programs = new mdaTalkBoxProgram[NPROGS];
  if(programs)
  {
    ///differences from default program...
    //programs[1].param[0] = 0.1f;
    //strcpy(programs[1].name,"Another Program");

    setProgram(0);
  }
  
  suspend();
}
Beispiel #10
0
LowPass::LowPass(audioMasterCallback audioMaster)
: AudioEffectX(audioMaster, NUM_PRESETS, kNumParams)
{
  programs = new LowPassProgram[numPrograms];
  
  sr = getSampleRate();
  if(sr<0.f) sr = 44100.f;

  fcutoff = log(cutoffDefault/cutoffMin)/(log(cutoffMax/cutoffMin));

  // instantiate callback
  
	// Initialize the internal states
	lambda = lp1 = lp2 = 0.;
   	


  if(programs) setProgram(0);

  setUniqueID(ID);
  setNumInputs(NUM_INPUTS);
  setNumOutputs(NUM_OUTPUTS);
  canProcessReplacing(CAN_PROCESS_REPLACING);
  canMono(CAN_MONO);
}
//-------------------------------------------------------------------------------------------------------
gsBEncoder::gsBEncoder (audioMasterCallback audioMaster)
: AudioEffectX (audioMaster, 1, num_params())	// 1 program, N parameters
, gen(0)
, bufferSize(512)
, sampleRate(44100)
, blockSize(512)
{
	inputBuffers.resize(num_inputs());
	outputBuffers.resize(num_outputs());

	for(int i=0; i < inputBuffers.size(); i++) {
		inputBuffers[i] = new t_sample[bufferSize];
	}
	for(int i=0; i < outputBuffers.size(); i++) {
		outputBuffers[i] = new t_sample[bufferSize];
	}

	gen = (CommonState *)create(sampleRate, blockSize);
	setNumInputs (num_inputs());
	setNumOutputs (num_outputs());
	setUniqueID ('GSE_I');	// identify
	canProcessReplacing ();	// supports replacing output
	canDoubleReplacing ();	// supports double precision processing

	vst_strncpy (programName, VST_NAME, kVstMaxProgNameLen);	// default program name
}
Beispiel #12
0
mdaAmbience::mdaAmbience(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, 1, 4)	// programs, parameters
{
  //inits here!
  fParam0 = 0.7f; //size
  fParam1 = 0.7f; //hf
  fParam2 = 0.9f; //mix
  fParam3 = 0.5f; //output

  size = 0;

	buf1 = new float[1024];
	buf2 = new float[1024];
	buf3 = new float[1024];
	buf4 = new float[1024];

  fil = 0.0f;
  den = pos=0;

  setNumInputs(2);
	setNumOutputs(2);
	setUniqueID("mdaAmb");    // identify here
	DECLARE_LVZ_DEPRECATED(canMono) ();
	canProcessReplacing();
	strcpy(programName, "Small Space Ambience");

  suspend();		// flush buffer
  setParameter(0, 0.7f); //go and set initial values!
}
Beispiel #13
0
mdaCombo::mdaCombo(audioMasterCallback audioMaster)	: AudioEffectX(audioMaster, 1, 7)	// programs, parameters
{
  //inits here!
  fParam1 = 1.00f; //select
  fParam2 = 0.50f; //drive
  fParam3 = 0.50f; //bias
  fParam4 = 0.50f; //output
  fParam5 = 0.00f; //stereo
  fParam6 = 0.00f; //hpf freq
  fParam7 = 0.50f; //hpf reso

  size = 1024;
  bufpos = 0;
	buffer = new float[size];
	buffe2 = new float[size];

  setNumInputs(2);
	setNumOutputs(2);
	setUniqueID("mdaCombo");    // identify here
	DECLARE_LVZ_DEPRECATED(canMono) ();
	canProcessReplacing();
	strcpy(programName, "Amp & Speaker Simulator");
	suspend();		// flush buffer

  setParameter(0, 0.f); //go and set initial values!
}
Beispiel #14
0
//-------------------------------------------------------------------------------------------------------
e6::e6 (audioMasterCallback audioMaster)
: AudioEffectX (audioMaster, 1, nParams )	// 1 program, 1 parameter only
{
	setNumInputs (0);		// no in
	setNumOutputs (0);		// no out
	setUniqueID ('e6e6');	// identify

	// we don't do audio !
	canProcessReplacing (false);	// supports replacing output
	canDoubleReplacing (false);	// supports double precision processing


	for ( int id=0; id<nParams; id++ ) 
	{
		sprintf( params[id].name,"param_%d", id );
		strcpy( params[id].label, "db" ); 
		params[id].value = 0.0f; 
	}

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

	logFile = fopen("e6.log", "wb" );
	int res = sock.connect( "localhost", 9999 );
	if ( res = SOCKET_ERROR )
	{
		fprintf( logFile, "could not connect to localhost on 9999\n" );
		fflush( logFile );
	}
	else
	{
		fprintf( logFile, "connected to localhost on 9999\n" );
		fflush( logFile );
	}
}
Beispiel #15
0
	ofxVSTPlugin(audioMasterCallback audioMaster): AudioEffectX (audioMaster, 1, 1) {

		plugin = ofxAudioPlugin_getPlugin(this);
		
		
#ifdef ofxAudioPlugin_IsSynth
		setNumInputs(0);
		isSynth();
#else
		setNumInputs (2);		// stereo in
#endif
		setNumOutputs (2);		// stereo out
		setUniqueID (ofxAudioPlugin_PluginCode);	// identify
		canProcessReplacing ();	// supports replacing output

		
		fGain = 1.f;			// default to 0 dB
		vst_strncpy (programName, "Default", kVstMaxProgNameLen);	// default program name
		
		cEffect.numPrograms = 3;
		
		
		cEffect.numParams = plugin->getNumParameters();
		cEffect.numParams = 1;
		
		parametersChanged();
	}
mdaDetune::mdaDetune(audioMasterCallback audioMaster): AudioEffectX(audioMaster, NPROGS, NPARAMS)
{
  setNumInputs(2);
  setNumOutputs(2);
  setUniqueID('mdat');  ///identify mdaDetune-in here
	DECLARE_VST_DEPRECATED(canMono) ();
  canProcessReplacing();

  programs[0].param[0] = 0.20f; //fine
  programs[0].param[1] = 0.90f; //mix
  programs[0].param[2] = 0.50f; //output
  programs[0].param[3] = 0.50f; //chunksize
  strcpy(programs[0].name, "Stereo Detune");
  programs[1].param[0] = 0.20f;
  programs[1].param[1] = 0.90f;
  programs[1].param[2] = 0.50f;
  programs[1].param[3] = 0.50f;
  strcpy(programs[1].name,"Symphonic");
  programs[2].param[0] = 0.8f;
  programs[2].param[1] = 0.7f;
  programs[2].param[2] = 0.50f;
  programs[2].param[3] = 0.50f;
  strcpy(programs[2].name,"Out Of Tune");

  ///initialise...
  curProgram=0;
  suspend();
  
  semi = 3.0f * 0.20f * 0.20f * 0.20f;
  dpos2 = (float)pow(1.0594631f, semi);
  dpos1 = 1.0f / dpos2;
  wet = 1.0f;
  dry = wet - wet * 0.90f * 0.90f;
  wet = (wet + wet - wet * 0.90f) * 0.90f;
}
Beispiel #17
0
mdaRezFilter::mdaRezFilter(audioMasterCallback audioMaster)	: AudioEffectX(audioMaster, 1, 10)	// programs, parameters
{
  //inits here!
  fParam0 = 0.33f; //f
  fParam1 = 0.70f; //q
  fParam2 = 0.50f; //a
  fParam3 = 0.85f; //fenv
  fParam4 = 0.00f; //att
  fParam5 = 0.50f; //rel
  fParam6 = 0.70f; //lfo
  fParam7 = 0.40f; //rate
  fParam8 = 0.00f; //trigger
  fParam9 = 0.75f; //max freq

  fff = fq = fg = fmax = env = fenv = att = rel = 0.0f;
  flfo = phi = dphi = bufl = buf0 = buf1 = buf2 = tthr = env2 = 0.0f;
  lfomode = ttrig = tatt = 0;

  setNumInputs(2);
	setNumOutputs(2);
	setUniqueID("mdaRezFilter");
	DECLARE_LVZ_DEPRECATED(canMono) ();
	canProcessReplacing();
	strcpy(programName, "Resonant Filter");

  suspend();		// flush buffer
  setParameter(2, 0.5f); //go and set initial values!
}
Beispiel #18
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);
}
Beispiel #19
0
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;
}
Beispiel #20
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;
}
Beispiel #21
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" );
}
Beispiel #22
0
Vst2413r::Vst2413r(audioMasterCallback audioMaster)
:   AudioEffectX(audioMaster, 0, 0),
    driver_(44100)
{
    if(audioMaster != NULL) {
        setNumInputs(0);
        setNumOutputs(1);
        setUniqueID(kUniqueId);
        canProcessReplacing();
        isSynth();
    }
    suspend();
}
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();
}
Beispiel #24
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();
}
Beispiel #25
0
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);
}
Beispiel #26
0
//------------------------------------------------------------------------------
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);    

    
}
Beispiel #27
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
}
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);
}
Beispiel #29
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 ();
}
Beispiel #30
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!
}