VstI, les fonctions minimums
Je me réintéresse (enfin) au sujet.
Je sais qu'il y a quelques amateurs sur ce forum.
Donc je cherche à faire un vst instrument, le plus petit possible, implémentant le minimum requis. Je n'arrive pas à trouver de la doc décrivant le minimum à faire pour que ça marche.
Voilà ce que j'ai, apparemment ça ne suffit pas, j'ai une erreur au chargement dans fruityloops :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| // Synth2.h
#ifndef SYNTH2
#define SYNTH2
#include "public.sdk/source/vst2.x/audioeffectx.h"
class Synth2 : public AudioEffectX
{
//------------------------------------ Standard Services ------------------------------------
public:
Synth2( audioMasterCallback audioMaster );
~Synth2();
//------------------------------------ Virtual Services ------------------------------------
public:
// Main sound processing callback
virtual void processReplacing( float** inputs, float** outputs, VstInt32 sampleFrames );
};
#endif // define SYNTH2 |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| // Synth2.cpp
#include "Synth2.h"
#include <cstdlib>
#include <ctime>
#include <algorithm>
struct GenNormRandNum
{
float operator() ()
{
return ( float( std::rand() ) / RAND_MAX ) * 2 - 1;
}
};
Synth2::Synth2( audioMasterCallback audioMaster )
: AudioEffectX( audioMaster, 0, 0 )
{
// initialize programs
if (audioMaster)
{
setNumInputs (0); // no inputs
setNumOutputs ( 2 ); // 2 outputs, 1 for each oscillator
canProcessReplacing ();
isSynth ();
setUniqueID ('Syn2'); // <<<! *must* change this!!!!
std::srand( std::time( NULL ) );
}
}
Synth2::~Synth2()
{
}
void
Synth2::processReplacing( float **inputs, float **outputs, VstInt32 sampleFrames )
{
float* out1 = outputs[0];
float* out2 = outputs[1];
std::generate_n( out1, sampleFrames, GenNormRandNum() );
std::copy( out1, out1 + sampleFrames, out2 );
} |
Code:
1 2 3 4 5 6 7 8 9 10
| // main.cpp
#include "Synth2.h"
AudioEffect*
createEffectInstance( audioMasterCallback audioMaster )
{
return new Synth2( audioMaster );
} |
J'ai du oublié qqc mais quoi ? merci ;)