leaf-effects.h
1 /*==============================================================================
2 
3  leaf-effects.h
4 
5 
6  ==============================================================================*/
7 
8 #ifndef LEAF_EFFECTS_H_INCLUDED
9 #define LEAF_EFFECTS_H_INCLUDED
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15  //==============================================================================
16 #include "leaf-global.h"
17 #include "leaf-math.h"
18 #include "leaf-mempool.h"
19 #include "leaf-dynamics.h"
20 #include "leaf-analysis.h"
21 #include "leaf-envelopes.h"
22 
23 
24 
25  //==============================================================================
26 
93 #define NUM_TALKBOX_PARAM 4
94 
95  typedef struct _tTalkbox
96  {
97 
98  tMempool mempool;
99 
100  float param[NUM_TALKBOX_PARAM];
101 
102  int bufsize;
103  float* car0;
104  float* car1;
105  float* window;
106  float* buf0;
107  float* buf1;
108  float* k;
109  float warpFactor;
110  int32_t warpOn;
111  int freeze;
112  float emphasis;
113  int32_t K, N, O, pos;
114  float wet, dry, FX;
115  float d0, d1, d2, d3, d4;
116  float u0, u1, u2, u3, u4;
117  float G;
118  double* dl;
119  double* Rt;
120 
121 
122  } _tTalkbox;
123 
124  typedef _tTalkbox* tTalkbox;
125 
126  void tTalkbox_init (tTalkbox* const, int bufsize, LEAF* const leaf);
127  void tTalkbox_initToPool (tTalkbox* const, int bufsize, tMempool* const);
128  void tTalkbox_free (tTalkbox* const);
129 
130  float tTalkbox_tick (tTalkbox* const, float synth, float voice);
131  float tTalkbox_tickFrozen (tTalkbox* const voc, float synth, float voice);
132  void tTalkbox_update (tTalkbox* const);
133  void tTalkbox_suspend (tTalkbox* const);
134  void tTalkbox_lpcDurbin (float *r, int p, float *k, float *g);
135  void tTalkbox_lpc (float *buf, float *car, double* dl, double* Rt, int32_t n, int32_t o, float warp, int warpOn, float *k, int freeze, float *G);
136  void tTalkbox_setQuality (tTalkbox* const, float quality);
137  void tTalkbox_setWarpFactor (tTalkbox* const voc, float warp);
138  void tTalkbox_setWarpOn (tTalkbox* const voc, float warpOn);
139  void tTalkbox_setFreeze (tTalkbox* const voc, float freeze);
140  void tTalkbox_warpedAutocorrelate (float * x, double* dl, double* Rt, unsigned int L, float * R, unsigned int P, float lambda);
141 
142 
143  //==============================================================================
144 
145 
212  typedef struct _tTalkboxFloat
213  {
214 
215  tMempool mempool;
216 
217  float param[NUM_TALKBOX_PARAM];
218 
219  int bufsize;
220  float* car0;
221  float* car1;
222  float* window;
223  float* buf0;
224  float* buf1;
225  float* k;
226  float warpFactor;
227  int32_t warpOn;
228  int freeze;
229  float emphasis;
230  int32_t K, N, O, pos;
231  float wet, dry, FX;
232  float d0, d1, d2, d3, d4;
233  float u0, u1, u2, u3, u4;
234  float G;
235  float* dl;
236  float* Rt;
237 
238  } _tTalkboxFloat;
239 
240  typedef _tTalkboxFloat* tTalkboxFloat;
241 
242  void tTalkboxFloat_init (tTalkboxFloat* const, int bufsize, LEAF* const leaf);
243  void tTalkboxFloat_initToPool (tTalkboxFloat* const, int bufsize, tMempool* const);
244  void tTalkboxFloat_free (tTalkboxFloat* const);
245 
246  float tTalkboxFloat_tick (tTalkboxFloat* const, float synth, float voice);
247  float tTalkboxFloat_tickFrozen (tTalkboxFloat* const voc, float synth, float voice);
248  void tTalkboxFloat_update (tTalkboxFloat* const);
249  void tTalkboxFloat_suspend (tTalkboxFloat* const);
250  void tTalkboxFloat_lpcDurbin (float *r, int p, float *k, float *g);
251  void tTalkboxFloat_lpc (float *buf, float *car, float* dl, float* Rt, int32_t n, int32_t o, float warp, int warpOn, float *k, int freeze, float *G);
252  void tTalkboxFloat_setQuality (tTalkboxFloat* const, float quality);
253  void tTalkboxFloat_setWarpFactor (tTalkboxFloat* const voc, float warp);
254  void tTalkboxFloat_setWarpOn (tTalkboxFloat* const voc, int warpOn);
255  void tTalkboxFloat_setFreeze (tTalkboxFloat* const voc, int freeze);
256  void tTalkboxFloat_warpedAutocorrelate (float * x, float* dl, float* Rt, unsigned int L, float * R, unsigned int P, float lambda);
257  //==============================================================================
258 
259 
294 #define NUM_VOCODER_PARAM 8
295 #define NBANDS 16
296 
297  typedef struct _tVocoder
298  {
299 
300  tMempool mempool;
301 
302  float param[NUM_VOCODER_PARAM];
303 
304  float gain; //output level
305  float thru, high; //hf thru
306  float kout; //downsampled output
307  int32_t kval; //downsample counter
308  int32_t nbnd; //number of bands
309 
310  //filter coeffs and buffers - seems it's faster to leave this global than make local copy
311  float f[NBANDS][13]; //[0-8][0 1 2 | 0 1 2 3 | 0 1 2 3 | val rate]
312 
313  } _tVocoder;
314 
315  typedef _tVocoder* tVocoder;
316 
317  void tVocoder_init (tVocoder* const, LEAF* const leaf);
318  void tVocoder_initToPool (tVocoder* const, tMempool* const);
319  void tVocoder_free (tVocoder* const);
320 
321  float tVocoder_tick (tVocoder* const, float synth, float voice);
322  void tVocoder_update (tVocoder* const);
323  void tVocoder_suspend (tVocoder* const);
324 
325  //==============================================================================
326 
373  typedef struct _tRosenbergGlottalPulse
374  {
375 
376  tMempool mempool;
377  float phase;
378  float openLength;
379  float pulseLength;
380  float invPulseLengthMinusOpenLength;
381  float freq;
382  float inc;
383  } _tRosenbergGlottalPulse;
384 
385  typedef _tRosenbergGlottalPulse* tRosenbergGlottalPulse;
386 
387  void tRosenbergGlottalPulse_init (tRosenbergGlottalPulse* const, LEAF* const leaf);
388  void tRosenbergGlottalPulse_initToPool (tRosenbergGlottalPulse* const, tMempool* const);
389  void tRosenbergGlottalPulse_free (tRosenbergGlottalPulse* const);
390 
391  float tRosenbergGlottalPulse_tick (tRosenbergGlottalPulse* const);
392  float tRosenbergGlottalPulse_tickHQ (tRosenbergGlottalPulse* const gp);
393  void tRosenbergGlottalPulse_setFreq (tRosenbergGlottalPulse* const, float freq);
394 
395  void tRosenbergGlottalPulse_setOpenLength (tRosenbergGlottalPulse* const, float openLength);
396 
397  void tRosenbergGlottalPulse_setPulseLength (tRosenbergGlottalPulse* const, float pulseLength);
398  void tRosenbergGlottalPulse_setOpenLengthAndPulseLength (tRosenbergGlottalPulse* const gp, float openLength, float pulseLength);
399  //==============================================================================
400 
443 //#define LOOPSIZE (2048*2) // (4096*2) // loop size must be power of two
444 //#define LOOPMASK (LOOPSIZE - 1)
445 #define PITCHFACTORDEFAULT 1.0f
446 #define INITPERIOD 64.0f
447 //#define MAXPERIOD (float)((LOOPSIZE - w->blocksize) * 0.8f)
448 #define MINPERIOD 8.0f
449 
450  typedef struct _tSOLAD
451  {
452  tMempool mempool;
453 
454  tAttackDetection ad;
455  tHighpass hp;
456 
457  int loopSize;
458  uint16_t timeindex; // current reference time, write index
459  uint16_t blocksize; // signal input / output block size
460  float pitchfactor; // pitch factor between 0.25 and 4
461  float readlag; // read pointer's lag behind write pointer
462  float period; // period length in input signal
463  float jump; // read pointer jump length and direction
464  float xfadelength; // crossfade length expressed at input sample rate
465  float xfadevalue; // crossfade phase and value
466 
467  float* delaybuf;
468 
469  } _tSOLAD;
470 
471  typedef _tSOLAD* tSOLAD;
472 
473  void tSOLAD_init (tSOLAD* const, int loopSize, LEAF* const leaf);
474  void tSOLAD_initToPool (tSOLAD* const, int loopSize, tMempool* const);
475  void tSOLAD_free (tSOLAD* const);
476 
477  // send one block of input samples, receive one block of output samples
478  void tSOLAD_ioSamples (tSOLAD *w, float* in, float* out, int blocksize);
479  // set periodicity analysis data
480  void tSOLAD_setPeriod (tSOLAD *w, float period);
481  // set pitch factor between 0.25 and 4
482  void tSOLAD_setPitchFactor (tSOLAD *w, float pitchfactor);
483  // force readpointer lag
484  void tSOLAD_setReadLag (tSOLAD *w, float readlag);
485  // reset state variables
486  void tSOLAD_resetState (tSOLAD *w);
487 
526  typedef struct _tPitchShift
527  {
528  tMempool mempool;
529 
530  _tDualPitchDetector* pd;
531  tSOLAD sola;
532 
533  float* outBuffer;
534  float* inBuffer;
535  int bufSize;
536  int index;
537 
538  float pickiness;
539  } _tPitchShift;
540 
541  typedef _tPitchShift* tPitchShift;
542 
543  void tPitchShift_init (tPitchShift* const, tDualPitchDetector* const, int bufSize, LEAF* const leaf);
544  void tPitchShift_initToPool (tPitchShift* const, tDualPitchDetector* const, int bufSize, tMempool* const);
545  void tPitchShift_free (tPitchShift* const);
546 
547  void tPitchShift_shiftBy (tPitchShift* const, float factor, float* in, float* out);
548  void tPitchShift_shiftTo (tPitchShift* const, float freq, float* in, float* out);
549 
550  void tPitchShift_setPickiness (tPitchShift* const, float p);
551 
590  typedef struct _tSimpleRetune
591  {
592  tMempool mempool;
593 
594  tDualPitchDetector dp;
595  float minInputFreq, maxInputFreq;
596 
597  tPitchShift* ps;
598 
599  float* inBuffer;
600  float* outBuffer;
601  int bufSize;
602  int index;
603 
604  void (*shiftFunction)(tPitchShift* const, float, float*, float*);
605 
606  float* shiftValues;
607  int numVoices;
608  } _tSimpleRetune;
609 
610  typedef _tSimpleRetune* tSimpleRetune;
611 
612  void tSimpleRetune_init (tSimpleRetune* const, int numVoices, float minInputFreq, float maxInputFreq, int bufSize, LEAF* const leaf);
613  void tSimpleRetune_initToPool (tSimpleRetune* const, int numVoices, float minInputFreq, float maxInputFreq, int bufSize, tMempool* const);
614  void tSimpleRetune_free (tSimpleRetune* const);
615 
616  float tSimpleRetune_tick (tSimpleRetune* const, float sample);
617  void tSimpleRetune_setMode (tSimpleRetune* const, int mode);
618  void tSimpleRetune_setNumVoices (tSimpleRetune* const, int numVoices);
619  void tSimpleRetune_setPickiness (tSimpleRetune* const, float p);
620  void tSimpleRetune_tuneVoices (tSimpleRetune* const, float* t);
621  void tSimpleRetune_tuneVoice (tSimpleRetune* const, int voice, float t);
622  float tSimpleRetune_getInputFrequency (tSimpleRetune* const);
623 
662  typedef struct _tRetune
663  {
664  tMempool mempool;
665 
666  tDualPitchDetector dp;
667  float minInputFreq, maxInputFreq;
668 
669  tPitchShift* ps;
670 
671  float* pdBuffer;
672  float* inBuffer;
673  float** outBuffers;
674  int bufSize;
675  int index;
676 
677  float* output;
678 
679  void (*shiftFunction)(tPitchShift* const, float, float*, float*);
680 
681  float* shiftValues;
682  int numVoices;
683  } _tRetune;
684 
685  typedef _tRetune* tRetune;
686 
687  void tRetune_init (tRetune* const, int numVoices, float minInputFreq, float maxInputFreq, int bufSize, LEAF* const leaf);
688  void tRetune_initToPool (tRetune* const, int numVoices, float minInputFreq, float maxInputFreq, int bufSize, tMempool* const);
689  void tRetune_free (tRetune* const);
690 
691  float* tRetune_tick (tRetune* const, float sample);
692  void tRetune_setMode (tRetune* const, int mode);
693  void tRetune_setNumVoices (tRetune* const, int numVoices);
694  void tRetune_setPickiness (tRetune* const, float p);
695  void tRetune_tuneVoices (tRetune* const, float* t);
696  void tRetune_tuneVoice (tRetune* const, int voice, float t);
697  float tRetune_getInputFrequency (tRetune* const);
698 
699  //==============================================================================
700 
747  typedef struct _tFormantShifter
748  {
749 
750  tMempool mempool;
751  int ford;
752  float falph;
753  float flamb;
754  float* fk;
755  float* fb;
756  float* fc;
757  float* frb;
758  float* frc;
759  float* fsig;
760  float* fsmooth;
761  float fhp;
762  float flp;
763  float flpa;
764  float* fbuff;
765  float* ftvec;
766  float fmute;
767  float fmutealph;
768  unsigned int cbi;
769  float shiftFactor;
770  float intensity, invIntensity;
771  tHighpass hp;
772  tHighpass hp2;
773  tFeedbackLeveler fbl1;
774  tFeedbackLeveler fbl2;
775  } _tFormantShifter;
776 
777  typedef _tFormantShifter* tFormantShifter;
778 
779  void tFormantShifter_init (tFormantShifter* const, int order, LEAF* const leaf);
780  void tFormantShifter_initToPool (tFormantShifter* const, int order, tMempool* const);
781  void tFormantShifter_free (tFormantShifter* const);
782 
783  float tFormantShifter_tick (tFormantShifter* const, float input);
784  float tFormantShifter_remove (tFormantShifter* const, float input);
785  float tFormantShifter_add (tFormantShifter* const, float input);
786  void tFormantShifter_ioSamples (tFormantShifter* const, float* in, float* out, int size, float fwarp);
787  void tFormantShifter_setShiftFactor (tFormantShifter* const, float shiftFactor);
788  void tFormantShifter_setIntensity (tFormantShifter* const, float intensity);
789 
790  //==============================================================================
791 
792 #ifdef __cplusplus
793 }
794 #endif
795 
796 #endif // LEAF_EFFECTS_H_INCLUDED
797 
798 //==============================================================================
tTalkboxFloat_warpedAutocorrelate
void tTalkboxFloat_warpedAutocorrelate(float *x, float *dl, float *Rt, unsigned int L, float *R, unsigned int P, float lambda)
Definition: leaf-effects.c:475
tFormantShifter_remove
float tFormantShifter_remove(tFormantShifter *const, float input)
Definition: leaf-effects.c:1783
tTalkboxFloat_init
void tTalkboxFloat_init(tTalkboxFloat *const, int bufsize, LEAF *const leaf)
Initialize a tTalkboxFloat to the default mempool of a LEAF instance.
Definition: leaf-effects.c:367
tRetune_setNumVoices
void tRetune_setNumVoices(tRetune *const, int numVoices)
Definition: leaf-effects.c:1674
tFormantShifter_free
void tFormantShifter_free(tFormantShifter *const)
Free a tFormantShifter from its mempool.
Definition: leaf-effects.c:1758
tRetune_free
void tRetune_free(tRetune *const)
Free a tRetune from its mempool.
Definition: leaf-effects.c:1615
tRosenbergGlottalPulse_tickHQ
float tRosenbergGlottalPulse_tickHQ(tRosenbergGlottalPulse *const gp)
Definition: leaf-effects.c:945
tFormantShifter_init
void tFormantShifter_init(tFormantShifter *const, int order, LEAF *const leaf)
Initialize a tFormantShifter to the default mempool of a LEAF instance.
Definition: leaf-effects.c:1716
tTalkbox_warpedAutocorrelate
void tTalkbox_warpedAutocorrelate(float *x, double *dl, double *Rt, unsigned int L, float *R, unsigned int P, float lambda)
Definition: leaf-effects.c:143
tRosenbergGlottalPulse_setFreq
void tRosenbergGlottalPulse_setFreq(tRosenbergGlottalPulse *const, float freq)
Definition: leaf-effects.c:973
tRosenbergGlottalPulse_setOpenLengthAndPulseLength
void tRosenbergGlottalPulse_setOpenLengthAndPulseLength(tRosenbergGlottalPulse *const gp, float openLength, float pulseLength)
Definition: leaf-effects.c:996
tRetune_tick
float * tRetune_tick(tRetune *const, float sample)
Definition: leaf-effects.c:1634
tTalkbox_initToPool
void tTalkbox_initToPool(tTalkbox *const, int bufsize, tMempool *const)
Initialize a tTalkbox to a specified mempool.
Definition: leaf-effects.c:40
tTalkbox_tickFrozen
float tTalkbox_tickFrozen(tTalkbox *const voc, float synth, float voice)
tTalkboxFloat_update
void tTalkboxFloat_update(tTalkboxFloat *const)
update internal parameters...
Definition: leaf-effects.c:418
tFormantShifter_initToPool
void tFormantShifter_initToPool(tFormantShifter *const, int order, tMempool *const)
Initialize a tFormantShifter to a specified mempool.
Definition: leaf-effects.c:1721
tSOLAD_setPitchFactor
void tSOLAD_setPitchFactor(tSOLAD *w, float pitchfactor)
Set pitch factor between 0.25 and 4.
Definition: leaf-effects.c:1100
tVocoder_suspend
void tVocoder_suspend(tVocoder *const)
Definition: leaf-effects.c:877
tTalkbox_tick
float tTalkbox_tick(tTalkbox *const, float synth, float voice)
Definition: leaf-effects.c:214
tFormantShifter_ioSamples
void tFormantShifter_ioSamples(tFormantShifter *const, float *in, float *out, int size, float fwarp)
tTalkboxFloat_initToPool
void tTalkboxFloat_initToPool(tTalkboxFloat *const, int bufsize, tMempool *const)
Initialize a tTalkboxFloat to a specified mempool.
Definition: leaf-effects.c:372
tRosenbergGlottalPulse_tick
float tRosenbergGlottalPulse_tick(tRosenbergGlottalPulse *const)
Definition: leaf-effects.c:916
tFormantShifter_tick
float tFormantShifter_tick(tFormantShifter *const, float input)
Definition: leaf-effects.c:1778
tTalkbox_update
void tTalkbox_update(tTalkbox *const)
update internal parameters...
Definition: leaf-effects.c:86
tTalkboxFloat_setWarpFactor
void tTalkboxFloat_setWarpFactor(tTalkboxFloat *const voc, float warp)
Definition: leaf-effects.c:669
tFormantShifter_setShiftFactor
void tFormantShifter_setShiftFactor(tFormantShifter *const, float shiftFactor)
Definition: leaf-effects.c:1920
tTalkbox_free
void tTalkbox_free(tTalkbox *const)
Free a tTalkbox from its mempool.
Definition: leaf-effects.c:70
tSOLAD_setReadLag
void tSOLAD_setReadLag(tSOLAD *w, float readlag)
Force readpointer lag.
Definition: leaf-effects.c:1112
tVocoder_update
void tVocoder_update(tVocoder *const)
Definition: leaf-effects.c:725
tTalkboxFloat_suspend
void tTalkboxFloat_suspend(tTalkboxFloat *const)
clear any buffers...
Definition: leaf-effects.c:452
tRosenbergGlottalPulse_setPulseLength
void tRosenbergGlottalPulse_setPulseLength(tRosenbergGlottalPulse *const, float pulseLength)
Definition: leaf-effects.c:989
tTalkbox_lpcDurbin
void tTalkbox_lpcDurbin(float *r, int p, float *k, float *g)
Definition: leaf-effects.c:181
tFormantShifter_setIntensity
void tFormantShifter_setIntensity(tFormantShifter *const, float intensity)
Definition: leaf-effects.c:1926
tRosenbergGlottalPulse_free
void tRosenbergGlottalPulse_free(tRosenbergGlottalPulse *const)
Free a tRosenbergGlottalPulse from its mempool.
Definition: leaf-effects.c:910
tSimpleRetune_free
void tSimpleRetune_free(tSimpleRetune *const)
Free a tSimpleRetune from its mempool.
Definition: leaf-effects.c:1481
tSimpleRetune_setNumVoices
void tSimpleRetune_setNumVoices(tSimpleRetune *const, int numVoices)
Definition: leaf-effects.c:1527
tTalkboxFloat_tick
float tTalkboxFloat_tick(tTalkboxFloat *const, float synth, float voice)
Definition: leaf-effects.c:547
tSOLAD_free
void tSOLAD_free(tSOLAD *const)
Free a tSOLAD from its mempool.
Definition: leaf-effects.c:1047
tTalkbox_setFreeze
void tTalkbox_setFreeze(tTalkbox *const voc, float freeze)
Definition: leaf-effects.c:347
tRosenbergGlottalPulse_initToPool
void tRosenbergGlottalPulse_initToPool(tRosenbergGlottalPulse *const, tMempool *const)
Initialize a tRosenbergGlottalPulse to a specified mempool.
Definition: leaf-effects.c:896
tTalkbox_init
void tTalkbox_init(tTalkbox *const, int bufsize, LEAF *const leaf)
Initialize a tTalkbox to the default mempool of a LEAF instance.
Definition: leaf-effects.c:35
tTalkboxFloat_lpcDurbin
void tTalkboxFloat_lpcDurbin(float *r, int p, float *k, float *g)
Definition: leaf-effects.c:513
tRosenbergGlottalPulse_init
void tRosenbergGlottalPulse_init(tRosenbergGlottalPulse *const, LEAF *const leaf)
Initialize a tRosenbergGlottalPulse to the default mempool of a LEAF instance.
Definition: leaf-effects.c:891
tVocoder_free
void tVocoder_free(tVocoder *const)
Free a tVocoder from its mempool.
Definition: leaf-effects.c:718
tFormantShifter_add
float tFormantShifter_add(tFormantShifter *const, float input)
Definition: leaf-effects.c:1822
tVocoder_initToPool
void tVocoder_initToPool(tVocoder *const, tMempool *const)
Initialize a tVocoder to a specified mempool.
Definition: leaf-effects.c:700
tTalkboxFloat_setQuality
void tTalkboxFloat_setQuality(tTalkboxFloat *const, float quality)
Definition: leaf-effects.c:656
tPitchShift_free
void tPitchShift_free(tPitchShift *const)
Free a tPitchShift from its mempool.
Definition: leaf-effects.c:1392
tTalkbox_setQuality
void tTalkbox_setQuality(tTalkbox *const, float quality)
Definition: leaf-effects.c:320
tRosenbergGlottalPulse_setOpenLength
void tRosenbergGlottalPulse_setOpenLength(tRosenbergGlottalPulse *const, float openLength)
Definition: leaf-effects.c:982
tTalkbox_setWarpFactor
void tTalkbox_setWarpFactor(tTalkbox *const voc, float warp)
Definition: leaf-effects.c:333
tVocoder_tick
float tVocoder_tick(tVocoder *const, float synth, float voice)
Definition: leaf-effects.c:810
tTalkbox_suspend
void tTalkbox_suspend(tTalkbox *const)
clear any buffers...
Definition: leaf-effects.c:120
tTalkbox_setWarpOn
void tTalkbox_setWarpOn(tTalkbox *const voc, float warpOn)
Definition: leaf-effects.c:340
tTalkboxFloat_free
void tTalkboxFloat_free(tTalkboxFloat *const)
Free a tTalkboxFloat from its mempool.
Definition: leaf-effects.c:402
tVocoder_init
void tVocoder_init(tVocoder *const, LEAF *const leaf)
Initialize a tVocoder to the default mempool of a LEAF instance.
Definition: leaf-effects.c:695
tSOLAD_setPeriod
void tSOLAD_setPeriod(tSOLAD *w, float period)
Set periodicity analysis data.
Definition: leaf-effects.c:1090
LEAF
Struct for an instance of LEAF.
Definition: leaf-global.h:31
tSOLAD_resetState
void tSOLAD_resetState(tSOLAD *w)
Reset state variables.
Definition: leaf-effects.c:1127
tSimpleRetune_tick
float tSimpleRetune_tick(tSimpleRetune *const, float sample)
Definition: leaf-effects.c:1497
tTalkboxFloat_tickFrozen
float tTalkboxFloat_tickFrozen(tTalkboxFloat *const voc, float synth, float voice)