From ftm
Jump to: navigation, search
Line 1: Line 1:
 +
{{Module |
 +
  | name=ftm.mess
 +
  | brief=
 +
  | descr=
 +
  | arguments=none
 +
  | attributes=none
 +
  | messages=none
 +
  | inlets=1 - input list<br>
 +
  | outlets=1 - message outlet<br>
 +
}}
 +
 +
{{Module |
 +
  | name=ftm.object
 +
  | brief=
 +
  | descr=
 +
  | arguments=none
 +
  | attributes=none
 +
  | messages=bang - output reference<br>anything - message to object<br>
 +
  | inlets=none
 +
  | outlets=1 - object reference (when bang)<br>2 - method return values<br>
 +
}}
 +
 +
{{Module |
 +
  | name=ftm.print
 +
  | brief=print to the console
 +
  | descr=Prints any input (single values, lists, messages) to the console.
 +
Evokes print method of FTM objects when incoming as single value.
 +
  | arguments=1 <sym: prompt> - prompt symbol<br>
 +
  | attributes=none
 +
  | messages=anything - print message or FTM object<br>bang - print bang<br>
 +
  | inlets=1 [<any: values> ...] - print value or list<br>
 +
  | outlets=none
 +
}}
 +
 
{{Module |  
 
{{Module |  
 
   | name=gbr.addenv
 
   | name=gbr.addenv
 
   | brief=additive synthesis: generate partials with a given envelope
 
   | brief=additive synthesis: generate partials with a given envelope
 
   | descr=Adds partials with a spectral envolope (given as a vector or list) to an incoming spectrum using the FFT-1 technique.The output is typically connected to gbr.ifft (in real mode) or another gbr.addenv or gbr.addpartials module.
 
   | descr=Adds partials with a spectral envolope (given as a vector or list) to an incoming spectrum using the FFT-1 technique.The output is typically connected to gbr.ifft (in real mode) or another gbr.addenv or gbr.addpartials module.
   | arguments=0 <num: max> - maximum number of partials [64]<br>
+
   | arguments=1 <num: max> - maximum number of partials [64]<br>
 
   | attributes=noisy <bool: switch> - enable/disbale noisiness [&#039;off&#039;]<br>coefs <num: coefs> - set number of FFT-1 spectral bin coefficients [8]<br>
 
   | attributes=noisy <bool: switch> - enable/disbale noisiness [&#039;off&#039;]<br>coefs <num: coefs> - set number of FFT-1 spectral bin coefficients [8]<br>
 
   | messages=noisy <bool: switch> - enable/disbale noisiness [&#039;off&#039;]<br>coefs <num: coefs> - set number of FFT-1 spectral bin coefficients [8]<br>
 
   | messages=noisy <bool: switch> - enable/disbale noisiness [&#039;off&#039;]<br>coefs <num: coefs> - set number of FFT-1 spectral bin coefficients [8]<br>
   | inlets=0 <fmat: spectrum> - complex vector (only positive frequencies) to which to add the generated partials<br>1 <num&#124;fmat&#124;fvec&#124;list: freq(s)> - fundamental frequency (num: for harmonics) or vector of partials frequencies<br>2 <num&#124;fmat&#124;fvec&#124;list: spectral envelope> - spectral envelope (given values will be linearly interpolated)<br>3 <num&#124;fmat&#124;fvec&#124;list: phase(s)> - phase (num: for all partials) or vector of phases for the given partials<br>
+
   | inlets=1 <fmat: spectrum> - complex vector (only positive frequencies) to which to add the generated partials<br>2 <num&#124;fmat&#124;fvec&#124;list: freq(s)> - fundamental frequency (num: for harmonics) or vector of partials frequencies<br>3 <num&#124;fmat&#124;fvec&#124;list: spectral envelope> - spectral envelope (given values will be linearly interpolated)<br>4 <num&#124;fmat&#124;fvec&#124;list: phase(s)> - phase (num: for all partials) or vector of phases for the given partials<br>
   | outlets=0 <fmat> - no description<br>
+
   | outlets=1 <fmat> - no description<br>
 
}}
 
}}
  
Line 14: Line 48:
 
   | brief=additive synthesis: generate partials with given frequencies and amplitudes
 
   | brief=additive synthesis: generate partials with given frequencies and amplitudes
 
   | descr=Adds partials (given as a vector or list) to an incoming spectrum using the FFT-1 technique.The output is typically connected to gbr.ifft (in real mode) or another gbr.addpartials or gbr.addenv module.<br>Frequencies and amplitudes can be given by separated vectors with separated inputs (input format 'vec') or as a single matrix to the first inlet.The input format (attribute @format) determines the interpretation of the columns of the incoming matrix: 'fa' requires 2 columns with frequencies and amplitudes, 'ifa' requires 3 columns with partial indices, frequencies and amplitudes.
 
   | descr=Adds partials (given as a vector or list) to an incoming spectrum using the FFT-1 technique.The output is typically connected to gbr.ifft (in real mode) or another gbr.addpartials or gbr.addenv module.<br>Frequencies and amplitudes can be given by separated vectors with separated inputs (input format 'vec') or as a single matrix to the first inlet.The input format (attribute @format) determines the interpretation of the columns of the incoming matrix: 'fa' requires 2 columns with frequencies and amplitudes, 'ifa' requires 3 columns with partial indices, frequencies and amplitudes.
   | arguments=0 - maximum number of partials [64]<br>
+
   | arguments=1 - maximum number of partials [64]<br>
 
   | attributes=format <&#039;vec&#039;&#124;&#039;fa&#039;&#124;&#039;ifa&#039;: format> - set input matrix/vector format [&#039;vec&#039;]<br>noisy <bool: switch> - enable/disbale noisiness [&#039;off&#039;]<br>coefs <num: num> - set number of FFT-1 spectral bin coefficients [8]<br>
 
   | attributes=format <&#039;vec&#039;&#124;&#039;fa&#039;&#124;&#039;ifa&#039;: format> - set input matrix/vector format [&#039;vec&#039;]<br>noisy <bool: switch> - enable/disbale noisiness [&#039;off&#039;]<br>coefs <num: num> - set number of FFT-1 spectral bin coefficients [8]<br>
 
   | messages=format <&#039;vec&#039;&#124;&#039;fa&#039;&#124;&#039;ifa&#039;: format> - set input matrix/vector format [&#039;vec&#039;]<br>noisy <bool: switch> - enable/disbale noisiness [&#039;off&#039;]<br>coefs <num: num> - set number of FFT-1 spectral bin coefficients [8]<br>
 
   | messages=format <&#039;vec&#039;&#124;&#039;fa&#039;&#124;&#039;ifa&#039;: format> - set input matrix/vector format [&#039;vec&#039;]<br>noisy <bool: switch> - enable/disbale noisiness [&#039;off&#039;]<br>coefs <num: num> - set number of FFT-1 spectral bin coefficients [8]<br>
   | inlets=0 <fmat: spectrum> - complex vector (only positive frequencies) to which to add the generated partials<br>1 <num&#124;fmat&#124;fvec&#124;list: freq(s)> - set fundamental frequency (num: for harmonics) or vector of partials frequencies<br>2 <num&#124;fmat&#124;fvec&#124;list: amp(s)> - set amplitude (num: for harmonics) or vector of partials amplitudes<br>3 <num&#124;fmat&#124;fvec&#124;list: phase(s)> - set phase (num: for all partials) or vector of phases for the given partials<br>
+
   | inlets=1 <fmat: spectrum> - complex vector (only positive frequencies) to which to add the generated partials<br>2 <num&#124;fmat&#124;fvec&#124;list: freq(s)> - set fundamental frequency (num: for harmonics) or vector of partials frequencies<br>3 <num&#124;fmat&#124;fvec&#124;list: amp(s)> - set amplitude (num: for harmonics) or vector of partials amplitudes<br>4 <num&#124;fmat&#124;fvec&#124;list: phase(s)> - set phase (num: for all partials) or vector of phases for the given partials<br>
   | outlets=0 <fmat> - no description<br>
+
   | outlets=1 <fmat> - no description<br>
 
}}
 
}}
  
Line 25: Line 59:
 
   | brief=auto correlation and similar
 
   | brief=auto correlation and similar
 
   | descr=Calculates autocorrelation, distance, quadratic distance, sum magnitude difference function and accumulated difference function (yin).
 
   | descr=Calculates autocorrelation, distance, quadratic distance, sum magnitude difference function and accumulated difference function (yin).
   | arguments=0 <num: size> - calculation size [256]<br>1 <num: width> - window width [256]<br>
+
   | arguments=1 <num: size> - calculation size [256]<br>2 <num: width> - window width [256]<br>
 
   | attributes=out <fmat: output> - set output vector<br>mode <&#039;corr&#039;&#124;&#039;dist&#039;&#124;&#039;dist2&#039;&#124;&#039;smdf&#039;&#124;&#039;yin&#039;: mode> - set calculation mode [&#039;corr&#039;]<br>scale <num: factor> - set scaling factor [1]<br>
 
   | attributes=out <fmat: output> - set output vector<br>mode <&#039;corr&#039;&#124;&#039;dist&#039;&#124;&#039;dist2&#039;&#124;&#039;smdf&#039;&#124;&#039;yin&#039;: mode> - set calculation mode [&#039;corr&#039;]<br>scale <num: factor> - set scaling factor [1]<br>
 
   | messages=size <num: size> - set calculation size (maximum output size)<br>width <num: width> - set window width<br>out <fmat: output> - set output vector<br>scale <num: factor> - set scaling factor [1]<br>
 
   | messages=size <num: size> - set calculation size (maximum output size)<br>width <num: width> - set window width<br>out <fmat: output> - set output vector<br>scale <num: factor> - set scaling factor [1]<br>
   | inlets=0 <fmat&#124;fvec: vector> - input vector<br>
+
   | inlets=1 <fmat&#124;fvec: vector> - input vector<br>
   | outlets=0 <fmat: vector> - auto correlation vector<br>
+
   | outlets=1 <fmat: vector> - auto correlation vector<br>
 
}}
 
}}
  
Line 39: Line 73:
 
   | attributes=out <fmat: output> - set output vector<br>integ <&#039;sqrabs&#039;&#124;&#039;abs&#039;: type> - set spectrum integration type (amplitude or power spectrum) [&#039;sqrabs&#039;]<br>scale <num: factor> - set bands filter scale [1]<br>maxfreq <num: max freq> - set output maximum frequency [sr /2]<br>minfreq <num: min freq> - set output minimum frequency [0]<br>mode <&#039;bounds&#039;&#124;&#039;mel&#039;&#124;&#039;htkmel&#039;&#124;&#039;fcmel&#039;: mode> - set bands mode [&#039;bounds&#039;]<br>down <num: factor> - down sampling factor of incoming frames (overwrites domain) [1]<br>domain <num: domain> - set domain of incoming vector (<= 0 sets to sr/2) [input size]<br>
 
   | attributes=out <fmat: output> - set output vector<br>integ <&#039;sqrabs&#039;&#124;&#039;abs&#039;: type> - set spectrum integration type (amplitude or power spectrum) [&#039;sqrabs&#039;]<br>scale <num: factor> - set bands filter scale [1]<br>maxfreq <num: max freq> - set output maximum frequency [sr /2]<br>minfreq <num: min freq> - set output minimum frequency [0]<br>mode <&#039;bounds&#039;&#124;&#039;mel&#039;&#124;&#039;htkmel&#039;&#124;&#039;fcmel&#039;: mode> - set bands mode [&#039;bounds&#039;]<br>down <num: factor> - down sampling factor of incoming frames (overwrites domain) [1]<br>domain <num: domain> - set domain of incoming vector (<= 0 sets to sr/2) [input size]<br>
 
   | messages=getstate - get the internal weights matrix<br>bounds [<num: bounaries> ...] - set band boundaries<br>outsize <num: output size> - set number of output bands<br>insize <num: input size> - set input spectrum size<br>out <fmat: output> - set output vector<br>integ <&#039;sqrabs&#039;&#124;&#039;abs&#039;: type> - set spectrum integration type (amplitude or power spectrum) [&#039;sqrabs&#039;]<br>scale <num: factor> - set bands filter scale [1]<br>maxfreq <num: max freq> - set output maximum frequency [sr /2]<br>minfreq <num: min freq> - set output minimum frequency [0]<br>mode <&#039;bounds&#039;&#124;&#039;mel&#039;&#124;&#039;htkmel&#039;&#124;&#039;fcmel&#039;: mode> - set bands mode [&#039;bounds&#039;]<br>down <num: factor> - down sampling factor of incoming frames (overwrites domain) [1]<br>domain <num: domain> - set domain of incoming vector (<= 0 sets to sr/2) [input size]<br>
 
   | messages=getstate - get the internal weights matrix<br>bounds [<num: bounaries> ...] - set band boundaries<br>outsize <num: output size> - set number of output bands<br>insize <num: input size> - set input spectrum size<br>out <fmat: output> - set output vector<br>integ <&#039;sqrabs&#039;&#124;&#039;abs&#039;: type> - set spectrum integration type (amplitude or power spectrum) [&#039;sqrabs&#039;]<br>scale <num: factor> - set bands filter scale [1]<br>maxfreq <num: max freq> - set output maximum frequency [sr /2]<br>minfreq <num: min freq> - set output minimum frequency [0]<br>mode <&#039;bounds&#039;&#124;&#039;mel&#039;&#124;&#039;htkmel&#039;&#124;&#039;fcmel&#039;: mode> - set bands mode [&#039;bounds&#039;]<br>down <num: factor> - down sampling factor of incoming frames (overwrites domain) [1]<br>domain <num: domain> - set domain of incoming vector (<= 0 sets to sr/2) [input size]<br>
   | inlets=0 <fmat&#124;fvec: spectrum>: - vector of values (amplitude or power spectrum)<br>
+
   | inlets=1 <fmat&#124;fvec: spectrum>: - vector of values (amplitude or power spectrum)<br>
   | outlets=0 <fmat: ceofficients> - vector of output coefficients<br>1 <fmat: weights> - internal weights matrix<br>
+
   | outlets=1 <fmat: ceofficients> - vector of output coefficients<br>2 <fmat: weights> - internal weights matrix<br>
 
}}
 
}}
  
Line 50: Line 84:
 
   | attributes=channels <num: channels> - set number of channels to calculate [all]<br>
 
   | attributes=channels <num: channels> - set number of channels to calculate [all]<br>
 
   | messages=channels <num: channels> - set number of channels to calculate [all]<br>
 
   | messages=channels <num: channels> - set number of channels to calculate [all]<br>
   | inlets=0 <fmat: spectrum> - complex vector of (positive frequencies)<br>
+
   | inlets=1 <fmat: spectrum> - complex vector of (positive frequencies)<br>
   | outlets=0 <fmat: coefficients> - filter bands<br>
+
   | outlets=1 <fmat: coefficients> - filter bands<br>
 
}}
 
}}
  
Line 58: Line 92:
 
   | brief=copy vector (fmat) out of a delay line or an fmat or fvec)
 
   | brief=copy vector (fmat) out of a delay line or an fmat or fvec)
 
   | descr=Copies a grain (fmat vector) of a given duration out of a delay line at a given delay time and outputs an fmat reference.If the given delay time is less than the the duration the vector will be shortened
 
   | descr=Copies a grain (fmat vector) of a given duration out of a delay line at a given delay time and outputs an fmat reference.If the given delay time is less than the the duration the vector will be shortened
   | arguments=0 <delayline&#124;fmat&#124;fvec: source> - source reference<br>1 <num: duration> - grain duration [100]<br>
+
   | arguments=1 <delayline&#124;fmat&#124;fvec: source> - source reference<br>2 <num: duration> - grain duration [100]<br>
 
   | attributes=out <fmat: output> - set output vector<br>unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set time unit to msecs, secs or samples [&#039;msec&#039;]<br>
 
   | attributes=out <fmat: output> - set output vector<br>unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set time unit to msecs, secs or samples [&#039;msec&#039;]<br>
 
   | messages=bang - copy vector from the beginning of the delay line and output<br>set <delayline&#124;fmat&#124;fvec: source> - set source<br>out <fmat: output> - set output vector<br>unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set time unit to msecs, secs or samples [&#039;msec&#039;]<br>
 
   | messages=bang - copy vector from the beginning of the delay line and output<br>set <delayline&#124;fmat&#124;fvec: source> - set source<br>out <fmat: output> - set output vector<br>unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set time unit to msecs, secs or samples [&#039;msec&#039;]<br>
   | inlets=0 <num: delay> - copy and output grain at given delay position<br>1 <num: duration> - set duration<br>
+
   | inlets=1 <num: delay> - copy and output grain at given delay position<br>2 <num: duration> - set duration<br>
   | outlets=0 <fmat: vector> - copied grain<br>
+
   | outlets=1 <fmat: vector> - copied grain<br>
 
}}
 
}}
  
Line 69: Line 103:
 
   | brief=cross correlation and similar
 
   | brief=cross correlation and similar
 
   | descr=Calculates correlation, distance, quadratic distance and sum magnitude difference function.
 
   | descr=Calculates correlation, distance, quadratic distance and sum magnitude difference function.
   | arguments=0 <num: size> - calculation size [256]<br>1 <num: width> - window width [256]<br>2 <fmat&#124;fvec: vector> - right operand<br>
+
   | arguments=1 <num: size> - calculation size [256]<br>2 <num: width> - window width [256]<br>3 <fmat&#124;fvec: vector> - right operand<br>
 
   | attributes=out <fmat: output> - set output vector<br>mode <&#039;corr&#039;&#124;&#039;dist&#039;&#124;&#039;dist2&#039;&#124;&#039;smdf&#039;: mode> - set calculation mode<br>scale <num: factor> - set scaling factor [1]<br>
 
   | attributes=out <fmat: output> - set output vector<br>mode <&#039;corr&#039;&#124;&#039;dist&#039;&#124;&#039;dist2&#039;&#124;&#039;smdf&#039;: mode> - set calculation mode<br>scale <num: factor> - set scaling factor [1]<br>
 
   | messages=width <num: width> - set window width<br>size <num: size> - set calculation size (maximum output size)<br>out <fmat: output> - set output vector<br>scale <num: factor> - set scaling factor [1]<br>
 
   | messages=width <num: width> - set window width<br>size <num: size> - set calculation size (maximum output size)<br>out <fmat: output> - set output vector<br>scale <num: factor> - set scaling factor [1]<br>
   | inlets=0 <fmat&#124;fvec: vector> - left input vector<br>1 <fmat&#124;fvec: vector> - right input vector<br>
+
   | inlets=1 <fmat&#124;fvec: vector> - left input vector<br>2 <fmat&#124;fvec: vector> - right input vector<br>
   | outlets=0 <fmat: vector> - cross correlation vector<br>
+
   | outlets=1 <fmat: vector> - cross correlation vector<br>
 
}}
 
}}
  
Line 80: Line 114:
 
   | brief=discrete cosine transform
 
   | brief=discrete cosine transform
 
   | descr=Calculates a DCT of the incoming vector.
 
   | descr=Calculates a DCT of the incoming vector.
   | arguments=0 <num: input size> - size of input vector [40]<br>1 <num: output size> - number of DCT coefficients to be calculated [13]<br>
+
   | arguments=1 <num: input size> - size of input vector [40]<br>2 <num: output size> - number of DCT coefficients to be calculated [13]<br>
 
   | attributes=out <fmat: output> - set output vector<br>mode <&#039;slaney&#039;&#124;&#039;htk&#039;&#124;fc&#039;> - set discrete cosine transform mode [&#039;slaney&#039;]<br>
 
   | attributes=out <fmat: output> - set output vector<br>mode <&#039;slaney&#039;&#124;&#039;htk&#039;&#124;fc&#039;> - set discrete cosine transform mode [&#039;slaney&#039;]<br>
 
   | messages=getstate - get the internal weights matrix<br>outsize <num: output size> - set number of DCT coefficients to be calculated<br>insize <num: input size> - set size input vector<br>out <fmat: output> - set output vector<br>mode <&#039;slaney&#039;&#124;&#039;htk&#039;&#124;fc&#039;> - set discrete cosine transform mode [&#039;slaney&#039;]<br>
 
   | messages=getstate - get the internal weights matrix<br>outsize <num: output size> - set number of DCT coefficients to be calculated<br>insize <num: input size> - set size input vector<br>out <fmat: output> - set output vector<br>mode <&#039;slaney&#039;&#124;&#039;htk&#039;&#124;fc&#039;> - set discrete cosine transform mode [&#039;slaney&#039;]<br>
   | inlets=0 <fmat&#124;fvec: vector> - input vector<br>
+
   | inlets=1 <fmat&#124;fvec: vector> - input vector<br>
   | outlets=0 <fmat: vector> - DCT coefficients<br>1 <fmat: vector> - internal weights matrix<br>
+
   | outlets=1 <fmat: vector> - DCT coefficients<br>2 <fmat: vector> - internal weights matrix<br>
 
}}
 
}}
  
Line 94: Line 128:
 
   | attributes=unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set time unit to msecs, secs or samples [&#039;msec&#039;]<br>scope <&#039;local&#039;&#124;&#039;global&#039;> - set delayline name scope [&#039;global&#039;]<br>
 
   | attributes=unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set time unit to msecs, secs or samples [&#039;msec&#039;]<br>scope <&#039;local&#039;&#124;&#039;global&#039;> - set delayline name scope [&#039;global&#039;]<br>
 
   | messages=freeze <&#039;0&#039;&#124;&#039;1&#039;: freeze>] - enable/disable delay line freeze<br>clear - zero delay line<br>
 
   | messages=freeze <&#039;0&#039;&#124;&#039;1&#039;: freeze>] - enable/disable delay line freeze<br>clear - zero delay line<br>
   | inlets=0 - write signal into delay line<br>
+
   | inlets=1 - write signal into delay line<br>
   | outlets=0 - thru output (for order-forcing)<br>
+
   | outlets=1 - thru output (for order-forcing)<br>
 
}}
 
}}
  
Line 105: Line 139:
 
   | attributes=unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set time unit to msecs, secs or samples [&#039;msec&#039;]<br>scope <&#039;local&#039;&#124;&#039;global&#039;> - set delayline name scope [&#039;global&#039;]<br>
 
   | attributes=unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set time unit to msecs, secs or samples [&#039;msec&#039;]<br>scope <&#039;local&#039;&#124;&#039;global&#039;> - set delayline name scope [&#039;global&#039;]<br>
 
   | messages=clear - clear delay line<br>
 
   | messages=clear - clear delay line<br>
   | inlets=0 - (order-forcing input)<br>
+
   | inlets=1 - (order-forcing input)<br>
   | outlets=0 - sum delay line output<br>
+
   | outlets=1 - sum delay line output<br>
 
}}
 
}}
  
Line 113: Line 147:
 
   | brief=fast Fourier transform
 
   | brief=fast Fourier transform
 
   | descr=Calculates FFT on incoming vector.
 
   | descr=Calculates FFT on incoming vector.
   | arguments=0 <num: size> - FFT size (rounded to the next power of 2) [512]<br>
+
   | arguments=1 <num: size> - FFT size (rounded to the next power of 2) [512]<br>
 
   | attributes=out <fmat: output> - set output vector<br>mode <&#039;auto&#039;&#124;&#039;complex&#039;&#124;&#039;real&#039;: mode> - FFT mode [&#039;auto&#039;]<br>scale <num: factor> - scaling factor (0 --> 1 / FFT size) [1]<br>
 
   | attributes=out <fmat: output> - set output vector<br>mode <&#039;auto&#039;&#124;&#039;complex&#039;&#124;&#039;real&#039;: mode> - FFT mode [&#039;auto&#039;]<br>scale <num: factor> - scaling factor (0 --> 1 / FFT size) [1]<br>
 
   | messages=out <fmat: output> - set output vector<br>scale <num: factor> - scaling factor (0 --> 1 / FFT size) [1]<br>
 
   | messages=out <fmat: output> - set output vector<br>scale <num: factor> - scaling factor (0 --> 1 / FFT size) [1]<br>
   | inlets=0 <fmat&#124;fvec: vector> - real or conplex input vector<br>
+
   | inlets=1 <fmat&#124;fvec: vector> - real or conplex input vector<br>
   | outlets=0 <fmat: vector> - real or conplex output vector<br>
+
   | outlets=1 <fmat: vector> - real or conplex output vector<br>
 
}}
 
}}
  
Line 125: Line 159:
 
   | descr=Periodically outputs a given fmat or a bang within the Gabor scheduling scheme.
 
   | descr=Periodically outputs a given fmat or a bang within the Gabor scheduling scheme.
 
   | arguments=<num: period> [<fmat: vector>] - frequency/period and fmat to fire [0]<br>
 
   | arguments=<num: period> [<fmat: vector>] - frequency/period and fmat to fire [0]<br>
   | attributes=out <fmat: out> - set output fmat<br>var <num: freq var> - set period variation (0...1) [0]<br>period <num: period> - set frequency/period [0]<br>unit <&#039;hz&#039;&#124;&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;&#124;&#039\ ;midi&#039;&#124;&#039;midicent&#039;: unit> - set frequency/period unit to Hz, msec or samples [&#039;hz&#039;]<br>
+
   | attributes=out <fmat: out> - set output fmat<br>var <num: freq var> - set period variation (0...1) [0]<br>period <num: period> - set frequency/period [0]<br>unit <&#039;hz&#039;&#124;&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;&#124;&#039;midi&#039;&#124;&#039;midicent&#039;: unit> - set frequency/period unit to Hz, msec or samples [&#039;hz&#039;]<br>
   | messages=out <fmat: out> - set output fmat<br>var <num: freq var> - set period variation (0...1) [0]<br>period <num: period> - set frequency/period [0]<br>unit <&#039;hz&#039;&#124;&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;&#124;&#039;m\ idi&#039;&#124;&#039;midicent&#039;: unit> - set frequency/period unit to Hz, msec or samples [&#039;hz&#039;]<br>
+
   | messages=out <fmat: out> - set output fmat<br>var <num: freq var> - set period variation (0...1) [0]<br>period <num: period> - set frequency/period [0]<br>unit <&#039;hz&#039;&#124;&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;&#124;&#039;midi&#039;&#124;&#039;midicent&#039;: unit> - set frequency/period unit to Hz, msec or samples [&#039;hz&#039;]<br>
   | inlets=0 <num: freq/period> - fire frequency/period (O is off)<br>1 <fmat: vector> - set fmat to fire<br>
+
   | inlets=1 <num: freq/period> - fire frequency/period (O is off)<br>2 <fmat: vector> - set fmat to fire<br>
   | outlets=0 - output fmat or bang<br>
+
   | outlets=1 - output fmat or bang<br>
 
}}
 
}}
  
Line 138: Line 172:
 
   | attributes=none
 
   | attributes=none
 
   | messages=set <&#039;cosine&#039;&#124;&#039;sine&#039;: function> [<any: parameters> ...] - set generator function and parameters<br>
 
   | messages=set <&#039;cosine&#039;&#124;&#039;sine&#039;: function> [<any: parameters> ...] - set generator function and parameters<br>
   | inlets=0 <fmat&#124;fvec: vector> - input vector to which the waveform/function will be added<br>1 [<any: parameters> ...] - set generator parameters<br>
+
   | inlets=1 <fmat&#124;fvec: vector> - input vector to which the waveform/function will be added<br>2 [<any: parameters> ...] - set generator parameters<br>
   | outlets=0 <fmat&#124;fvec: vector> - output incoming vector with added waveform/function<br>
+
   | outlets=1 <fmat&#124;fvec: vector> - output incoming vector with added waveform/function<br>
 
}}
 
}}
  
Line 146: Line 180:
 
   | brief=estimate harmonics from a given spectrum (or any other vector)
 
   | brief=estimate harmonics from a given spectrum (or any other vector)
 
   | descr=Estimates frequencies (interpolated and scaled indices) and amplitudes of harmonics in an incoming vector.Harmonics are defined as peaks around the multiple of a given value (fundamental frequency) with a given tolerance.The estimation of harmonics in a spectrum works best when a logarthimic amplitude spectrum is provided as input.
 
   | descr=Estimates frequencies (interpolated and scaled indices) and amplitudes of harmonics in an incoming vector.Harmonics are defined as peaks around the multiple of a given value (fundamental frequency) with a given tolerance.The estimation of harmonics in a spectrum works best when a logarthimic amplitude spectrum is provided as input.
   | arguments=0 <num: max harms> - maximum number of harmonics to be estimated [16]<br>1 <num: freq> - fundamental frequency in Hz [10]<br>2 <num: factor> - allowed deviation factor from theoretic harmonic frequency (linear factor of f0) [1.0]<br>
+
   | arguments=1 <num: max harms> - maximum number of harmonics to be estimated [16]<br>2 <num: freq> - fundamental frequency in Hz [10]<br>3 <num: factor> - allowed deviation factor from theoretic harmonic frequency (linear factor of f0) [1.0]<br>
 
   | attributes=down <num: down> - set down sampling factor of incoming frames (overwrites domain and scale) [1]<br>scale <num: factor> - set scaling factor of harmonics (overwrites domain and down)<br>domain <num: domain> - set domain of output peaks (<= 0 sets to sr/2) [sr/2]<br>
 
   | attributes=down <num: down> - set down sampling factor of incoming frames (overwrites domain and scale) [1]<br>scale <num: factor> - set scaling factor of harmonics (overwrites domain and down)<br>domain <num: domain> - set domain of output peaks (<= 0 sets to sr/2) [sr/2]<br>
 
   | messages=width <num: freq> - set maximum width for harmonic peaks<br>height <num: amp> - set minimum height for harmonic peaks<br>interval <num: cent> - set allowed deviation factor from theoretic harmonic frequency (in cent)<br>delta <num: factor> - set allowed deviation factor from theoretic harmonic frequency (linear factor of f0)<br>freq <num: freq> - set fundamental frequency in Hz<br>max <num: max harms> - set maximum number of harmonics to be estimated<br>down <num: down> - set down sampling factor of incoming frames (overwrites domain and scale) [1]<br>scale <num: factor> - set scaling factor of harmonics (overwrites domain and down)<br>domain <num: domain> - set domain of output peaks (<= 0 sets to sr/2) [sr/2]<br>
 
   | messages=width <num: freq> - set maximum width for harmonic peaks<br>height <num: amp> - set minimum height for harmonic peaks<br>interval <num: cent> - set allowed deviation factor from theoretic harmonic frequency (in cent)<br>delta <num: factor> - set allowed deviation factor from theoretic harmonic frequency (linear factor of f0)<br>freq <num: freq> - set fundamental frequency in Hz<br>max <num: max harms> - set maximum number of harmonics to be estimated<br>down <num: down> - set down sampling factor of incoming frames (overwrites domain and scale) [1]<br>scale <num: factor> - set scaling factor of harmonics (overwrites domain and down)<br>domain <num: domain> - set domain of output peaks (<= 0 sets to sr/2) [sr/2]<br>
   | inlets=0 <fmat&#124;fvec: vector> - input vector><br>
+
   | inlets=1 <fmat&#124;fvec: vector> - input vector><br>
   | outlets=0 <fmat: vector> - vector of harmonics<br>
+
   | outlets=1 <fmat: vector> - vector of harmonics<br>
 
}}
 
}}
  
Line 157: Line 191:
 
   | brief=inverse fast Fourier transform
 
   | brief=inverse fast Fourier transform
 
   | descr=Calculates inverse FFT on incoming vector.
 
   | descr=Calculates inverse FFT on incoming vector.
   | arguments=0 <num: size> - FFT size (rounded to the next power of 2) [512]<br>
+
   | arguments=1 <num: size> - FFT size (rounded to the next power of 2) [512]<br>
 
   | attributes=out <fmat: output> - set output vector<br>mode <&#039;auto&#039;&#124;&#039;complex&#039;&#124;&#039;real&#039;: mode> - FFT mode [&#039;auto&#039;]<br>scale <num: factor> - scaling factor (0 --> 1 / FFT size) [1]<br>
 
   | attributes=out <fmat: output> - set output vector<br>mode <&#039;auto&#039;&#124;&#039;complex&#039;&#124;&#039;real&#039;: mode> - FFT mode [&#039;auto&#039;]<br>scale <num: factor> - scaling factor (0 --> 1 / FFT size) [1]<br>
 
   | messages=out <fmat: output> - set output vector<br>scale <num: factor> - scaling factor (0 --> 1 / FFT size) [1]<br>
 
   | messages=out <fmat: output> - set output vector<br>scale <num: factor> - scaling factor (0 --> 1 / FFT size) [1]<br>
   | inlets=0 - messages only<br>
+
   | inlets=1 - messages only<br>
   | outlets=0 <fmat> - no description<br>
+
   | outlets=1 <fmat> - no description<br>
 
}}
 
}}
  
Line 168: Line 202:
 
   | brief=(to be documented)
 
   | brief=(to be documented)
 
   | descr=(to be documented)
 
   | descr=(to be documented)
   | arguments=0 <num: size> - size of input vector [13]<br>1 <num: factor> - filtering factor [0]<br>
+
   | arguments=1 <num: size> - size of input vector [13]<br>2 <num: factor> - filtering factor [0]<br>
 
   | attributes=out <fmat: output> - set output vector<br>mode <&#039;exp&#039;&#124;&#039;sin&#039;: mode> - set liftering type: exponential (Auditory Toolbox-like) or sinusoidal (HTK-like) [&#039;exp&#039;]<br>inv <&#039;0&#039;&#124;&#039;1&#039;: switch> - enable/disable the inverse liftering mode [0]<br>
 
   | attributes=out <fmat: output> - set output vector<br>mode <&#039;exp&#039;&#124;&#039;sin&#039;: mode> - set liftering type: exponential (Auditory Toolbox-like) or sinusoidal (HTK-like) [&#039;exp&#039;]<br>inv <&#039;0&#039;&#124;&#039;1&#039;: switch> - enable/disable the inverse liftering mode [0]<br>
 
   | messages=getstate - get internal weights matrix<br>factor <num: factor> - set filtering factor<br>insize <num: size> - size of input vector<br>out <fmat: output> - set output vector<br>mode <&#039;exp&#039;&#124;&#039;sin&#039;: mode> - set liftering type: exponential (Auditory Toolbox-like) or sinusoidal (HTK-like) [&#039;exp&#039;]<br>inv <&#039;0&#039;&#124;&#039;1&#039;: switch> - enable/disable the inverse liftering mode [0]<br>
 
   | messages=getstate - get internal weights matrix<br>factor <num: factor> - set filtering factor<br>insize <num: size> - size of input vector<br>out <fmat: output> - set output vector<br>mode <&#039;exp&#039;&#124;&#039;sin&#039;: mode> - set liftering type: exponential (Auditory Toolbox-like) or sinusoidal (HTK-like) [&#039;exp&#039;]<br>inv <&#039;0&#039;&#124;&#039;1&#039;: switch> - enable/disable the inverse liftering mode [0]<br>
   | inlets=0 <fmat&#124;fvec: vector> - cepstrum vector<br>
+
   | inlets=1 <fmat&#124;fvec: vector> - cepstrum vector<br>
   | outlets=0 <fmat: vector> - liftered cepstrum<br>1 <fmat: weights> - internal weights matrix<br>
+
   | outlets=1 <fmat: vector> - liftered cepstrum<br>2 <fmat: weights> - internal weights matrix<br>
 
}}
 
}}
  
Line 179: Line 213:
 
   | brief=linear prediction coefficients
 
   | brief=linear prediction coefficients
 
   | descr=Calculates LPC coefficients from incoming sinal frame.
 
   | descr=Calculates LPC coefficients from incoming sinal frame.
   | arguments=0 <num: order> - LPC order [12]<br>
+
   | arguments=1 <num: order> - LPC order [12]<br>
 
   | attributes=out <fmat: output> - set output vector<br>errasfloat <&#039;0&#039;&#124;&#039;1&#039;: switch> - enable/disable float number output [0]<br>
 
   | attributes=out <fmat: output> - set output vector<br>errasfloat <&#039;0&#039;&#124;&#039;1&#039;: switch> - enable/disable float number output [0]<br>
 
   | messages=order <num: order> - set LPC order<br>out <fmat: output> - set output vector<br>errasfloat <&#039;0&#039;&#124;&#039;1&#039;: switch> - enable/disable float number output [0]<br>
 
   | messages=order <num: order> - set LPC order<br>out <fmat: output> - set output vector<br>errasfloat <&#039;0&#039;&#124;&#039;1&#039;: switch> - enable/disable float number output [0]<br>
   | inlets=0 <fmat&#124;fvec: vector> - input vector<br>
+
   | inlets=1 <fmat&#124;fvec: vector> - input vector<br>
   | outlets=0 <fmat: vector> - LPC coefficients<br>1 <num&#124;fmat: error> - prediciton error<br>2 <fmat: vector> - autocorrelation<br>3 <fmat: vector> - internal values<br>
+
   | outlets=1 <fmat: vector> - LPC coefficients<br>2 <num&#124;fmat: error> - prediciton error<br>3 <fmat: vector> - autocorrelation<br>4 <fmat: vector> - internal values<br>
 
}}
 
}}
  
Line 193: Line 227:
 
   | attributes=out <fmat: output> - set output vector<br>format - &#039;fa&#039;&#124;&#039;ifa&#039;: input format> - set input matrix format [&#039;fa&#039;]<br>
 
   | attributes=out <fmat: output> - set output vector<br>format - &#039;fa&#039;&#124;&#039;ifa&#039;: input format> - set input matrix format [&#039;fa&#039;]<br>
 
   | messages=calcpeaks <num: (left) peaks> [<num: right peaks>] - set number of peaks on the left and right to be taken into account in calculation<br>slope <num: slope> [<num: slope>] - set (left and right) masking slope<br>out <fmat: output> - set output vector<br>format - &#039;fa&#039;&#124;&#039;ifa&#039;: input format> - set input matrix format [&#039;fa&#039;]<br>
 
   | messages=calcpeaks <num: (left) peaks> [<num: right peaks>] - set number of peaks on the left and right to be taken into account in calculation<br>slope <num: slope> [<num: slope>] - set (left and right) masking slope<br>out <fmat: output> - set output vector<br>format - &#039;fa&#039;&#124;&#039;ifa&#039;: input format> - set input matrix format [&#039;fa&#039;]<br>
   | inlets=0 <fmat: partials> - vector of partials (in given format)<br>
+
   | inlets=1 <fmat: partials> - vector of partials (in given format)<br>
   | outlets=0 <fmat: partials> - vector of partials (in given format)<br>
+
   | outlets=1 <fmat: partials> - vector of partials (in given format)<br>
 
}}
 
}}
  
Line 201: Line 235:
 
   | brief=(to be documented)
 
   | brief=(to be documented)
 
   | descr=(to be documented)
 
   | descr=(to be documented)
   | arguments=0 <fmat: partials> - vector of paritals corresponding to the interpolation factor 0<br>1 <fmat: partials> - vector of paritals corresponding to the interpolation factor 1<br>
+
   | arguments=1 <fmat: partials> - vector of paritals corresponding to the interpolation factor 0<br>2 <fmat: partials> - vector of paritals corresponding to the interpolation factor 1<br>
 
   | attributes=out <fmat: output> - set output vector<br>format - &#039;fa&#039;&#124;&#039;ifa&#039;&#124;&#039;plain&#039;: input format> - set input matrix format [&#039;fa&#039;]<br>
 
   | attributes=out <fmat: output> - set output vector<br>format - &#039;fa&#039;&#124;&#039;ifa&#039;&#124;&#039;plain&#039;: input format> - set input matrix format [&#039;fa&#039;]<br>
 
   | messages=out <fmat: output> - set output vector<br>format - &#039;fa&#039;&#124;&#039;ifa&#039;&#124;&#039;plain&#039;: input format> - set input matrix format [&#039;fa&#039;]<br>
 
   | messages=out <fmat: output> - set output vector<br>format - &#039;fa&#039;&#124;&#039;ifa&#039;&#124;&#039;plain&#039;: input format> - set input matrix format [&#039;fa&#039;]<br>
   | inlets=0 <num: factor> - morphing factor (0...1)<br>1 <fmat: partials> - vector of paritals corresponding to the interpolation factor 0<br>2 <fmat: partials> - vector of paritals corresponding to the interpolation factor 1<br>
+
   | inlets=1 <num: factor> - morphing factor (0...1)<br>2 <fmat: partials> - vector of paritals corresponding to the interpolation factor 0<br>3 <fmat: partials> - vector of paritals corresponding to the interpolation factor 1<br>
   | outlets=0 <fmat: partials> - vector of morphed paritals<br>
+
   | outlets=1 <fmat: partials> - vector of morphed paritals<br>
 
}}
 
}}
  
Line 212: Line 246:
 
   | brief=overlap-add
 
   | brief=overlap-add
 
   | descr=Performs the overlap-add of incoming vectors into a forward delayline.The vector will be shortened at the end of the delayline.
 
   | descr=Performs the overlap-add of incoming vectors into a forward delayline.The vector will be shortened at the end of the delayline.
   | arguments=1 <num: size> - buffer size [100]<br>2 <num: delay> - delay position [0]<br>3 <num: channel> - output channel (0 switches off) [1]<br>
+
   | arguments=1 <num: channels> - number of output channels [1]<br>2 <num: size> - buffer size [100]<br>3 <num: delay> - delay position [0]<br>4 <num: channel> - output channel (0 switches off) [1]<br>
 
   | attributes=unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set time unit to msecs, secs or samples [&#039;msec&#039;]<br>interp <bool: switch> - enable/disable interpolation [&#039;off&#039;]<br>
 
   | attributes=unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set time unit to msecs, secs or samples [&#039;msec&#039;]<br>interp <bool: switch> - enable/disable interpolation [&#039;off&#039;]<br>
 
   | messages=interp <bool: switch> - enable/disable interpolation [&#039;off&#039;]<br>clear - clear delay line<br>
 
   | messages=interp <bool: switch> - enable/disable interpolation [&#039;off&#039;]<br>clear - clear delay line<br>
   | inlets=0 <fmat&#124;fvec: vector> - overlap-add vector at given delay position<br>1 <num: delay> - set delay<br>2 <num: channel> - set output channel (0 switches off)<br>
+
   | inlets=1 <fmat&#124;fvec: vector> - overlap-add vector at given delay position<br>2 <num: delay> - set delay<br>3 <num: channel> - set output channel (0 switches off)<br>
   | outlets=0 - sum delay line output<br>
+
   | outlets=1 - sum delay line output<br>
 
}}
 
}}
  
Line 223: Line 257:
 
   | brief=paste a grain (fmat or fvec) into a drain
 
   | brief=paste a grain (fmat or fvec) into a drain
 
   | descr=Copies a vector into a drain with a given delay.The vector will be shortened at the end of the drain.
 
   | descr=Copies a vector into a drain with a given delay.The vector will be shortened at the end of the drain.
   | arguments=0 <delayline&#124;fmat&#124;fvec: destination> - destination (write delay line or fmat)<br>1 <num: delay> - delay position [0]<br>
+
   | arguments=1 <delayline&#124;fmat&#124;fvec: destination> - destination (write delay line or fmat)<br>2 <num: delay> - delay position [0]<br>
 
   | attributes=unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set time unit to msecs, secs or samples [&#039;msec&#039;]<br>interp <bool: switch> - enable/disable interpolation [&#039;off&#039;]<br>
 
   | attributes=unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set time unit to msecs, secs or samples [&#039;msec&#039;]<br>interp <bool: switch> - enable/disable interpolation [&#039;off&#039;]<br>
   | messages=set <delayline&#124;fmat&#124;fvec: destination> - set destination (write delay line, fmat or fvec)<br>unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set time unit to msecs, secs or samples [&#039;msec&#039;]<br>inte\ rp <bool: switch> - enable/disable interpolation [&#039;off&#039;]<br>
+
   | messages=set <delayline&#124;fmat&#124;fvec: destination> - set destination (write delay line, fmat or fvec)<br>unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set time unit to msecs, secs or samples [&#039;msec&#039;]<br>interp <bool: switch> - enable/disable interpolation [&#039;off&#039;]<br>
   | inlets=0 <fmat&#124;fvec: vector> - paste vector at given delay position<br>1 - set delay position<br>
+
   | inlets=1 <fmat&#124;fvec: vector> - paste vector at given delay position<br>2 - set delay position<br>
 
   | outlets=none
 
   | outlets=none
 
}}
 
}}
Line 234: Line 268:
 
   | brief=estimate peaks (partials) from a given spectrum (or any other vector)
 
   | brief=estimate peaks (partials) from a given spectrum (or any other vector)
 
   | descr=Estimates frequencies (interpolated and scaled indices) and amplitudes of peaks in an incoming vector.The estimation of partials in a spectrum works best when a logarthimic amplitude spectrum (positive frequencies) is provided as input.
 
   | descr=Estimates frequencies (interpolated and scaled indices) and amplitudes of peaks in an incoming vector.The estimation of partials in a spectrum works best when a logarthimic amplitude spectrum (positive frequencies) is provided as input.
   | arguments=0 <num: max peaks> - maximum number of peaks to be estimated [16]<br>
+
   | arguments=1 <num: max peaks> - maximum number of peaks to be estimated [16]<br>
 
   | attributes=range <min: boundary> <max: boundary> - band where to search for peaks<br>keep <&#039;lowest&#039;&#124;&#039;strongest&#039;: mode> - keep first or strongest peaks [&#039;lowest&#039;]<br>down <num: down> - set down sampling factor of incoming frames (overwrites domain and scale) [1]<br>scale <num: factor> - set scaling factor of output peaks (overwrites domain and down)<br>domain <num: domain> - set domain of output peaks (<= 0 sets to sr/2) [sr/2]<br>
 
   | attributes=range <min: boundary> <max: boundary> - band where to search for peaks<br>keep <&#039;lowest&#039;&#124;&#039;strongest&#039;: mode> - keep first or strongest peaks [&#039;lowest&#039;]<br>down <num: down> - set down sampling factor of incoming frames (overwrites domain and scale) [1]<br>scale <num: factor> - set scaling factor of output peaks (overwrites domain and down)<br>domain <num: domain> - set domain of output peaks (<= 0 sets to sr/2) [sr/2]<br>
 
   | messages=dev <num: value> - set maximum deviation from mean value<br>width <num: freq> - set maximum width for peaks (indicates sinusoïdality)<br>height <num: amp> - set minimum height for peaks<br>max <num: max peaks> - set maximum number of peaks to be estimated<br>range <min: boundary> <max: boundary> - band where to search for peaks<br>keep <&#039;lowest&#039;&#124;&#039;strongest&#039;: mode> - keep first or strongest peaks [&#039;lowest&#039;]<br>down <num: down> - set down sampling factor of incoming frames (overwrites domain and scale) [1]<br>scale <num: factor> - set scaling factor of output peaks (overwrites domain and down)<br>domain <num: domain> - set domain of output peaks (<= 0 sets to sr/2) [sr/2]<br>
 
   | messages=dev <num: value> - set maximum deviation from mean value<br>width <num: freq> - set maximum width for peaks (indicates sinusoïdality)<br>height <num: amp> - set minimum height for peaks<br>max <num: max peaks> - set maximum number of peaks to be estimated<br>range <min: boundary> <max: boundary> - band where to search for peaks<br>keep <&#039;lowest&#039;&#124;&#039;strongest&#039;: mode> - keep first or strongest peaks [&#039;lowest&#039;]<br>down <num: down> - set down sampling factor of incoming frames (overwrites domain and scale) [1]<br>scale <num: factor> - set scaling factor of output peaks (overwrites domain and down)<br>domain <num: domain> - set domain of output peaks (<= 0 sets to sr/2) [sr/2]<br>
   | inlets=0 <fmat&#124;fvec: vector> - input vector (spectrum)><br>
+
   | inlets=1 <fmat&#124;fvec: vector> - input vector (spectrum)><br>
   | outlets=0 <fmat: vector> - vector of peaks<br>
+
   | outlets=1 <fmat: vector> - vector of peaks<br>
 
}}
 
}}
  
Line 245: Line 279:
 
   | brief=(to be documented)
 
   | brief=(to be documented)
 
   | descr=(to be documented)
 
   | descr=(to be documented)
   | arguments=0 <num: factor> - filtering factor [0]<br>
+
   | arguments=1 <num: factor> - filtering factor [0]<br>
 
   | attributes=out - set output object<br>
 
   | attributes=out - set output object<br>
 
   | messages=clear - clear any previous sample<br>getstate - get the previous sample<br>factor <num: factor> - set filtering factor<br>out - set output object<br>
 
   | messages=clear - clear any previous sample<br>getstate - get the previous sample<br>factor <num: factor> - set filtering factor<br>out - set output object<br>
   | inlets=0 <fmat&#124;fvec: vector> - input signal<br>
+
   | inlets=1 <fmat&#124;fvec: vector> - input signal<br>
   | outlets=0 <fmat: vector> - output preemphasised frame<br>1 <fmat: vector> - previous frame<br>
+
   | outlets=1 <fmat: vector> - output preemphasised frame<br>2 <fmat: vector> - previous frame<br>
 
}}
 
}}
  
Line 259: Line 293:
 
   | attributes=threshold <num: pitch> [<num: noise>] - set pitch and noise quality treshold [0.6838 0.4523]<br>enable <bool: switch> - enable/disable calculation and output [&#039;on&#039;]<br>
 
   | attributes=threshold <num: pitch> [<num: noise>] - set pitch and noise quality treshold [0.6838 0.4523]<br>enable <bool: switch> - enable/disable calculation and output [&#039;on&#039;]<br>
 
   | messages=threshold <num: pitch> [<num: noise>] - set pitch and noise quality treshold [0.6838 0.4523]<br>enable <bool: switch> - enable/disable calculation and output [&#039;on&#039;]<br>
 
   | messages=threshold <num: pitch> [<num: noise>] - set pitch and noise quality treshold [0.6838 0.4523]<br>enable <bool: switch> - enable/disable calculation and output [&#039;on&#039;]<br>
   | inlets=0 - input signal to be analysed and cut into elemetary waveforms<br>
+
   | inlets=1 - input signal to be analysed and cut into elemetary waveforms<br>
   | outlets=0 <fmat: vector> - elementary waveforms (2 periods)<br>1 <num: freq> - estimated frequency in Hz (0, when unvoiced)<br>2 <num: periodicity> - yin periodicity/quality factor<br>3 <num: factor> (linear) energy<br>
+
   | outlets=1 <fmat: vector> - elementary waveforms (2 periods)<br>2 <num: freq> - estimated frequency in Hz (0, when unvoiced)<br>3 <num: periodicity> - yin periodicity/quality factor<br>4 <num: factor> (linear) energy<br>
 
}}
 
}}
  
Line 267: Line 301:
 
   | brief=resampling
 
   | brief=resampling
 
   | descr=Resamples incoming vector in different modes:'cubic' (cubic interpolation), 'downmean' (downsampling by calculating the mean of a given number of values), 'downremove' (picks nearest value)
 
   | descr=Resamples incoming vector in different modes:'cubic' (cubic interpolation), 'downmean' (downsampling by calculating the mean of a given number of values), 'downremove' (picks nearest value)
   | arguments=0 <num: order> - resampling order/increment [1]<br>
+
   | arguments=1 <num: order> - resampling order/increment [1]<br>
 
   | attributes=out <fmat: output> - set output vector<br>mode <&#039;cubic&#039;&#124;&#039;downmean&#039;&#124;&#039;downremove&#039;: mode> - set resampling mode<br>
 
   | attributes=out <fmat: output> - set output vector<br>mode <&#039;cubic&#039;&#124;&#039;downmean&#039;&#124;&#039;downremove&#039;: mode> - set resampling mode<br>
 
   | messages=out <fmat: output> - set output vector<br>mode <&#039;cubic&#039;&#124;&#039;downmean&#039;&#124;&#039;downremove&#039;: mode> - set resampling mode<br>
 
   | messages=out <fmat: output> - set output vector<br>mode <&#039;cubic&#039;&#124;&#039;downmean&#039;&#124;&#039;downremove&#039;: mode> - set resampling mode<br>
   | inlets=0 <fmat: vector> - input vector<br>1 <num: order> - set resampling order/increment<br>
+
   | inlets=1 <fmat: vector> - input vector<br>2 <num: order> - set resampling order/increment<br>
   | outlets=0 <fmat: vector> - output vector<br>
+
   | outlets=1 <fmat: vector> - output vector<br>
 
}}
 
}}
  
Line 278: Line 312:
 
   | brief=signal slicing
 
   | brief=signal slicing
 
   | descr=Cuts incoming signal into frames of given size with given period (hop size).
 
   | descr=Cuts incoming signal into frames of given size with given period (hop size).
   | arguments=0 <num: size> - frame size [512]<br>1 <num: size> - hop size [256]<br>
+
   | arguments=1 <num: size> - frame size [512]<br>2 <num: size> - hop size [256]<br>
 
   | attributes=unit <&#039;samp&#039;&#124;&#039;msec&#039;&#124;&#039;sec&#039;: unit> - set time unit to msecs, secs or samples [&#039;samp&#039;]<br>enable <bool: switch> - enable/disable calculation and output [&#039;on&#039;]<br>period <num: size> - set hop size<br>size <num: size> - set frame size<br>
 
   | attributes=unit <&#039;samp&#039;&#124;&#039;msec&#039;&#124;&#039;sec&#039;: unit> - set time unit to msecs, secs or samples [&#039;samp&#039;]<br>enable <bool: switch> - enable/disable calculation and output [&#039;on&#039;]<br>period <num: size> - set hop size<br>size <num: size> - set frame size<br>
 
   | messages=unit <&#039;samp&#039;&#124;&#039;msec&#039;&#124;&#039;sec&#039;: unit> - set time unit to msecs, secs or samples [&#039;samp&#039;]<br>enable <bool: switch> - enable/disable calculation and output [&#039;on&#039;]<br>period <num: size> - set hop size<br>size <num: size> - set frame size<br>
 
   | messages=unit <&#039;samp&#039;&#124;&#039;msec&#039;&#124;&#039;sec&#039;: unit> - set time unit to msecs, secs or samples [&#039;samp&#039;]<br>enable <bool: switch> - enable/disable calculation and output [&#039;on&#039;]<br>period <num: size> - set hop size<br>size <num: size> - set frame size<br>
   | inlets=0 - input signal to be sliced into frames<br>
+
   | inlets=1 - input signal to be sliced into frames<br>
   | outlets=0 <fmat: vector> - signal frames<br>1 <undefined> - no description<br>
+
   | outlets=1 <fmat: vector> - signal frames<br>2 <undefined> - no description<br>
 
}}
 
}}
  
Line 289: Line 323:
 
   | brief=input tap for write delay line
 
   | brief=input tap for write delay line
 
   | descr=Simple input tap for write delay line defined by gbr.dline~.
 
   | descr=Simple input tap for write delay line defined by gbr.dline~.
   | arguments=0 <delayline: write> - delay line (defined by gbr.drain~)<br>1 <num: delay> - delay time (in given unit) [0]<br>
+
   | arguments=1 <delayline: write> - delay line (defined by gbr.drain~)<br>2 <num: delay> - delay time (in given unit) [0]<br>
 
   | attributes=unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set delay unit to msecs, secs or samples [&#039;msec&#039;]<br>
 
   | attributes=unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set delay unit to msecs, secs or samples [&#039;msec&#039;]<br>
 
   | messages=set <delayline: write> - set delay line (defined by gbr.drain~)<br>unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set delay unit to msecs, secs or samples [&#039;msec&#039;]<br>
 
   | messages=set <delayline: write> - set delay line (defined by gbr.drain~)<br>unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set delay unit to msecs, secs or samples [&#039;msec&#039;]<br>
   | inlets=0 - input signal written to delay line<br>1 - set delay time<br>
+
   | inlets=1 - input signal written to delay line<br>2 - set delay time<br>
   | outlets=0 - zero output (for order-forcing)<br>
+
   | outlets=1 - zero output (for order-forcing)<br>
 
}}
 
}}
  
Line 300: Line 334:
 
   | brief=output tap for read delay line
 
   | brief=output tap for read delay line
 
   | descr=Simple output tap for read delay line defined by gbr.drain~.
 
   | descr=Simple output tap for read delay line defined by gbr.drain~.
   | arguments=0 <delayline: read> - delay line (defined by gbr.dline~)<br>1 - delay time (in given unit) [0]<br>
+
   | arguments=1 <delayline: read> - delay line (defined by gbr.dline~)<br>2 - delay time (in given unit) [0]<br>
 
   | attributes=unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set delay unit to msecs, secs or samples [&#039;msec&#039;]<br>interp - 0&#124;1&#124;&#039;off&#039;&#124;&#039;on&#124;&#039;cubic&#039;&#124;&#039;linear&#039;: mode> - interpolation mode [&#039;off&#039;]<br>
 
   | attributes=unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set delay unit to msecs, secs or samples [&#039;msec&#039;]<br>interp - 0&#124;1&#124;&#039;off&#039;&#124;&#039;on&#124;&#039;cubic&#039;&#124;&#039;linear&#039;: mode> - interpolation mode [&#039;off&#039;]<br>
   | messages=set <delayline: read> - set delay line (defined by gbr.dline~)<br>unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set delay unit to msecs, secs or samples [&#039;msec&#039;]<br>interp - 0&#124;1&#124;&#039;off&#039;&#\ 124;&#039;on&#124;&#039;cubic&#039;&#124;&#039;linear&#039;: mode> - interpolation mode [&#039;off&#039;]<br>
+
   | messages=set <delayline: read> - set delay line (defined by gbr.dline~)<br>unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;: unit> - set delay unit to msecs, secs or samples [&#039;msec&#039;]<br>interp - 0&#124;1&#124;&#039;off&#039;&#124;&#039;on&#124;&#039;cubic&#039;&#124;&#039;linear&#039;: mode> - interpolation mode [&#039;off&#039;]<br>
   | inlets=0 - (order-forcing input)<br>1 <sig&#124;num: delay> - delay time<br>
+
   | inlets=1 - (order-forcing input)<br>2 <sig&#124;num: delay> - delay time<br>
   | outlets=0 - delayed signal<br>
+
   | outlets=1 - delayed signal<br>
 
}}
 
}}
  
Line 314: Line 348:
 
   | attributes=unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;&#124;&#039;hz&#039;&#124;: unit> - set timer unit to msecs, secs, samples or Hz [&#039;msec&#039;]<br>
 
   | attributes=unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;&#124;&#039;hz&#039;&#124;: unit> - set timer unit to msecs, secs, samples or Hz [&#039;msec&#039;]<br>
 
   | messages=bang - report time since last bang<br>unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;&#124;&#039;hz&#039;&#124;: unit> - set timer unit to msecs, secs, samples or Hz [&#039;msec&#039;]<br>
 
   | messages=bang - report time since last bang<br>unit <&#039;msec&#039;&#124;&#039;sec&#039;&#124;&#039;samp&#039;&#124;&#039;hz&#039;&#124;: unit> - set timer unit to msecs, secs, samples or Hz [&#039;msec&#039;]<br>
   | inlets=0 - messages only<br>
+
   | inlets=1 - messages only<br>
   | outlets=0 <num: time> - time in given unit<br>
+
   | outlets=1 <num: time> - time in given unit<br>
 
}}
 
}}
  
Line 322: Line 356:
 
   | brief=(to be documented)
 
   | brief=(to be documented)
 
   | descr=(to be documented)
 
   | descr=(to be documented)
   | arguments=0 <num: max> - maximum number of peaks [200]<br>
+
   | arguments=1 <num: max> - maximum number of peaks [200]<br>
 
   | attributes=maxpasses - (to be documented)<br>absamp - (to be documented)<br>absfreq - (to be documented)<br>relfreq - (to be documented)<br>max <num: maximum number of partials [200]><br>
 
   | attributes=maxpasses - (to be documented)<br>absamp - (to be documented)<br>absfreq - (to be documented)<br>relfreq - (to be documented)<br>max <num: maximum number of partials [200]><br>
 
   | messages=clear - (to be documented)<br>maxpasses - (to be documented)<br>absamp - (to be documented)<br>absfreq - (to be documented)<br>relfreq - (to be documented)<br>max <num: maximum number of partials [200]><br>
 
   | messages=clear - (to be documented)<br>maxpasses - (to be documented)<br>absamp - (to be documented)<br>absfreq - (to be documented)<br>relfreq - (to be documented)<br>max <num: maximum number of partials [200]><br>
   | inlets=0 <fmat: partials> - vector of partials<br>
+
   | inlets=1 <fmat: partials> - vector of partials<br>
   | outlets=0 <fmat: partials> - vector of traced partials (with index)<br>
+
   | outlets=1 <fmat: partials> - vector of traced partials (with index)<br>
 
}}
 
}}
  
Line 336: Line 370:
 
   | attributes=none
 
   | attributes=none
 
   | messages=set <sym: function> [<any: parameters> ...] - set window function and parameters<br>
 
   | messages=set <sym: function> [<any: parameters> ...] - set window function and parameters<br>
   | inlets=0 <fmat&#124;fvec: vector> - input vector to be windowed<br>1 [<any: parameters> ...] - set window parameters<br>
+
   | inlets=1 <fmat&#124;fvec: vector> - input vector to be windowed<br>2 [<any: parameters> ...] - set window parameters<br>
   | outlets=0 <fmat&#124;fvec: vector> - output incoming vector with applied window<br>
+
   | outlets=1 <fmat&#124;fvec: vector> - output incoming vector with applied window<br>
 
}}
 
}}
  
Line 344: Line 378:
 
   | brief=fundamentatal frequency estimation after de Cheveigné and Kawahara
 
   | brief=fundamentatal frequency estimation after de Cheveigné and Kawahara
 
   | descr=Estimates fundamental frequency and outputs energy, periodicity factor, and auto correlation coefficients.
 
   | descr=Estimates fundamental frequency and outputs energy, periodicity factor, and auto correlation coefficients.
   | arguments=0 <num: min freq> - lowest estimated frequency in Hz [50.]<br>1 - quality/periodicity threshold [0.68]<br>
+
   | arguments=1 <num: min freq> - lowest estimated frequency in Hz [50.]<br>2 - quality/periodicity threshold [0.68]<br>
 
   | attributes=down <num: factor> - down sampling factor of incoming frames [1]<br>threshold <num: threshold> - quality/periodicity threshold<br>minfreq <num: min freq> - lowest estimated frequency in Hz<br>
 
   | attributes=down <num: factor> - down sampling factor of incoming frames [1]<br>threshold <num: threshold> - quality/periodicity threshold<br>minfreq <num: min freq> - lowest estimated frequency in Hz<br>
 
   | messages=down <num: factor> - down sampling factor of incoming frames [1]<br>threshold <num: threshold> - quality/periodicity threshold<br>minfreq <num: min freq> - lowest estimated frequency in Hz<br>
 
   | messages=down <num: factor> - down sampling factor of incoming frames [1]<br>threshold <num: threshold> - quality/periodicity threshold<br>minfreq <num: min freq> - lowest estimated frequency in Hz<br>
   | inlets=0 - signal frame (fmat or fvec<br>
+
   | inlets=1 - signal frame (fmat or fvec<br>
   | outlets=0 <num: freq> - estimated frequency in Hz<br>1 <num: energy> - energy factor<br>2 <num: perodicity> - quality/periodicity factor<br>3 <num: ac1> - 2nd autocorrelation coefficient (ac1)<br>4 <fmat: acf> - vector of autocorrelation coefficients<br>
+
   | outlets=1 <num: freq> - estimated frequency in Hz<br>2 <num: energy> - energy factor<br>3 <num: perodicity> - quality/periodicity factor<br>4 <num: ac1> - 2nd autocorrelation coefficient (ac1)<br>5 <fmat: acf> - vector of autocorrelation coefficients<br>
 
}}
 
}}

Revision as of 21:25, 2 March 2008


ftm.mess '
arguments: none
attributes: none
messages: none
inlets: 1 - input list
outlets: 1 - message outlet

ftm.object '
arguments: none
attributes: none
messages: bang - output reference
anything - message to object
inlets: none
outlets: 1 - object reference (when bang)
2 - method return values

ftm.print print to the console
Prints any input (single values, lists, messages) to the console.

Evokes print method of FTM objects when incoming as single value.

arguments: 1 <sym: prompt> - prompt symbol
attributes: none
messages: anything - print message or FTM object
bang - print bang
inlets: 1 [<any: values> ...] - print value or list
outlets: none

gbr.addenv additive synthesis: generate partials with a given envelope
Adds partials with a spectral envolope (given as a vector or list) to an incoming spectrum using the FFT-1 technique.The output is typically connected to gbr.ifft (in real mode) or another gbr.addenv or gbr.addpartials module.
arguments: 1 <num: max> - maximum number of partials [64]
attributes: noisy <bool: switch> - enable/disbale noisiness ['off']
coefs <num: coefs> - set number of FFT-1 spectral bin coefficients [8]
messages: noisy <bool: switch> - enable/disbale noisiness ['off']
coefs <num: coefs> - set number of FFT-1 spectral bin coefficients [8]
inlets: 1 <fmat: spectrum> - complex vector (only positive frequencies) to which to add the generated partials
2 <num|fmat|fvec|list: freq(s)> - fundamental frequency (num: for harmonics) or vector of partials frequencies
3 <num|fmat|fvec|list: spectral envelope> - spectral envelope (given values will be linearly interpolated)
4 <num|fmat|fvec|list: phase(s)> - phase (num: for all partials) or vector of phases for the given partials
outlets: 1 <fmat> - no description

gbr.addpartials additive synthesis: generate partials with given frequencies and amplitudes
Adds partials (given as a vector or list) to an incoming spectrum using the FFT-1 technique.The output is typically connected to gbr.ifft (in real mode) or another gbr.addpartials or gbr.addenv module.
Frequencies and amplitudes can be given by separated vectors with separated inputs (input format 'vec') or as a single matrix to the first inlet.The input format (attribute @format) determines the interpretation of the columns of the incoming matrix: 'fa' requires 2 columns with frequencies and amplitudes, 'ifa' requires 3 columns with partial indices, frequencies and amplitudes.
arguments: 1 - maximum number of partials [64]
attributes: format <'vec'|'fa'|'ifa': format> - set input matrix/vector format ['vec']
noisy <bool: switch> - enable/disbale noisiness ['off']
coefs <num: num> - set number of FFT-1 spectral bin coefficients [8]
messages: format <'vec'|'fa'|'ifa': format> - set input matrix/vector format ['vec']
noisy <bool: switch> - enable/disbale noisiness ['off']
coefs <num: num> - set number of FFT-1 spectral bin coefficients [8]
inlets: 1 <fmat: spectrum> - complex vector (only positive frequencies) to which to add the generated partials
2 <num|fmat|fvec|list: freq(s)> - set fundamental frequency (num: for harmonics) or vector of partials frequencies
3 <num|fmat|fvec|list: amp(s)> - set amplitude (num: for harmonics) or vector of partials amplitudes
4 <num|fmat|fvec|list: phase(s)> - set phase (num: for all partials) or vector of phases for the given partials
outlets: 1 <fmat> - no description

gbr.autox auto correlation and similar
Calculates autocorrelation, distance, quadratic distance, sum magnitude difference function and accumulated difference function (yin).
arguments: 1 <num: size> - calculation size [256]
2 <num: width> - window width [256]
attributes: out <fmat: output> - set output vector
mode <'corr'|'dist'|'dist2'|'smdf'|'yin': mode> - set calculation mode ['corr']
scale <num: factor> - set scaling factor [1]
messages: size <num: size> - set calculation size (maximum output size)
width <num: width> - set window width
out <fmat: output> - set output vector
scale <num: factor> - set scaling factor [1]
inlets: 1 <fmat|fvec: vector> - input vector
outlets: 1 <fmat: vector> - auto correlation vector

gbr.bands calulate frequency bands (or integrate bands of a similar domain)
Sums regions of the incoming vector to bands in different schemes:sum of values between given bounds or classical HTK or FC mel coefficients.Its input is typically connected to gbr.fft (in real mode).
arguments: [<num: boundaries> ...] | <num: input size> <num: output size> - input spectrum size and output bands number, or boundaries
attributes: out <fmat: output> - set output vector
integ <'sqrabs'|'abs': type> - set spectrum integration type (amplitude or power spectrum) ['sqrabs']
scale <num: factor> - set bands filter scale [1]
maxfreq <num: max freq> - set output maximum frequency [sr /2]
minfreq <num: min freq> - set output minimum frequency [0]
mode <'bounds'|'mel'|'htkmel'|'fcmel': mode> - set bands mode ['bounds']
down <num: factor> - down sampling factor of incoming frames (overwrites domain) [1]
domain <num: domain> - set domain of incoming vector (<= 0 sets to sr/2) [input size]
messages: getstate - get the internal weights matrix
bounds [<num: bounaries> ...] - set band boundaries
outsize <num: output size> - set number of output bands
insize <num: input size> - set input spectrum size
out <fmat: output> - set output vector
integ <'sqrabs'|'abs': type> - set spectrum integration type (amplitude or power spectrum) ['sqrabs']
scale <num: factor> - set bands filter scale [1]
maxfreq <num: max freq> - set output maximum frequency [sr /2]
minfreq <num: min freq> - set output minimum frequency [0]
mode <'bounds'|'mel'|'htkmel'|'fcmel': mode> - set bands mode ['bounds']
down <num: factor> - down sampling factor of incoming frames (overwrites domain) [1]
domain <num: domain> - set domain of incoming vector (<= 0 sets to sr/2) [input size]
inlets: 1 <fmat|fvec: spectrum>: - vector of values (amplitude or power spectrum)
outlets: 1 <fmat: ceofficients> - vector of output coefficients
2 <fmat: weights> - internal weights matrix

gbr.bq constant Q
Calculates a constant Q transform on an incoming spectrum [J.Brown, M.Puckette 1992].Its input is typically connected to gbr.fft (in real mode).
arguments: <num: FFT size> <num: min freq> <num: channels per octave> <num: threshold> <num: number of channels> - filter kernel parameters
attributes: channels <num: channels> - set number of channels to calculate [all]
messages: channels <num: channels> - set number of channels to calculate [all]
inlets: 1 <fmat: spectrum> - complex vector of (positive frequencies)
outlets: 1 <fmat: coefficients> - filter bands

gbr.copy copy vector (fmat) out of a delay line or an fmat or fvec)
Copies a grain (fmat vector) of a given duration out of a delay line at a given delay time and outputs an fmat reference.If the given delay time is less than the the duration the vector will be shortened
arguments: 1 <delayline|fmat|fvec: source> - source reference
2 <num: duration> - grain duration [100]
attributes: out <fmat: output> - set output vector
unit <'msec'|'sec'|'samp': unit> - set time unit to msecs, secs or samples ['msec']
messages: bang - copy vector from the beginning of the delay line and output
set <delayline|fmat|fvec: source> - set source
out <fmat: output> - set output vector
unit <'msec'|'sec'|'samp': unit> - set time unit to msecs, secs or samples ['msec']
inlets: 1 <num: delay> - copy and output grain at given delay position
2 <num: duration> - set duration
outlets: 1 <fmat: vector> - copied grain

gbr.crossx cross correlation and similar
Calculates correlation, distance, quadratic distance and sum magnitude difference function.
arguments: 1 <num: size> - calculation size [256]
2 <num: width> - window width [256]
3 <fmat|fvec: vector> - right operand
attributes: out <fmat: output> - set output vector
mode <'corr'|'dist'|'dist2'|'smdf': mode> - set calculation mode
scale <num: factor> - set scaling factor [1]
messages: width <num: width> - set window width
size <num: size> - set calculation size (maximum output size)
out <fmat: output> - set output vector
scale <num: factor> - set scaling factor [1]
inlets: 1 <fmat|fvec: vector> - left input vector
2 <fmat|fvec: vector> - right input vector
outlets: 1 <fmat: vector> - cross correlation vector

gbr.dct discrete cosine transform
Calculates a DCT of the incoming vector.
arguments: 1 <num: input size> - size of input vector [40]
2 <num: output size> - number of DCT coefficients to be calculated [13]
attributes: out <fmat: output> - set output vector
mode <'slaney'|'htk'|fc'> - set discrete cosine transform mode ['slaney']
messages: getstate - get the internal weights matrix
outsize <num: output size> - set number of DCT coefficients to be calculated
insize <num: input size> - set size input vector
out <fmat: output> - set output vector
mode <'slaney'|'htk'|fc'> - set discrete cosine transform mode ['slaney']
inlets: 1 <fmat|fvec: vector> - input vector
outlets: 1 <fmat: vector> - DCT coefficients
2 <fmat: vector> - internal weights matrix

gbr.dline~ classical delay line
Delay line to be used with gbr.copy and gbr.tapout~.
arguments: <sym: name> <num: size in given unit> - give name and size [none 100]
attributes: unit <'msec'|'sec'|'samp': unit> - set time unit to msecs, secs or samples ['msec']
scope <'local'|'global'> - set delayline name scope ['global']
messages: freeze <'0'|'1': freeze>] - enable/disable delay line freeze
clear - zero delay line
inlets: 1 - write signal into delay line
outlets: 1 - thru output (for order-forcing)

gbr.drain~ forward delay line
Delay line to write with different delays to be used with gbr.paste and gbr.tapin~.
arguments: <sym: name> <num: size in given unit> - give name and size [none 100]
attributes: unit <'msec'|'sec'|'samp': unit> - set time unit to msecs, secs or samples ['msec']
scope <'local'|'global'> - set delayline name scope ['global']
messages: clear - clear delay line
inlets: 1 - (order-forcing input)
outlets: 1 - sum delay line output

gbr.fft fast Fourier transform
Calculates FFT on incoming vector.
arguments: 1 <num: size> - FFT size (rounded to the next power of 2) [512]
attributes: out <fmat: output> - set output vector
mode <'auto'|'complex'|'real': mode> - FFT mode ['auto']
scale <num: factor> - scaling factor (0 --> 1 / FFT size) [1]
messages: out <fmat: output> - set output vector
scale <num: factor> - scaling factor (0 --> 1 / FFT size) [1]
inlets: 1 <fmat|fvec: vector> - real or conplex input vector
outlets: 1 <fmat: vector> - real or conplex output vector

gbr.fire~ Gabor timing impulse generator
Periodically outputs a given fmat or a bang within the Gabor scheduling scheme.
arguments: <num: period> [<fmat: vector>] - frequency/period and fmat to fire [0]
attributes: out <fmat: out> - set output fmat
var <num: freq var> - set period variation (0...1) [0]
period <num: period> - set frequency/period [0]
unit <'hz'|'msec'|'sec'|'samp'|'midi'|'midicent': unit> - set frequency/period unit to Hz, msec or samples ['hz']
messages: out <fmat: out> - set output fmat
var <num: freq var> - set period variation (0...1) [0]
period <num: period> - set frequency/period [0]
unit <'hz'|'msec'|'sec'|'samp'|'midi'|'midicent': unit> - set frequency/period unit to Hz, msec or samples ['hz']
inlets: 1 <num: freq/period> - fire frequency/period (O is off)
2 <fmat: vector> - set fmat to fire
outlets: 1 - output fmat or bang

gbr.gen= generate waveform/function
Adds a given (and parametrised) waveform/function to an incomming vector.The user can chose among various waveforms/functions
arguments: <'cosine'|'sine': function> [<any: parameters> ...] - generator function and parameters ['cosine']
attributes: none
messages: set <'cosine'|'sine': function> [<any: parameters> ...] - set generator function and parameters
inlets: 1 <fmat|fvec: vector> - input vector to which the waveform/function will be added
2 [<any: parameters> ...] - set generator parameters
outlets: 1 <fmat|fvec: vector> - output incoming vector with added waveform/function

gbr.harms estimate harmonics from a given spectrum (or any other vector)
Estimates frequencies (interpolated and scaled indices) and amplitudes of harmonics in an incoming vector.Harmonics are defined as peaks around the multiple of a given value (fundamental frequency) with a given tolerance.The estimation of harmonics in a spectrum works best when a logarthimic amplitude spectrum is provided as input.
arguments: 1 <num: max harms> - maximum number of harmonics to be estimated [16]
2 <num: freq> - fundamental frequency in Hz [10]
3 <num: factor> - allowed deviation factor from theoretic harmonic frequency (linear factor of f0) [1.0]
attributes: down <num: down> - set down sampling factor of incoming frames (overwrites domain and scale) [1]
scale <num: factor> - set scaling factor of harmonics (overwrites domain and down)
domain <num: domain> - set domain of output peaks (<= 0 sets to sr/2) [sr/2]
messages: width <num: freq> - set maximum width for harmonic peaks
height <num: amp> - set minimum height for harmonic peaks
interval <num: cent> - set allowed deviation factor from theoretic harmonic frequency (in cent)
delta <num: factor> - set allowed deviation factor from theoretic harmonic frequency (linear factor of f0)
freq <num: freq> - set fundamental frequency in Hz
max <num: max harms> - set maximum number of harmonics to be estimated
down <num: down> - set down sampling factor of incoming frames (overwrites domain and scale) [1]
scale <num: factor> - set scaling factor of harmonics (overwrites domain and down)
domain <num: domain> - set domain of output peaks (<= 0 sets to sr/2) [sr/2]
inlets: 1 <fmat|fvec: vector> - input vector>
outlets: 1 <fmat: vector> - vector of harmonics

gbr.ifft inverse fast Fourier transform
Calculates inverse FFT on incoming vector.
arguments: 1 <num: size> - FFT size (rounded to the next power of 2) [512]
attributes: out <fmat: output> - set output vector
mode <'auto'|'complex'|'real': mode> - FFT mode ['auto']
scale <num: factor> - scaling factor (0 --> 1 / FFT size) [1]
messages: out <fmat: output> - set output vector
scale <num: factor> - scaling factor (0 --> 1 / FFT size) [1]
inlets: 1 - messages only
outlets: 1 <fmat> - no description

gbr.lifter (to be documented)
(to be documented)
arguments: 1 <num: size> - size of input vector [13]
2 <num: factor> - filtering factor [0]
attributes: out <fmat: output> - set output vector
mode <'exp'|'sin': mode> - set liftering type: exponential (Auditory Toolbox-like) or sinusoidal (HTK-like) ['exp']
inv <'0'|'1': switch> - enable/disable the inverse liftering mode [0]
messages: getstate - get internal weights matrix
factor <num: factor> - set filtering factor
insize <num: size> - size of input vector
out <fmat: output> - set output vector
mode <'exp'|'sin': mode> - set liftering type: exponential (Auditory Toolbox-like) or sinusoidal (HTK-like) ['exp']
inv <'0'|'1': switch> - enable/disable the inverse liftering mode [0]
inlets: 1 <fmat|fvec: vector> - cepstrum vector
outlets: 1 <fmat: vector> - liftered cepstrum
2 <fmat: weights> - internal weights matrix

gbr.lpc linear prediction coefficients
Calculates LPC coefficients from incoming sinal frame.
arguments: 1 <num: order> - LPC order [12]
attributes: out <fmat: output> - set output vector
errasfloat <'0'|'1': switch> - enable/disable float number output [0]
messages: order <num: order> - set LPC order
out <fmat: output> - set output vector
errasfloat <'0'|'1': switch> - enable/disable float number output [0]
inlets: 1 <fmat|fvec: vector> - input vector
outlets: 1 <fmat: vector> - LPC coefficients
2 <num|fmat: error> - prediciton error
3 <fmat: vector> - autocorrelation
4 <fmat: vector> - internal values

gbr.mask partial masking using critical band width
Calculates and applies masking to incoming vector of partials.The input format (attribute @format) determines the interpretation of the columns of the incoming matrix: 'fa' requires 2 columns with frequencies and amplitudes, 'ifa' requires 3 columns with partial indices, frequencies and amplitudes.
arguments: none
attributes: out <fmat: output> - set output vector
format - 'fa'|'ifa': input format> - set input matrix format ['fa']
messages: calcpeaks <num: (left) peaks> [<num: right peaks>] - set number of peaks on the left and right to be taken into account in calculation
slope <num: slope> [<num: slope>] - set (left and right) masking slope
out <fmat: output> - set output vector
format - 'fa'|'ifa': input format> - set input matrix format ['fa']
inlets: 1 <fmat: partials> - vector of partials (in given format)
outlets: 1 <fmat: partials> - vector of partials (in given format)

gbr.morph (to be documented)
(to be documented)
arguments: 1 <fmat: partials> - vector of paritals corresponding to the interpolation factor 0
2 <fmat: partials> - vector of paritals corresponding to the interpolation factor 1
attributes: out <fmat: output> - set output vector
format - 'fa'|'ifa'|'plain': input format> - set input matrix format ['fa']
messages: out <fmat: output> - set output vector
format - 'fa'|'ifa'|'plain': input format> - set input matrix format ['fa']
inlets: 1 <num: factor> - morphing factor (0...1)
2 <fmat: partials> - vector of paritals corresponding to the interpolation factor 0
3 <fmat: partials> - vector of paritals corresponding to the interpolation factor 1
outlets: 1 <fmat: partials> - vector of morphed paritals

gbr.ola~ overlap-add
Performs the overlap-add of incoming vectors into a forward delayline.The vector will be shortened at the end of the delayline.
arguments: 1 <num: channels> - number of output channels [1]
2 <num: size> - buffer size [100]
3 <num: delay> - delay position [0]
4 <num: channel> - output channel (0 switches off) [1]
attributes: unit <'msec'|'sec'|'samp': unit> - set time unit to msecs, secs or samples ['msec']
interp <bool: switch> - enable/disable interpolation ['off']
messages: interp <bool: switch> - enable/disable interpolation ['off']
clear - clear delay line
inlets: 1 <fmat|fvec: vector> - overlap-add vector at given delay position
2 <num: delay> - set delay
3 <num: channel> - set output channel (0 switches off)
outlets: 1 - sum delay line output

gbr.paste paste a grain (fmat or fvec) into a drain
Copies a vector into a drain with a given delay.The vector will be shortened at the end of the drain.
arguments: 1 <delayline|fmat|fvec: destination> - destination (write delay line or fmat)
2 <num: delay> - delay position [0]
attributes: unit <'msec'|'sec'|'samp': unit> - set time unit to msecs, secs or samples ['msec']
interp <bool: switch> - enable/disable interpolation ['off']
messages: set <delayline|fmat|fvec: destination> - set destination (write delay line, fmat or fvec)
unit <'msec'|'sec'|'samp': unit> - set time unit to msecs, secs or samples ['msec']
interp <bool: switch> - enable/disable interpolation ['off']
inlets: 1 <fmat|fvec: vector> - paste vector at given delay position
2 - set delay position
outlets: none

gbr.peaks estimate peaks (partials) from a given spectrum (or any other vector)
Estimates frequencies (interpolated and scaled indices) and amplitudes of peaks in an incoming vector.The estimation of partials in a spectrum works best when a logarthimic amplitude spectrum (positive frequencies) is provided as input.
arguments: 1 <num: max peaks> - maximum number of peaks to be estimated [16]
attributes: range <min: boundary> <max: boundary> - band where to search for peaks
keep <'lowest'|'strongest': mode> - keep first or strongest peaks ['lowest']
down <num: down> - set down sampling factor of incoming frames (overwrites domain and scale) [1]
scale <num: factor> - set scaling factor of output peaks (overwrites domain and down)
domain <num: domain> - set domain of output peaks (<= 0 sets to sr/2) [sr/2]
messages: dev <num: value> - set maximum deviation from mean value
width <num: freq> - set maximum width for peaks (indicates sinusoïdality)
height <num: amp> - set minimum height for peaks
max <num: max peaks> - set maximum number of peaks to be estimated
range <min: boundary> <max: boundary> - band where to search for peaks
keep <'lowest'|'strongest': mode> - keep first or strongest peaks ['lowest']
down <num: down> - set down sampling factor of incoming frames (overwrites domain and scale) [1]
scale <num: factor> - set scaling factor of output peaks (overwrites domain and down)
domain <num: domain> - set domain of output peaks (<= 0 sets to sr/2) [sr/2]
inlets: 1 <fmat|fvec: vector> - input vector (spectrum)>
outlets: 1 <fmat: vector> - vector of peaks

gbr.preemphasis (to be documented)
(to be documented)
arguments: 1 <num: factor> - filtering factor [0]
attributes: out - set output object
messages: clear - clear any previous sample
getstate - get the previous sample
factor <num: factor> - set filtering factor
out - set output object
inlets: 1 <fmat|fvec: vector> - input signal
outlets: 1 <fmat: vector> - output preemphasised frame
2 <fmat: vector> - previous frame

gbr.psy~ pysch synchronous (YIN-based) signal slicing
Cuts incoming signal into elementary waveforms.Outputs vectors corresponding to two periods of the estimated frequency or fixed duration (256 points) when unvoiced.
arguments: none
attributes: threshold <num: pitch> [<num: noise>] - set pitch and noise quality treshold [0.6838 0.4523]
enable <bool: switch> - enable/disable calculation and output ['on']
messages: threshold <num: pitch> [<num: noise>] - set pitch and noise quality treshold [0.6838 0.4523]
enable <bool: switch> - enable/disable calculation and output ['on']
inlets: 1 - input signal to be analysed and cut into elemetary waveforms
outlets: 1 <fmat: vector> - elementary waveforms (2 periods)
2 <num: freq> - estimated frequency in Hz (0, when unvoiced)
3 <num: periodicity> - yin periodicity/quality factor
4 <num: factor> (linear) energy

gbr.resample resampling
Resamples incoming vector in different modes:'cubic' (cubic interpolation), 'downmean' (downsampling by calculating the mean of a given number of values), 'downremove' (picks nearest value)
arguments: 1 <num: order> - resampling order/increment [1]
attributes: out <fmat: output> - set output vector
mode <'cubic'|'downmean'|'downremove': mode> - set resampling mode
messages: out <fmat: output> - set output vector
mode <'cubic'|'downmean'|'downremove': mode> - set resampling mode
inlets: 1 <fmat: vector> - input vector
2 <num: order> - set resampling order/increment
outlets: 1 <fmat: vector> - output vector

gbr.slice~ signal slicing
Cuts incoming signal into frames of given size with given period (hop size).
arguments: 1 <num: size> - frame size [512]
2 <num: size> - hop size [256]
attributes: unit <'samp'|'msec'|'sec': unit> - set time unit to msecs, secs or samples ['samp']
enable <bool: switch> - enable/disable calculation and output ['on']
period <num: size> - set hop size
size <num: size> - set frame size
messages: unit <'samp'|'msec'|'sec': unit> - set time unit to msecs, secs or samples ['samp']
enable <bool: switch> - enable/disable calculation and output ['on']
period <num: size> - set hop size
size <num: size> - set frame size
inlets: 1 - input signal to be sliced into frames
outlets: 1 <fmat: vector> - signal frames
2 <undefined> - no description

gbr.tapin~ input tap for write delay line
Simple input tap for write delay line defined by gbr.dline~.
arguments: 1 <delayline: write> - delay line (defined by gbr.drain~)
2 <num: delay> - delay time (in given unit) [0]
attributes: unit <'msec'|'sec'|'samp': unit> - set delay unit to msecs, secs or samples ['msec']
messages: set <delayline: write> - set delay line (defined by gbr.drain~)
unit <'msec'|'sec'|'samp': unit> - set delay unit to msecs, secs or samples ['msec']
inlets: 1 - input signal written to delay line
2 - set delay time
outlets: 1 - zero output (for order-forcing)

gbr.tapout~ output tap for read delay line
Simple output tap for read delay line defined by gbr.drain~.
arguments: 1 <delayline: read> - delay line (defined by gbr.dline~)
2 - delay time (in given unit) [0]
attributes: unit <'msec'|'sec'|'samp': unit> - set delay unit to msecs, secs or samples ['msec']
interp - 0|1|'off'|'on|'cubic'|'linear': mode> - interpolation mode ['off']
messages: set <delayline: read> - set delay line (defined by gbr.dline~)
unit <'msec'|'sec'|'samp': unit> - set delay unit to msecs, secs or samples ['msec']
interp - 0|1|'off'|'on|'cubic'|'linear': mode> - interpolation mode ['off']
inlets: 1 - (order-forcing input)
2 <sig|num: delay> - delay time
outlets: 1 - delayed signal

gbr.timer~ gabor timer
stop watch in Gabor scheduling scheme
arguments: none
attributes: unit <'msec'|'sec'|'samp'|'hz'|: unit> - set timer unit to msecs, secs, samples or Hz ['msec']
messages: bang - report time since last bang
unit <'msec'|'sec'|'samp'|'hz'|: unit> - set timer unit to msecs, secs, samples or Hz ['msec']
inlets: 1 - messages only
outlets: 1 <num: time> - time in given unit

gbr.trace (to be documented)
(to be documented)
arguments: 1 <num: max> - maximum number of peaks [200]
attributes: maxpasses - (to be documented)
absamp - (to be documented)
absfreq - (to be documented)
relfreq - (to be documented)
max <num: maximum number of partials [200]>
messages: clear - (to be documented)
maxpasses - (to be documented)
absamp - (to be documented)
absfreq - (to be documented)
relfreq - (to be documented)
max <num: maximum number of partials [200]>
inlets: 1 <fmat: partials> - vector of partials
outlets: 1 <fmat: partials> - vector of traced partials (with index)

gbr.wind= apply a window to an incoming frame, grain or wave
Applies a chosen (and parametrized) window to the incomming fmat (column by column).The user can chose among various window types (see help patch).
arguments: <sym: function> [<any: parameters> ...] - window function and parameters ['hann']
attributes: none
messages: set <sym: function> [<any: parameters> ...] - set window function and parameters
inlets: 1 <fmat|fvec: vector> - input vector to be windowed
2 [<any: parameters> ...] - set window parameters
outlets: 1 <fmat|fvec: vector> - output incoming vector with applied window

gbr.yin fundamentatal frequency estimation after de Cheveigné and Kawahara
Estimates fundamental frequency and outputs energy, periodicity factor, and auto correlation coefficients.
arguments: 1 <num: min freq> - lowest estimated frequency in Hz [50.]
2 - quality/periodicity threshold [0.68]
attributes: down <num: factor> - down sampling factor of incoming frames [1]
threshold <num: threshold> - quality/periodicity threshold
minfreq <num: min freq> - lowest estimated frequency in Hz
messages: down <num: factor> - down sampling factor of incoming frames [1]
threshold <num: threshold> - quality/periodicity threshold
minfreq <num: min freq> - lowest estimated frequency in Hz
inlets: 1 - signal frame (fmat or fvec
outlets: 1 <num: freq> - estimated frequency in Hz
2 <num: energy> - energy factor
3 <num: perodicity> - quality/periodicity factor
4 <num: ac1> - 2nd autocorrelation coefficient (ac1)
5 <fmat: acf> - vector of autocorrelation coefficients