Tutorial VST.

Anuncio
Tutorial VST.
Para empezar con VST basta con implementar los métodos de la clase AudioEffectX que se
muestran a continuación.
Class ADelay : public AudioEffectX
{
public:
ADelay (audioMasterCallback audioMaster);
~ADelay ();
//---from AudioEffect----------------------virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
virtual void setProgram (VstInt32 program);
virtual void setProgramName (char* name);
virtual void getProgramName (char* name);
virtual bool getProgramNameIndexed (VstInt32 category, VstInt32 index, char* text);
virtual void setParameter (VstInt32 index, float value);
virtual float getParameter (VstInt32 index);
virtual void getParameterLabel (VstInt32 index, char* label);
virtual void getParameterDisplay (VstInt32 index, char* text);
virtual void getParameterName (VstInt32 index, char* text);
virtual void resume ();
virtual bool getEffectName (char* name);
virtual bool getVendorString (char* text);
virtual bool getProductString (char* text);
virtual VstInt32 getVendorVersion () { return 1000; }
virtual VstPlugCategory getPlugCategory () { return kPlugCategEffect; }
De toda la lista cabría destacar aquellos que únicamente afectan a los parámetros, estos són los
contenidos en el segundo bloque de métodos. Siempre que querramos mostrar un parámentro al
usuario deberemos inicializarlo y incluirlo en dichos métodos, de este modo VST se encargará de
actualizar el valor de los parámetros en las llamadas de la aplicación host.
El último bloque de métodos se refiere al perfil que el plug-in adoptará en la app host.
El primer bloque queda fuera del los objetivos de este proyecto pero se refierre a la forma en que
VST guarda el valor de los parámentros, predefinidos por el usuario, en una estructura para su
posterior utilización. De este modo se podria salvar la configuración de los efectos preferida.
Pero el más importante de todos el el método processReplacing(), encargado de procesar los
samples de la señal sonora. Es en este método en el que se ha hecho especial hicapié en este
proyecto. Y es por eso que los efectos básicamente quedan ejemplificados en ese bloque.
La siguiente imagen muestra ejemplos implementando la modificación de parámentros.
float ADelay::getParameter (VstInt32 index)
{
float v = 0;
switch (index)
{
case kDelay : v = fDelay; break;
case kFeedBack : v = fFeedBack; break;
case kOut :
v = fOut;break;
}
return v;
}
En este caso, dependiendo del parámentro demandado se devuelverá el valor de una variable o de
otra.
Descargar