From ftm
(→Under Construction...) |
|||
(42 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | == | + | * gbr.addenv ... Additive synthesis: generate partials with a given envelope |
+ | * gbr.addpartials ... Additive synthesis: generate partials with given frequencies and amplitudes | ||
+ | * gbr.autox ... Auto correlation and similar | ||
+ | * gbr.bands ... FFT filter bands | ||
+ | * gbr.bq ... Constant Q | ||
+ | * gbr.copy ... Copy vector (fmat) out of a delay line or an fmat or fvec | ||
+ | * gbr.crossx ... Cross correlation and similar | ||
+ | * gbr.dct ... Discrete cosine transform | ||
+ | * gbr.dline~ ... Classical delay line | ||
+ | * gbr.drain~ ... Forward delay line | ||
+ | * gbr.fft ... Fast Fourier transform | ||
+ | * gbr.fire~ ... Gabor timing impulse generator | ||
+ | * gbr.gen= ... Generate waveform/function | ||
+ | * gbr.harms ... Estimate harmonics from a given spectrum (or any other vector) | ||
+ | * gbr.ifft ... Inverse fast Fourier transform | ||
+ | * gbr.lifter ... Cepstral liftering | ||
+ | * gbr.lpc ... Linear prediction coefficients | ||
+ | * gbr.mask ... Partial masking using critical band width | ||
+ | * gbr.morph ... Partials sets interpolation | ||
+ | * gbr.ola~ ... Overlap-add | ||
+ | * gbr.paste ... Paste a grain (fmat or fvec) into a drain | ||
+ | * gbr.peaks ... Estimate peaks (partials) from a given spectrum (or any other vector) | ||
+ | * gbr.preemphasis ... Simple first order difference filter | ||
+ | * gbr.psy~ ... Pitch synchronous (YIN-based) signal slicing | ||
+ | * gbr.resample ... Resampling | ||
+ | * gbr.schedule~ ... Delay/scheduler respecting Gabor timing | ||
+ | * gbr.slice~ ... Signal slicing | ||
+ | * gbr.tapin~ ... Input tap for write delay line | ||
+ | * gbr.tapout~ ... Output tap for read delay line | ||
+ | * gbr.timer~ ... Gabor timer | ||
+ | * gbr.trace ... Trace and index peaks | ||
+ | * gbr.wind= ... Apply a window to an incoming frame, grain or wave | ||
+ | * gbr.yin ... Fundamental frequency estimation after de Cheveigne and Kawahara | ||
+ | |||
{{Module | | {{Module | | ||
| name=gbr.addenv | | name=gbr.addenv | ||
− | | brief= | + | | brief=Additive synthesis: generate partials with a given envelope |
− | | descr= | + | | 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= | + | | arguments=1 <num: max> - maximum number of partials [64]<br>2 <num: size> - spectrum size (0: input size) [0]<br> |
− | | attributes= | + | | attributes=coefs <num: coefs> - set number of FFT-1 spectral bin coefficients [8]<br>noisy <bool: switch> - enable/disbale noisiness ['off']<br>zero <bool: switch> - zero spectrum before adding partials ['off']<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br> |
− | | inlets= | + | | inlets=1 <fmat: spectrum> - complex vector (only positive frequencies) to which to add the generated partials<br>2 <num|fmat|fvec|list: freq(s)> - fundamental frequency (num: for harmonics) or vector of partials frequencies<br>3 <num|fmat|fvec|list: spectral envelope> - spectral envelope (given values will be linearly interpolated)<br>4 <num|fmat|fvec|list: phase(s)> - phase (num: for all partials) or vector of phases for the given partials<br> |
− | | outlets= | + | | outlets=1 <fmat: spectrum> - output spectrum with added partials<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.addpartials | | name=gbr.addpartials | ||
− | | brief= | + | | brief=Additive synthesis: generate partials with given frequencies and amplitudes |
− | | descr= | + | | 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= | + | | arguments=1 <num: max> - maximum number of partials [64]<br>2 <num: size> - spectrum size (0: input size) [0]<br> |
− | | attributes= | + | | attributes=coefs <num: num> - set number of FFT-1 spectral bin coefficients [8]<br>noisy <bool: switch> - enable/disbale noisiness ['off']<br>zero <bool: switch> - zero spectrum before adding partials ['off']<br>format <'vec'|'fa'|'ifa': format> - set input matrix/vector format ['vec']<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br> |
− | | inlets= | + | | inlets=1 <fmat: spectrum> - complex vector (only positive frequencies) to which to add the generated partials<br>2 <num|fmat|fvec|list: freq(s)> - set fundamental frequency (num: for harmonics) or vector of partials frequencies<br>3 <num|fmat|fvec|list: amp(s)> - set amplitude (num: for harmonics) or vector of partials amplitudes<br>4 <num|fmat|fvec|list: phase(s)> - set phase (num: for all partials) or vector of phases for the given partials<br> |
− | | outlets= | + | | outlets=1 <fmat: spectrum> - output spectrum with added partials<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.autox | | name=gbr.autox | ||
− | | brief= | + | | brief=Auto correlation and similar |
− | | descr= | + | | descr=Calculates autocorrelation, distance, quadratic distance, sum magnitude difference function and accumulated difference function (yin). |
− | | arguments= | + | | arguments=1 <num: size> - calculation size [256]<br>2 <num: width> - window width [256]<br> |
− | | attributes= | + | | attributes=scale <num: factor> - set scaling factor [1]<br>mode <'corr'|'dist'|'dist2'|'smdf'|'yin': mode> - set calculation mode ['corr']<br>out <fmat: output> - set output vector<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br>width <num: width> - set window width<br>size <num: size> - set calculation size (maximum output size)<br> |
− | | inlets= | + | | inlets=1 <fmat|fvec: vector> - input vector<br> |
− | | outlets= | + | | outlets=1 <fmat: vector> - auto correlation vector<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.bands | | name=gbr.bands | ||
− | | brief= | + | | brief=FFT filter bands |
− | | descr= | + | | descr=Calculate filter bands from FFT spectrum. |
− | | arguments=init input spectrum size and output bands | + | | arguments=<num: min> <num: max> | <num: insize> <num: outsize> - init bands boundaries or input spectrum size and number of output bands<br> |
− | | attributes= | + | | attributes=bands <'bounds'|'mel'|'htkmel'|'fcmel': mode> - set the bands mode [bounds]<br>minfreq <num: min> - set the output minimum frequency in hz<br>maxfreq <num: max> - set the output maximum frequency in hz<br>scale <num: scale> - set the bands filter scale<br>integ <'sqrabs'|'abs': spec> - set the spectrum integration type [sqrabs]<br>domain <num: domain> - set domain of output bands (<= 0 sets to sr/2)<br>domscale <num: factor> - set scaling factor of output bands (overwrites domain and down) [1]<br>down <num: down> - set down sampling factor of incoming frames (overwrites domain and domscale)<br>out <fmat: out> - set output matrix<br> |
− | + | | messages=postdoc - post external doc to console<br>insize <num: insize> - set the input spectrum size<br>outsize <num: outsize> - set the number of output bands<br>bounds <list: boundaries> - set band boundaries<br>getstate - get the internal weights matrix<br> | |
− | | inlets= | + | | inlets=1 <fmat|fvec: input> - input spectrum<br> |
− | | outlets= | + | | outlets=1 <fmat: output> - output bands<br>2 <fmat: weights> - internal weights matrix<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.bq | | name=gbr.bq | ||
− | | brief= | + | | brief=Constant Q |
− | | descr= | + | | descr=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= | + | | arguments=<num: FFT size> <num: min freq> <num: channels per octave> <num: threshold> <num: number of channels> - filter kernel parameters<br> |
− | | attributes= | + | | attributes=channels <num: channels> - set number of channels to calculate [all]<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br> |
− | | inlets= | + | | inlets=1 <fmat: spectrum> - complex vector of (positive frequencies)<br> |
− | | outlets= | + | | outlets=1 <fmat: coefficients> - filter bands<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.copy | | name=gbr.copy | ||
− | | brief= | + | | brief=Copy vector (fmat) out of a delay line or an fmat or fvec |
− | | descr= | + | | 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= | + | | arguments=1 <delayline|fmat|fvec: source> - source reference<br>2 <num: duration> - grain duration [100]<br> |
− | | attributes= | + | | attributes=unit <'msec'|'sec'|'samp': unit> - set time unit to msecs, secs or samples ['msec']<br>out <fmat: output> - set output vector<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br>set <delayline|fmat|fvec: source> - set source<br>bang - copy vector from the beginning of the delay line and output<br> |
− | | inlets= | + | | inlets=1 <num: delay> - copy and output grain at given delay position<br>2 <num: duration> - set duration<br> |
− | | outlets= | + | | outlets=1 <fmat: vector> - copied grain<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.crossx | | name=gbr.crossx | ||
− | | brief= | + | | brief=Cross correlation and similar |
− | | descr= | + | | descr=Calculates correlation, distance, quadratic distance and sum magnitude difference function. |
− | | arguments= | + | | arguments=1 <num: size> - calculation size [256]<br>2 <num: width> - window width [256]<br>3 <fmat|fvec: vector> - right operand<br> |
− | | attributes= | + | | attributes=scale <num: factor> - set scaling factor [1]<br>mode <'corr'|'dist'|'dist2'|'smdf': mode> - set calculation mode<br>out <fmat: output> - set output vector<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br>size <num: size> - set calculation size (maximum output size)<br>width <num: width> - set window width<br> |
− | | inlets= | + | | inlets=1 <fmat|fvec: vector> - left input vector<br>2 <fmat|fvec: vector> - right input vector<br> |
− | | outlets= | + | | outlets=1 <fmat: vector> - cross correlation vector<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.dct | | name=gbr.dct | ||
− | | brief= | + | | brief=Discrete cosine transform |
− | | descr= | + | | descr=Calculates a DCT of the incoming vector. |
− | | arguments= | + | | 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=mode - set | + | | attributes=mode <'slaney'|'htk'|fc'> - set discrete cosine transform mode ['slaney']<br>out <fmat: output> - set output vector<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br>insize <num: input size> - set size input vector<br>outsize <num: output size> - set number of DCT coefficients to be calculated<br>getstate - get the internal weights matrix<br> |
− | | inlets= | + | | inlets=1 <fmat|fvec: vector> - input vector<br> |
− | | outlets= | + | | outlets=1 <fmat: vector> - DCT coefficients<br>2 <fmat: vector> - internal weights matrix<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.dline~ | | name=gbr.dline~ | ||
− | | brief= | + | | brief=Classical delay line |
− | | descr= | + | | descr=Delay line to be used with gbr.copy and gbr.tapout~. |
− | | arguments= | + | | arguments=<sym: name> <num: size in given unit> - give name and size [none 100]<br> |
− | | attributes=unit < | + | | attributes=scope <'local'|'global': scope> - set delayline name scope ['global']<br>unit <'msec'|'sec'|'samp': unit> - set time unit to msecs, secs or samples ['msec']<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br>clear - zero delay line<br>freeze <'0'|'1': freeze>] - enable/disable delay line freeze<br> |
− | | inlets= | + | | inlets=1 - write signal into delay line<br> |
− | | outlets= | + | | outlets=1 - thru output (for order-forcing)<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.drain~ | | name=gbr.drain~ | ||
− | | brief= | + | | brief=Forward delay line |
− | | descr= | + | | descr=Delay line to write with different delays to be used with gbr.paste and gbr.tapin~. |
− | | arguments= | + | | arguments=<sym: name> <num: size in given unit> - give name and size [none 100]<br> |
− | | attributes=unit < | + | | attributes=scope <'local'|'global': scope> - set delayline name scope ['global']<br>unit <'msec'|'sec'|'samp': unit> - set time unit to msecs, secs or samples ['msec']<br> |
− | | messages=clear - clear delay line<br> | + | | messages=postdoc - post external doc to console<br>clear - clear delay line<br> |
− | | inlets= | + | | inlets=1 - messages only<br> |
− | | outlets= | + | | outlets=1 - sum delay line output<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.fft | | name=gbr.fft | ||
− | | brief= | + | | brief=Fast Fourier transform |
− | | descr= | + | | descr=Calculates FFT on incoming vector. |
− | | arguments= | + | | arguments=1 <num: size> - FFT size (rounded to the next power of 2) [512]<br> |
− | | attributes= | + | | attributes=scale <num: factor> - scaling factor (0 --> 1 / FFT size) [1]<br>mode <'auto'|'complex'|'real': mode> - FFT mode ['auto']<br>out <fmat: output> - set output vector<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br> |
− | | inlets= | + | | inlets=1 <fmat|fvec: vector> - real or conplex input vector<br> |
− | | outlets= | + | | outlets=1 <fmat: vector> - real or conplex output vector<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.fire~ | | name=gbr.fire~ | ||
− | | brief= | + | | brief=Gabor timing impulse generator |
− | | descr= | + | | descr=Periodically outputs a given fmat or a bang within the Gabor scheduling scheme. |
− | | arguments= | + | | arguments=<num: period> [<fmat: vector>] - frequency/period and fmat to fire [0]<br> |
− | + | | attributes=unit <'hz'|'msec'|'sec'|'samp'|'midi'|'midicent': unit> - set frequency/period unit to Hz, msec or samples ['hz']<br>period <num: period> - set frequency/period [0]<br>var <num: freq var> - set period variation (0...1) [0]<br>out <fmat: out> - set output fmat<br> | |
− | + | | messages=postdoc - post external doc to console<br> | |
− | | inlets= | + | | inlets=1 <num: freq/period> - fire frequency/period (O is off)<br>2 <fmat: vector> - set fmat to fire<br> |
− | | outlets= | + | | outlets=1 - output fmat or bang<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.gen= | | name=gbr.gen= | ||
− | | brief= | + | | brief=Generate waveform/function |
− | | descr=Adds a | + | | descr=Adds a given (and parametrised) waveform/function to an incomming vector. The user can chose among various waveforms/functions |
− | | arguments= | + | | arguments=<'cosine'|'sine': function> <list: parameters> - generator function and parameters ['cosine']<br> |
| attributes=none | | attributes=none | ||
− | | messages=set - set generator | + | | messages=postdoc - post external doc to console<br>set <'cosine'|'sine': function> <list: parameters> - set generator function and parameters<br> |
− | | inlets= | + | | inlets=1 <fmat|fvec: vector> - input vector to which the waveform/function will be added<br>2 <list: parameters> - set generator parameters<br> |
− | | outlets= | + | | outlets=1 <fmat|fvec: vector> - output incoming vector with added waveform/function<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.harms | | name=gbr.harms | ||
− | | brief= | + | | brief=Estimate harmonics from a given spectrum (or any other vector) |
− | | descr= | + | | 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= | + | | 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= | + | | attributes=none |
− | | messages= | + | | messages=postdoc - post external doc to console<br>max <num: max harms> - set maximum number of harmonics to be estimated<br>freq <num: freq> - set fundamental frequency in Hz<br>delta <num: factor> - set allowed deviation factor from theoretic harmonic frequency (linear factor of f0)<br>interval <num: cent> - set allowed deviation factor from theoretic harmonic frequency (in cent)<br>height <num: amp> - set minimum height for harmonic peaks<br>width <num: freq> - set maximum width for harmonic peaks<br> |
− | | inlets= | + | | inlets=1 <fmat|fvec: vector> - input vector><br> |
− | | outlets= | + | | outlets=1 <fmat: vector> - vector of harmonics<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.ifft | | name=gbr.ifft | ||
− | | brief= | + | | brief=Inverse fast Fourier transform |
− | | descr= | + | | descr=Calculates inverse FFT on incoming vector. |
− | | arguments= | + | | arguments=1 <num: size> - FFT size (rounded to the next power of 2) [512]<br> |
− | | attributes= | + | | attributes=scale <num: factor> - scaling factor (0 --> 1 / FFT size) [1]<br>mode <'auto'|'complex'|'real': mode> - FFT mode ['auto']<br>out <fmat: output> - set output vector<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br> |
− | | inlets= | + | | inlets=1 - messages only<br> |
− | | outlets= | + | | outlets=1 <fmat> - no description<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.lifter | | name=gbr.lifter | ||
− | | brief= | + | | brief=Cepstral liftering |
− | | descr= | + | | descr=Cepstral liftering (HTK and Auditory Toolbox styles) |
− | | arguments= | + | | arguments=1 <num: size> - size of input vector [13]<br>2 <num: factor> - filtering factor [0]<br> |
− | | attributes= | + | | attributes=inv <bool: switch> - enable/disable the inverse liftering mode [0]<br>mode <'exp'|'sin': mode> - set liftering type: exponential (Auditory Toolbox-like) or sinusoidal (HTK-like) ['exp']<br>out <fmat: output> - set output vector<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br>insize <num: size> - size of input vector<br>factor <num: factor> - set filtering factor<br>getstate - get internal weights matrix<br> |
− | | inlets= | + | | inlets=1 <fmat|fvec: vector> - cepstrum vector<br> |
− | | outlets= | + | | outlets=1 <fmat: vector> - liftered cepstrum<br>2 <fmat: weights> - internal weights matrix<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.lpc | | name=gbr.lpc | ||
− | | brief= | + | | brief=Linear prediction coefficients |
− | | descr= | + | | descr=Calculates LPC coefficients from incoming sinal frame. |
− | | arguments= | + | | arguments=1 <num: order> - LPC order [12]<br> |
− | | attributes=errasfloat - | + | | attributes=errasfloat <bool: switch> - enable/disable float number output [off]<br>out <fmat: output> - set output vector<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br>order <num: order> - set LPC order<br> |
− | | inlets= | + | | inlets=1 <fmat|fvec: vector> - input vector<br> |
− | | outlets= | + | | outlets=1 <fmat: vector> - LPC coefficients<br>2 <num|fmat: error> - prediciton error<br>3 <fmat: vector> - autocorrelation<br>4 <fmat: vector> - internal values<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.mask | | name=gbr.mask | ||
− | | brief= | + | | brief=Partial masking using critical band width |
− | | descr= | + | | descr=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 | | arguments=none | ||
− | | attributes= | + | | attributes=format - 'fa'|'ifa': input format> - set input matrix format ['fa']<br>out <fmat: output> - set output vector<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br>slope <num: slope> [<num: slope>] - set (left and right) masking slope<br>calcpeaks <num: (left) peaks> [<num: right peaks>] - set number of peaks on the left and right to be taken into account in calculation<br> |
− | | inlets= | + | | inlets=1 <fmat: partials> - vector of partials (in given format)<br> |
− | | outlets= | + | | outlets=1 <fmat: partials> - vector of partials (in given format)<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.morph | | name=gbr.morph | ||
− | | brief= | + | | brief=Partials sets interpolation |
− | | descr= | + | | descr=Partials sets interpolation using indexes, frequencies and amplitudes |
− | | arguments= | + | | 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=format - <br>out - set output | + | | attributes=format - 'fa'|'ifa'|'plain': input format> - set input matrix format ['fa']<br>out <fmat: output> - set output vector<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br> |
− | | inlets=0 | + | | 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= | + | | outlets=1 <fmat: partials> - vector of morphed paritals<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.ola~ | | name=gbr.ola~ | ||
− | | brief= | + | | brief=Overlap-add |
− | | descr= | + | | 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> | + | | 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 < | + | | attributes=interp <bool: switch> - enable/disable interpolation ['off']<br>unit <'msec'|'sec'|'samp': unit> - set time unit to msecs, secs or samples ['msec']<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br>clear - clear delay line<br> |
− | | inlets= | + | | inlets=1 <fmat|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= | + | | outlets=1 - sum delay line output<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.paste | | name=gbr.paste | ||
− | | brief= | + | | brief=Paste a grain (fmat or fvec) into a drain |
− | | descr= | + | | descr=Copies a vector into a drain with a given delay. The vector will be shortened at the end of the drain. |
− | | arguments= | + | | arguments=1 <delayline|fmat|fvec: destination> - destination (write delay line or fmat)<br>2 <num: delay> - delay position [0]<br> |
− | | attributes=unit < | + | | attributes=interp <bool: switch> - enable/disable interpolation ['off']<br>unit <'msec'|'sec'|'samp': unit> - set time unit to msecs, secs or samples ['msec']<br> |
− | | messages=set <delayline | + | | messages=postdoc - post external doc to console<br>set <delayline|fmat|fvec: destination> - set destination (write delay line, fmat or fvec)<br> |
− | | inlets= | + | | inlets=1 <fmat|fvec: vector> - paste vector at given delay position<br>2 <num: delay> - set delay position<br> |
| outlets=none | | outlets=none | ||
}} | }} | ||
Line 234: | Line 267: | ||
{{Module | | {{Module | | ||
| name=gbr.peaks | | name=gbr.peaks | ||
− | | brief= | + | | brief=Estimate peaks (partials) from a given spectrum (or any other vector) |
− | | descr= | + | | 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= | + | | arguments=1 <num: max peaks> - maximum number of peaks to be estimated [16]<br> |
− | | attributes= | + | | attributes=domain <num: domain> - set domain of output peaks (<= 0 sets to sr/2) [sr/2]<br>domscale <num: factor> - set scaling factor of output peaks (overwrites domain and down)<br>down <num: down> - set down sampling factor of incoming frames (overwrites domain and domscale) [1]<br>keep <'lowest'|'strongest': mode> - keep first or strongest peaks ['lowest']<br>range <min: boundary> <max: boundary> - band where to search for peaks<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br>max <num: max peaks> - set maximum number of peaks to be estimated<br>height <num: amp> - set minimum height for peaks<br>width <num: freq> - set maximum width for peaks (indicates sinuso�dality)<br>dev <num: value> - set maximum deviation from mean value<br> |
− | | inlets= | + | | inlets=1 <fmat|fvec: vector> - input vector (spectrum)><br> |
− | | outlets= | + | | outlets=1 <fmat: vector> - vector of peaks<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.preemphasis | | name=gbr.preemphasis | ||
− | | brief= | + | | brief=Simple first order difference filter |
− | | descr= | + | | descr=Simple first order difference filter |
− | | arguments= | + | | arguments=1 <num: factor> - filtering factor [0]<br> |
− | | attributes=out - set | + | | attributes=out <fmat: out> - set output vector<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br>factor <num: factor> - set filtering factor<br>getstate - get the previous sample<br>clear - clear any previous sample<br> |
− | | inlets= | + | | inlets=1 <fmat|fvec: vector> - input signal<br> |
− | | outlets= | + | | outlets=1 <fmat: vector> - output preemphasised frame<br>2 <fmat: vector> - previous frame<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.psy~ | | name=gbr.psy~ | ||
− | | brief= | + | | brief=Pysch synchronous (YIN-based) signal slicing |
− | | descr= | + | | descr=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 | | arguments=none | ||
− | | attributes= | + | | attributes=active <bool: switch> - activate/deactivate calculation and output ['on']<br>threshold <num: pitch> [<num: noise>] - set pitch and noise quality treshold [0.6838 0.4523]<br> |
− | + | | messages=postdoc - post external doc to console<br> | |
− | | inlets= | + | | inlets=1 - input signal to be analysed and cut into elemetary waveforms<br> |
− | | outlets= | + | | 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> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.resample | | name=gbr.resample | ||
− | | brief= | + | | brief= Resampling |
− | | descr= | + | | 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= | + | | arguments=1 <num: order> - resampling order/increment [1]<br> |
− | | attributes= | + | | attributes=mode <'cubic'|'downmean'|'downremove': mode> - set resampling mode<br>out <fmat: output> - set output vector<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br> |
− | | inlets= | + | | inlets=1 <fmat: vector> - input vector<br>2 <num: order> - set resampling order/increment<br> |
− | | | + | | outlets=1 <fmat: vector> - output vector<br> |
+ | }} | ||
+ | |||
+ | {{Module | | ||
+ | | name=gbr.schedule~ | ||
+ | | brief=Delay/scheduler respecting Gabor timing | ||
+ | | descr=Schedules matrices or bangs with given delay time. | ||
+ | | arguments=<num: delay> - delay time [0]<br> | ||
+ | | attributes=unit <'msec'|'sec'|'samp'|'hz'|'midi'|'midicent': unit> - set delay unit to msec, samples, etc ['msec']<br>delay <num: delay> - set delay [0]<br>out <fmat: out> - set output fmat<br> | ||
+ | | messages=postdoc - post external doc to console<br>bang - input bang<br>stop - stop scheduled events<br> | ||
+ | | inlets=1 <fmat: vector> - delay fmat<br>2 <num: delay> - set delay<br> | ||
+ | | outlets=1 - output fmat or bang<br> | ||
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.slice~ | | name=gbr.slice~ | ||
− | | brief= | + | | brief=Signal slicing |
− | | descr= | + | | descr=Cuts incoming signal into frames of given size with given period (hop size). |
− | | arguments= | + | | arguments=1 <num: size> - frame size [512]<br>2 <num: size> - hop size [256]<br> |
− | | attributes= | + | | attributes=size <num: size> - set frame size<br>period <num: size> - set hop size<br>active <bool: switch> - activate/deactivate calculation and output ['on']<br>unit <'samp'|'msec'|'sec': unit> - set time unit to msecs, secs or samples ['samp']<br> |
− | + | | messages=postdoc - post external doc to console<br> | |
− | | inlets= | + | | inlets=1 - input signal to be sliced into frames<br> |
− | | outlets= | + | | outlets=1 <fmat: vector> - signal frames<br>2 <undefined> - no description<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.tapin~ | | name=gbr.tapin~ | ||
− | | brief=write delay line | + | | brief=Input tap for write delay line |
− | | descr=Simple input tap for write delay line | + | | descr=Simple input tap for write delay line defined by gbr.dline~. |
− | | arguments= | + | | arguments=1 <delayline: write> - delay line (defined by gbr.drain~)<br>2 <num: delay> - delay time (in given unit) [0]<br> |
− | | attributes=unit < | + | | attributes=unit <'msec'|'sec'|'samp': unit> - set delay unit to msecs, secs or samples ['msec']<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br>set <delayline: write> - set delay line (defined by gbr.drain~)<br> |
− | | inlets= | + | | inlets=1 - input signal written to delay line<br>2 - set delay time<br> |
− | | outlets= | + | | outlets=1 - signal outputundefined |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.tapout~ | | name=gbr.tapout~ | ||
− | | brief= | + | | brief=Output tap for read delay line |
− | | descr=Simple | + | | descr=Simple output tap for read delay line defined by gbr.drain~. |
− | | arguments= | + | | arguments=1 <delayline: read> - delay line (defined by gbr.dline~)<br>2 - delay time (in given unit) [0]<br> |
− | | attributes=unit < | + | | attributes=interp - 0|1|'off'|'on|'cubic'|'linear': mode> - interpolation mode ['off']<br>unit <'msec'|'sec'|'samp': unit> - set delay unit to msecs, secs or samples ['msec']<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br>set <delayline: read> - set delay line (defined by gbr.dline~)<br> |
− | | inlets= | + | | inlets=1 - messages only<br>2 <sig|num: delay> - delay time<br> |
− | | outlets= | + | | outlets=1 - delayed signal<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.timer~ | | name=gbr.timer~ | ||
− | | brief= | + | | brief=Gabor timer |
− | | descr=stop watch | + | | descr=stop watch in Gabor scheduling scheme |
| arguments=none | | arguments=none | ||
− | | attributes= | + | | attributes=unit <'msec'|'sec'|'samp'|'hz'|: unit> - set timer unit to msecs, secs, samples or Hz ['msec']<br> |
− | | messages=bang - | + | | messages=postdoc - post external doc to console<br>bang - report time since last bang<br> |
− | | inlets= | + | | inlets=1 - messages only<br> |
− | | outlets= | + | | outlets=1 <num: time> - time in given unit<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.trace | | name=gbr.trace | ||
− | | brief= | + | | brief=Trace and index peaks |
− | | descr= | + | | descr=Trace peaks from frame to frame to associate indexes to the peaks |
− | | arguments= | + | | arguments=1 <num: max> - maximum number of peaks [200]<br> |
− | | attributes= | + | | attributes=max <num: max> - maximum number of partials [200]<br>relfreq <num: var> - allowed relative frequency variation for a peak to keep its index in cent > 0. (default: 20.)<br>absfreq <num: var> - allowed frequency variation for a peak to keep its index in Hz > 0. (default: 50.)<br>absamp <num: var> - allowed linear amplitude variation for a peak to keep its index > 0. (default: 0.5)<br>maxpasses <num: max> - maximum number of connection passes for the algorithm (default 4)<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br>clear - reset (indexes start from 0, drops previous peaks set)<br> |
− | | inlets= | + | | inlets=1 <fmat: partials> - vector of partials<br> |
− | | outlets= | + | | outlets=1 <fmat: partials> - vector of traced partials (with index)<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.wind= | | name=gbr.wind= | ||
− | | brief= | + | | brief=Apply a window to an incoming frame, grain or wave |
− | | descr=Applies a chosen (and parametrized) window to the incomming fmat (column by column).The user can chose among various window types | + | | descr=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= | + | | arguments=<sym: function> <list: parameters> - window function and parameters ['hann']<br> |
| attributes=none | | attributes=none | ||
− | | messages=set - set window | + | | messages=postdoc - post external doc to console<br>set <sym: function> <list: parameters> - set window function and parameters<br> |
− | | inlets= | + | | inlets=1 <fmat|fvec: vector> - input vector to be windowed<br>2 <list: parameters> - set window parameters<br> |
− | | outlets= | + | | outlets=1 <fmat|fvec: vector> - output incoming vector with applied window<br> |
}} | }} | ||
{{Module | | {{Module | | ||
| name=gbr.yin | | name=gbr.yin | ||
− | | brief= | + | | brief=Fundamental frequency estimation after de Cheveigne and Kawahara |
− | | descr= | + | | descr=Estimates fundamental frequency and outputs energy, periodicity factor, and auto correlation coefficients. |
− | | arguments= | + | | arguments=1 <num: min freq> - lowest estimated frequency in Hz [50.]<br>2 - quality/periodicity threshold [0.68]<br> |
− | | attributes=threshold - | + | | attributes=minfreq <num: min freq> - lowest estimated frequency in Hz<br>threshold <num: threshold> - quality/periodicity threshold<br>down <num: factor> - down sampling factor of incoming frames [1]<br> |
− | | messages= | + | | messages=postdoc - post external doc to console<br> |
− | | inlets= | + | | inlets=1 - signal frame (fmat or fvec<br> |
− | | outlets= | + | | 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> |
}} | }} |
Latest revision as of 23:21, 3 May 2009
- gbr.addenv ... Additive synthesis: generate partials with a given envelope
- gbr.addpartials ... Additive synthesis: generate partials with given frequencies and amplitudes
- gbr.autox ... Auto correlation and similar
- gbr.bands ... FFT filter bands
- gbr.bq ... Constant Q
- gbr.copy ... Copy vector (fmat) out of a delay line or an fmat or fvec
- gbr.crossx ... Cross correlation and similar
- gbr.dct ... Discrete cosine transform
- gbr.dline~ ... Classical delay line
- gbr.drain~ ... Forward delay line
- gbr.fft ... Fast Fourier transform
- gbr.fire~ ... Gabor timing impulse generator
- gbr.gen= ... Generate waveform/function
- gbr.harms ... Estimate harmonics from a given spectrum (or any other vector)
- gbr.ifft ... Inverse fast Fourier transform
- gbr.lifter ... Cepstral liftering
- gbr.lpc ... Linear prediction coefficients
- gbr.mask ... Partial masking using critical band width
- gbr.morph ... Partials sets interpolation
- gbr.ola~ ... Overlap-add
- gbr.paste ... Paste a grain (fmat or fvec) into a drain
- gbr.peaks ... Estimate peaks (partials) from a given spectrum (or any other vector)
- gbr.preemphasis ... Simple first order difference filter
- gbr.psy~ ... Pitch synchronous (YIN-based) signal slicing
- gbr.resample ... Resampling
- gbr.schedule~ ... Delay/scheduler respecting Gabor timing
- gbr.slice~ ... Signal slicing
- gbr.tapin~ ... Input tap for write delay line
- gbr.tapout~ ... Output tap for read delay line
- gbr.timer~ ... Gabor timer
- gbr.trace ... Trace and index peaks
- gbr.wind= ... Apply a window to an incoming frame, grain or wave
- gbr.yin ... Fundamental frequency estimation after de Cheveigne and Kawahara
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. | ||||||||||||
|
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. | ||||||||||||
|
gbr.autox | Auto correlation and similar | |||||||||||
Calculates autocorrelation, distance, quadratic distance, sum magnitude difference function and accumulated difference function (yin). | ||||||||||||
|
gbr.bands | FFT filter bands | |||||||||||
Calculate filter bands from FFT spectrum. | ||||||||||||
|
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). | ||||||||||||
|
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 | ||||||||||||
|
gbr.crossx | Cross correlation and similar | |||||||||||
Calculates correlation, distance, quadratic distance and sum magnitude difference function. | ||||||||||||
|
gbr.dct | Discrete cosine transform | |||||||||||
Calculates a DCT of the incoming vector. | ||||||||||||
|
gbr.dline~ | Classical delay line | |||||||||||
Delay line to be used with gbr.copy and gbr.tapout~. | ||||||||||||
|
gbr.drain~ | Forward delay line | |||||||||||
Delay line to write with different delays to be used with gbr.paste and gbr.tapin~. | ||||||||||||
|
gbr.fft | Fast Fourier transform | |||||||||||
Calculates FFT on incoming vector. | ||||||||||||
|
gbr.fire~ | Gabor timing impulse generator | |||||||||||
Periodically outputs a given fmat or a bang within the Gabor scheduling scheme. | ||||||||||||
|
gbr.gen= | Generate waveform/function | |||||||||||
Adds a given (and parametrised) waveform/function to an incomming vector. The user can chose among various waveforms/functions | ||||||||||||
|
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. | ||||||||||||
|
gbr.ifft | Inverse fast Fourier transform | |||||||||||
Calculates inverse FFT on incoming vector. | ||||||||||||
|
gbr.lifter | Cepstral liftering | |||||||||||
Cepstral liftering (HTK and Auditory Toolbox styles) | ||||||||||||
|
gbr.lpc | Linear prediction coefficients | |||||||||||
Calculates LPC coefficients from incoming sinal frame. | ||||||||||||
|
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. | ||||||||||||
|
gbr.morph | Partials sets interpolation | |||||||||||
Partials sets interpolation using indexes, frequencies and amplitudes | ||||||||||||
|
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. | ||||||||||||
|
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. | ||||||||||||
|
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. | ||||||||||||
|
gbr.preemphasis | Simple first order difference filter | |||||||||||
Simple first order difference filter | ||||||||||||
|
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. | ||||||||||||
|
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) | ||||||||||||
|
gbr.schedule~ | Delay/scheduler respecting Gabor timing | |||||||||||
Schedules matrices or bangs with given delay time. | ||||||||||||
|
gbr.slice~ | Signal slicing | |||||||||||
Cuts incoming signal into frames of given size with given period (hop size). | ||||||||||||
|
gbr.tapin~ | Input tap for write delay line | |||||||||||
Simple input tap for write delay line defined by gbr.dline~. | ||||||||||||
|
gbr.tapout~ | Output tap for read delay line | |||||||||||
Simple output tap for read delay line defined by gbr.drain~. | ||||||||||||
|
gbr.timer~ | Gabor timer | |||||||||||
stop watch in Gabor scheduling scheme | ||||||||||||
|
gbr.trace | Trace and index peaks | |||||||||||
Trace peaks from frame to frame to associate indexes to the peaks | ||||||||||||
|
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). | ||||||||||||
|
gbr.yin | Fundamental frequency estimation after de Cheveigne and Kawahara | |||||||||||
Estimates fundamental frequency and outputs energy, periodicity factor, and auto correlation coefficients. | ||||||||||||
|