text: 
  /* Code automatically generated by Vult https://github.com/modlfo/vult */
  #include "aff_f.h"
  
  
  
  extern "C" {
  
  static t_class *aff_f_tilde_class;
  
  typedef struct _aff_f_tilde {
     t_pxobject  x_obj;
     float dummy;
     
     float in0_value;
     short in0_connected;
     float in1_value;
     short in1_connected;
     Aff_f_process_type data;
  } t_aff_f_tilde;
  
  void aff_f_tilde_perform(t_aff_f_tilde *x, t_object *dsp64, double **ins, long numins, double **outs, long numouts, long sampleframes, long flags, void *userparam)
  {
     
     double *in_0 = ins[0];
     double *in_1 = ins[1];
     double *out_0 = outs[0];
  
     int n = sampleframes;
     while (n--) {
     
     float in_0_value = x->in0_connected? *(in_0++): x->in0_value;
     float in_1_value = x->in1_connected? *(in_1++): x->in1_value;
     
     float ret =  Aff_f_process(x->data,(float) in_0_value,(float) in_1_value);
     *(out_0++) = (float) ret;
     }
  }
  
  void aff_f_tilde_dsp(t_aff_f_tilde *x, t_object *dsp64, short *count, double samplerate, long maxvectorsize, long flags)
  {
     
     x->in0_connected = count[0];
     x->in1_connected = count[1];
     object_method(dsp64, gensym("dsp_add64"), x, aff_f_tilde_perform, 0, NULL);
  }
  
  void *aff_f_tilde_new(t_symbol *s, long argc, t_atom *argv)
  {
     t_aff_f_tilde *x = (t_aff_f_tilde *)object_alloc(aff_f_tilde_class);
  
     Aff_f_process_init(x->data);
     Aff_f_default(x->data);
     dsp_setup((t_pxobject *)x, 2);
     
     outlet_new((t_object *)x, "signal");
  
     return (void *)x;
  }
  
  void aff_f_tilde_delete(t_aff_f_tilde *x){
  
  }
  
  
  void aff_f_noteOn(t_aff_f_tilde *x, double note, double velocity, double channel){
     if((int)velocity) Aff_f_noteOn(x->data,(int)note,(int)velocity,(int)channel);
     else Aff_f_noteOff(x->data,(int)note,(int)channel);
  }
  
  
  void aff_f_noteOff(t_aff_f_tilde *x, double note, double channel) {
     Aff_f_noteOff(x->data,(int)note,(int)channel);
  }
  
  
  void aff_f_controlChange(t_aff_f_tilde *x, double control, double value, double channel) {
     Aff_f_controlChange(x->data,(int)control,(int)value,(int)channel);
  }
  
  
  void aff_f_float(t_aff_f_tilde *x, double f){
     int in = proxy_getinlet((t_object *)x);
     
     if(in == 0) x->in0_value = f;
     if(in == 1) x->in1_value = f;
  }
  
  void ext_main(void *r) {
     aff_f_tilde_class = class_new("aff_f~",
        (method)aff_f_tilde_new, // constructor function
        (method)aff_f_tilde_delete, // destructor function
        (long)sizeof(t_aff_f_tilde), // size of the object
         0L, A_GIMME, 0); // arguments passed
  
     class_addmethod(aff_f_tilde_class,(method)aff_f_tilde_dsp, "dsp64", A_CANT, 0);
  
     class_addmethod(aff_f_tilde_class, (method)aff_f_noteOn,        "noteOn",        A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0);
     class_addmethod(aff_f_tilde_class, (method)aff_f_noteOff,       "noteOff",       A_DEFFLOAT, A_DEFFLOAT, 0);
     class_addmethod(aff_f_tilde_class, (method)aff_f_controlChange, "controlChange", A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0);
     class_addmethod(aff_f_tilde_class, (method)aff_f_float, "float", A_FLOAT, 0);
  
     class_dspinit(aff_f_tilde_class);
     class_register(CLASS_BOX, aff_f_tilde_class);
  }
  
  } // extern "C"
  