From ftm
Jump to: navigation, search
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
* ftm.absargs ... Access to FTM objects and values given as arguments of a abstraction or bpatcher.
 +
* ftm.buffer ... Interfacing buffer~ with an FTM fmat object.
 +
* ftm.clone ... Clone FTM objects
 +
* ftm.copy ... Copy FTM objects
 +
* ftm.editor ... Editor for FTM objects
 +
* ftm.inter ... Interpolate between two FTM fmat objects
 +
* ftm.iter ... Interate on an FTM object
 +
* ftm.jitter ... Copy FTM fmat object into Jitter matrices and vice versa.
 +
* ftm.list ... Transform into standard lists
 +
* ftm.mess ... Extended FTM message box
 +
* ftm.midiparse ... Create FTM (midi)event object from a MIDI stream.
 +
* ftm.midiunparse ... Transform FTM midi(event) objects into a MIDI stream.
 +
* ftm.object ... Definition of static named FTM objects, constants and variables
 +
* ftm.play ... Plays an FTM sequence
 +
* ftm.print ... Print to the console
 +
* ftm.record ... Record an incomming stream into an FTM sequence
 +
* ftm.schedule ... Schedule incoming values, lists and messages to be output in the future
 +
* ftm.tween ... Output successive values of an FTM sequence
 +
* ftm.value ... Store a single value
 +
* ftm.vecdisplay ... FTM vector display
 +
  
 
{{Module |  
 
{{Module |  
 
   | name=ftm.absargs
 
   | name=ftm.absargs
   | brief=
+
   | brief=Access to FTM objects and values given as arguments of a abstraction or bpatcher.
   | descr=
+
   | descr=Similar to patcherargs this module allows for accessing the arguments of a abstraction or bpatcher.It also evaluates FTM expressions given as arguments of an abstraction.
 
   | arguments=none
 
   | arguments=none
 
   | attributes=none
 
   | attributes=none
   | messages=bang - output abstraction arguments and attributes<br>
+
   | messages=postdoc - post external doc to console<br>bang - output abstraction arguments and attributes<br>
 
   | inlets=none
 
   | inlets=none
   | outlets=0 - name of the abstraction<br>1 - list of abstraction arguments<br>2 - dump attributes as attribute/value pairs (one list for each attribute)<br>
+
   | outlets=1 - name of the abstraction<br>2 - list of abstraction arguments<br>3 - dump attributes as attribute/value pairs (one list for each attribute)<br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
 
   | name=ftm.buffer
 
   | name=ftm.buffer
   | brief=
+
   | brief=Interfacing buffer~ with an FTM fmat object.
   | descr=
+
   | descr=The module can be used in the same way buffer~ (with groove~etc.), but also defines an FTM fmat interface for the same memory space.
   | arguments=initialization arguments<br>
+
   | arguments=initialisation arguments<br>
 
   | attributes=none
 
   | attributes=none
   | messages=
+
   | messages=postdoc - post external doc to console<br>#name - buffer~ name<br>
 
   | inlets=none
 
   | inlets=none
   | outlets=0 - output (reference to) fmat<br>
+
   | outlets=1 - output (reference to) fmat<br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
   | name=ftm.copy
+
   | name=ftm.clone
   | brief=
+
   | brief=Clone FTM objects
   | descr=
+
   | descr=Creates and outputs a new instance of the same class and content from an incoming object.
   | arguments=init class by name (optionally) and copy destination<br>
+
   | arguments=none
 
   | attributes=none
 
   | attributes=none
   | messages=set - set copy destination<br>
+
   | messages=postdoc - post external doc to console<br>
   | inlets=0 - FTM object to copy<br>1 - set copy destination<br>
+
   | inlets=1 - FTM object reference (original)<br>
   | outlets=0 - output (reference to) copy destination<br>
+
   | outlets=1 - FTM object reference (clone)<br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
   | name=ftm.ex~
+
   | name=ftm.copy
   | brief=
+
   | brief=Copy FTM objects
   | descr=
+
   | descr=Outputs a reference to a copy of an incoming FTM object.The output destination object and/or class can be specified.
   | arguments=0 - period<br>
+
   | arguments=init class by name (optionally) and copy destination<br>
   | attributes=period - period<br>
+
   | attributes=none
   | messages=period - period<br>
+
   | messages=postdoc - post external doc to console<br>set - set copy destination<br>
   | inlets=0 - input signal<br>
+
   | inlets=1 - FTM object to copy<br>2 - set copy destination<br>
   | outlets=0 - output signal low<br>1 - output signal high<br>2 - bang for each transition<br>
+
   | outlets=1 - output (reference to) copy destination<br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
   | name=ftm.guilistener
+
   | name=ftm.editor
   | brief=
+
   | brief=Editor for FTM objects
   | descr=
+
   | descr=This editor gives the possibility to visualize and graphically interact with the content of FTM objects.
   | arguments=initialize guiobj in guilistener<br>
+
   | arguments=none
 
   | attributes=none
 
   | attributes=none
   | messages=none
+
   | messages=postdoc - post external doc to console<br>set - set content from list of objects and interfaces<br>get - get properties by name<br>interfaces - set content from list of interfaces<br>persistence - set/unset persistence<br>infopanel - show/hide info panel<br>ruler - show/hide ruler<br>layout - set layout (superposed/juxtaposed)<br>split - set split bars properties<br>orientation - set orientation (horizontal/vertical)<br>bgcolor - set editor background color<br>foremost - set foremost editor by index<br>view - set n-th view properties<br>domain - set domain<br>cursor - set cursor properties<br>region - set region selction properties<br>dscroll - set dscroll properties<br>opacity - set opacity<br>autoupdate - set autoupdate on/off<br>tabs - set tabs properties<br>tool - set current tool by name<br>windresize - set editor size proportional (or not) to window size<br>clear - clear content<br>forceredraw - force redraw (usefull with autoupdate off)<br>state - get state<br>
 
   | inlets=none
 
   | inlets=none
   | outlets=0 - output gui interactions as list:  <name, values ... ><br>
+
   | outlets=1 - ftm.editor outlet<br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
 
   | name=ftm.inter
 
   | name=ftm.inter
   | brief=
+
   | brief=Interpolate between two FTM fmat objects
   | descr=
+
   | descr=The module fills and outputs a matrix with interpolated values of two input matrices.
   | arguments=0 - fmat of values corresponding to the interpolation factor 0<br>1 - fmat of values corresponding to the interpolation factor 1<br>
+
   | arguments=1 - fmat of values corresponding to the interpolation factor 0<br>2 - fmat of values corresponding to the interpolation factor 1<br>
 
   | attributes=out - set output fmat<br>
 
   | attributes=out - set output fmat<br>
   | messages=out - set output fmat<br>
+
   | messages=postdoc - post external doc to console<br>
   | inlets=0 - interpolation factor (fraction between 0 and 1)<br>1 - fmat of values corresponding to the interpolation factor 0<br>2 - fmat of values corresponding to the interpolation factor 1<br>
+
   | inlets=1 - interpolation factor (fraction between 0 and 1)<br>2 - fmat of values corresponding to the interpolation factor 0<br>3 - fmat of values corresponding to the interpolation factor 1<br>
   | outlets=0 - interpolated FTM fmat object containing interpolated values<br>
+
   | outlets=1 - interpolated FTM fmat object containing interpolated values<br>
 +
}}
 +
 
 +
{{Module |
 +
  | name=ftm.iter
 +
  | brief=Interate on an FTM object
 +
  | descr=The module outputs the values and indices/keys of an incoming FTM object.The elements are output sequencially without any delay (in the same logical time).
 +
  | arguments=none
 +
  | attributes=mode - set iterator mode<br>
 +
  | messages=postdoc - post external doc to console<br>
 +
  | inlets=1 - Input FTM object reference<br>
 +
  | outlets=1 - Output element<br>2 - Output index, time tag, key ...<br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
 
   | name=ftm.jitter
 
   | name=ftm.jitter
   | brief=
+
   | brief=Copy FTM fmat object into Jitter matrices and vice versa.
   | descr=
+
   | descr=The module serves as a bridge between FTM and Jitter.
 
   | arguments=define target (FTM or Jitter object)<br>
 
   | arguments=define target (FTM or Jitter object)<br>
 
   | attributes=plane - define plane to copy outof Jitter matrix<br>
 
   | attributes=plane - define plane to copy outof Jitter matrix<br>
   | messages=plane - define plane to copy outof Jitter matrix<br>
+
   | messages=postdoc - post external doc to console<br>
   | inlets=0 - FTM or Jitter object to be copied to target<br>1 - set target Jitter or FTM object<br>
+
   | inlets=1 - FTM or Jitter object to be copied to target<br>2 - set target Jitter or FTM object<br>
   | outlets=0 - output target object<br>
+
   | outlets=1 - output target object<br>
 +
}}
 +
 
 +
{{Module |
 +
  | name=ftm.list
 +
  | brief=Transform into standard lists
 +
  | descr=The module transforms any incoming FTM object into a list of values at the output.
 +
  | arguments=none
 +
  | attributes=mess - <br>
 +
  | messages=postdoc - post external doc to console<br>anything - <br>
 +
  | inlets=1 - <br>
 +
  | outlets=1 - <br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
 
   | name=ftm.mess
 
   | name=ftm.mess
   | brief=
+
   | brief=Extended FTM message box
   | descr=
+
   | descr=The FTM message box allows for composing messages including infix expressions as well as function and method calls of FTM objects. Expressions are only evaluated within parenthesis such as '($1 * $2 + $3)', '(print $*1)' or '($mymat fill 0)'.<br>Multiple messages are separated by comma ','. Using the ';' expressions can be called sequencially without causing output.
 +
  | arguments=none
 +
  | attributes=#triggerall <bool: flag> - all inlets trigger evaluation and output<br>#loadbang <bool: flag> - message box outputs at loadbang<br>#untuple <bool: flag> - single tuples are output as lists<br>
 +
  | messages=postdoc - post external doc to console<br>
 +
  | inlets=1 - input list<br>
 +
  | outlets=1 - message outlet<br>
 +
}}
 +
 
 +
{{Module |
 +
  | name=ftm.midiparse
 +
  | brief=Create FTM (midi)event object from a MIDI stream.
 +
  | descr=The module parses an incoming stream of MIDI bytes and outputs FTM midi(event) objects.
 
   | arguments=none
 
   | arguments=none
 
   | attributes=none
 
   | attributes=none
   | messages= - input message<br>
+
   | messages=postdoc - post external doc to console<br>
   | inlets=0 - input list<br>
+
   | inlets=1 - Input int or list of int to be parsed<br>
   | outlets=0 - message outlet<br>
+
   | outlets=1 - Output midi event reference<br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
   | name=ftm.o
+
   | name=ftm.midiunparse
   | brief=
+
   | brief=Transform FTM midi(event) objects into a MIDI stream.
   | descr=
+
   | descr=The module unparses an incoming stream of FTM midi(event) objects and outputs a stream MIDI bytes.
   | arguments=initialization arguments<br>
+
   | arguments=none
   | attributes=persist - switch FTM object persitence: 'yes' | 'no' (default is 'no')<br>scope - FTM object scope: 'global' | 'local' (default is 'local')<br>name - FTM object name<br>
+
   | attributes=none
   | messages=#load - reload object content to file<br>#save - dump object content to file<br>#close - close FTM object editor<br>#open - open FTM object editor<br>bang - output (reference to) FTM object<br> - messages redirected to FTM object<br>
+
   | messages=postdoc - post external doc to console<br>panic - <br>off - <br>gm - <br>GM - <br>
  | inlets=none
+
  | inlets=1 - Messages or Midi events to be unparsed<br>
   | outlets=0 - (reference to) the FTM object<br>1 - return values of messages send to the FTM object<br>
+
   | outlets=1 - Output list of int<br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
 
   | name=ftm.object
 
   | name=ftm.object
   | brief=
+
   | brief=Definition of static named FTM objects, constants and variables
   | descr=
+
   | descr=This module is used to statically define values and associate them to a name.<br>Names can have either global or local scope. Names with local scope are valid within a patcher file (also abstraction, bpatcher, etc.). This way values in abstractions can have their own local names.<br>FTM objects are defined by a class name and instantiation arguments. Constants are defined by using the keyword "const" followed by value or expression. For numeric values the "const" keyword can be ommited. The "var" keyword followed by a value or expression allows for defining variables.<br>Double-clicking on the definition of an FTM object opens a graphical editor.
 
   | arguments=none
 
   | arguments=none
 
   | attributes=none
 
   | attributes=none
   | messages=bang - output reference<br> - message to object<br>
+
   | messages=postdoc - post external doc to console<br>save - save content as text file<br>load - load from text file<br>export - <br>import - <br>exportas - <br>importas - <br>anything - message to object<br>bang - output reference<br>open - open editor window<br>window - set the bounds of editor window<br>
 
   | inlets=none
 
   | inlets=none
   | outlets=0 - object reference (when bang)<br>1 - method return values<br>
+
   | outlets=1 - object reference (when bang)<br>2 - method return values<br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
 
   | name=ftm.play
 
   | name=ftm.play
   | brief=
+
   | brief=Plays an FTM sequence
   | descr=
+
   | descr=Plays a sequence outputting the sequence elements and time-tags.
   | arguments=initialize sequence and optionally begin, end and speed<br>
+
   | arguments=initialise sequence and optionally begin, end and speed<br>
 
   | attributes=erase - switch whether to successively erase objects from sequence while playing<br>
 
   | attributes=erase - switch whether to successively erase objects from sequence while playing<br>
   | messages=stop - stop playing (resets current position)<br>pause - pause playing<br>start - start playing<br>loop - loop current or optionally given sequence and segment (begin and end)<br>play - play current or optionally given sequence and segment (begin and end)<br>bang - play sequence from beginning<br>next - jump to next event<br>sync - sync to given position<br>locate - locate to given position (stops playing)<br>jump - jump to given position<br>reset - stop and reset playing segment to entire sequence<br>set - set sequence and optionally begin, end and speed<br>duration - set duration of playing segment (sets speed so that the playing segment fits given duration)<br>speed - set playing speed<br>end - set end of playing segment<br>begin - set beginning of playing segment<br>erase - switch whether to successively erase objects from sequence while playing<br>
+
   | messages=postdoc - post external doc to console<br>begin - set beginning of playing segment<br>end - set end of playing segment<br>speed - set playing speed<br>duration - set duration of playing segment (sets speed so that the playing segment fits given duration)<br>set - set sequence and optionally begin, end and speed<br>reset - stop and reset playing segment to entire sequence<br>jump - jump to given position<br>locate - locate to given position (stops playing)<br>sync - sync to given position<br>next - jump to next event<br>bang - play sequence from beginning<br>play - play current or optionally given sequence and segment (begin and end)<br>loop - loop current or optionally given sequence and segment (begin and end)<br>start - start playing<br>pause - pause playing<br>stop - stop playing (resets current position)<br>
   | inlets=0 - message input<br>1 - set beginning of playing segment<br>2 - set end of playing segment<br>3 - set playing speed<br>
+
   | inlets=1 - messages only<br>2 - set beginning of playing segment<br>3 - set end of playing segment<br>4 - set playing speed<br>
   | outlets=0 - events while playing<br>1 - time while playing<br>2 - bang at end of segment or sequence<br>
+
   | outlets=1 - events while playing<br>2 - time while playing<br>3 - bang at end of segment or sequence<br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
 
   | name=ftm.print
 
   | name=ftm.print
   | brief=print to the console
+
   | brief=Print to the console
   | descr=Prints any input (single values, lists, messages) to the console.<br>Evokes print method of FTM objects when incoming as single value.
+
   | descr=Prints any input (single values and FTM objects, lists, messages) to the console.
   | arguments=0 <sym: prompt> - prompt symbol<br>
+
   | arguments=1 <sym: prompt> - prompt symbol<br>
 
   | attributes=none
 
   | attributes=none
   | messages= - - print message or FTM object<br>bang - - print bang<br>
+
   | messages=postdoc - post external doc to console<br>bang - print bang<br>anything - print message or FTM object<br>
   | inlets=0 - [<any: values> ...] - print value or list<br>
+
   | inlets=1 [<any: values> ...] - print value or list<br>
 
   | outlets=none
 
   | outlets=none
 
}}
 
}}
Line 134: Line 188:
 
{{Module |  
 
{{Module |  
 
   | name=ftm.record
 
   | name=ftm.record
   | brief=
+
   | brief=Record an incomming stream into an FTM sequence
   | descr=
+
   | descr=The module records incoming values into an FTM sequence. By default the values are cloned (can be dispabled using the 'clone' attribute).
   | arguments=0 - initialize track to record<br>
+
   | arguments=1 - initialize track to record<br>
   | attributes=mode - select record mode (clear | erase | overdub)<br>clone - switch whether to clone objects before recording<br>
+
   | attributes=clone - switch whether to clone objects before recording<br>mode - select record mode (clear &#124; erase &#124; overdub)<br>
   | messages=set - set track to record<br>stop - stop recording (resets current position)<br>pause - pause recording<br>start - start recording<br>locate - jump to given position (default 0.)<br>mode - select record mode (clear | erase | overdub)<br>clone - switch whether to clone objects before recording<br>
+
   | messages=postdoc - post external doc to console<br>locate - jump to given position (default 0.)<br>start - start recording<br>pause - pause recording<br>stop - stop recording (resets current position)<br>set - set track to record<br>
   | inlets=0 - value to record (has to match track type)<br>
+
   | inlets=1 - value to record (has to match track type)<br>
   | outlets=0 - current recording time<br>
+
   | outlets=1 - current recording time<br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
   | name=ftm.sdif.info
+
   | name=ftm.schedule
   | brief=
+
   | brief=Schedule incoming values, lists and messages to be output in the future
   | descr=
+
   | descr=The module schedules incoming values, lists and messages to be output after a delay time given as second element or in the right inlet.If 'list' mode is enabled (attribute 'mode'), any value, list or message sent in the left inlet is scheduled to be output after a delay time given via the right inlet.
   | arguments=0 - default file name<br>1 - outinfo [mat]: set mat to receive content summary info<br>2 - outnvt [dict]: set dict to receive header name-value tables<br>
+
   | arguments=none
   | attributes=outnvt - outnvt [dict]: set dict to receive header name-value tables<br>outinfo - outinfo [mat]: set mat to receive content summary info<br>
+
   | attributes=mode - mode <&#039;list&#039;&#124;&#039;nolist&#039;> - allow list input and output, default &#039;nolist&#039; (second argument as delay).<br>
   | messages=print - print [filename]: print info of last file to console<br>bang - get info of last file<br>get - get [filename] [matrixref]: get info<br>set - set <filename> [matrixref]: set file name to get info of<br>outnvt - outnvt [dict]: set dict to receive header name-value tables<br>outinfo - outinfo [mat]: set mat to receive content summary info<br>
+
   | messages=postdoc - post external doc to console<br>clear - clear scheduler (suppress all pending messages)<br>anything - schedule a message<br>bang - schedule a bang<br>
  | inlets=none
+
  | inlets=1 - schedule an arbitrary value<br>2 - set schedule delay<br>
   | outlets=0 - duration of SDIF file in milliseconds<br>1 - summary of data in SDIF file in an FTM mat object, one line per occuring SDIF matrix<br>2 - NVT (Name-Value Table) header information in an FTM dict of dicts<br>
+
   | outlets=1 - output scheduled values and messages<br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
   | name=ftm.sdif.write
+
   | name=ftm.tween
   | brief=
+
   | brief=Output successive values of an FTM sequence
   | descr=
+
   | descr=The module schedules incoming values, lists and messages to be output after a delay time given as second element or in the right inlet.If 'list' mode is enabled (attribute 'mode'), any value, list or message sent in the left inlet is scheduled to be output after a delay time given via the right inlet.
   | arguments=none
+
   | arguments=1 - initialize sequence<br>
 
   | attributes=none
 
   | attributes=none
   | messages=close - stop writing and close file<br>stop - stop writing and close file<br>record - open, rewind, truncate file and write the header<br>start - open, rewind, truncate file and write the header<br>bang - open, rewind, truncate file and write the header<br>write - write <time> <list>: write list values into separate frames at given time.  If values are tracks, write track data interleaved, offset by time.<br>nvt - nvt <dict> | nvt <name> <value> ...: add nvt info from dict or from list of name--value pairs<br>define - define <typedef>: add sdif description types in string typedef<br>open - open [filename] [framespec]: store filename and matrix selection for output data, open file<br>
+
   | messages=postdoc - post external doc to console<br>next - jump to the position of the next value<br>prev - jump to the position of the previous value<br>
  | inlets=0 - each inlet receives an element or tuple of data (int, float, symbol, fvec, fmat) and writes it to an SDIF frame<br>
+
  | inlets=1 - position in sequence<br>2 - set sequence<br>
  | outlets=none
+
  | outlets=1 - factor corresponding to the position between sucessive values in the sequence (fraction between 0 and 1)<br>2 - value at or right before the given position<br>3 - value right after the given position<br>4 - distance (time in msec) between the values at or before and after the given position<br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
   | name=ftm.tween
+
   | name=ftm.value
   | brief=
+
   | brief=Store a single value
   | descr=
+
   | descr=The left inlet of the modules stores and outputs an incoming value. The right inlet only stores the value.A bang to the left inlet outputs the currently stored value or FTM object reference.
   | arguments=0 - initialize sequence<br>
+
   | arguments=1 - initialize value<br>
 
   | attributes=none
 
   | attributes=none
   | messages=prev - jump to the position of the previous value<br>next - jump to the position of the next value<br>
+
   | messages=postdoc - post external doc to console<br>bang - output current value<br>
   | inlets=0 - position in sequence<br>1 - set sequence<br>
+
   | inlets=1 - value to be stored<br>
   | outlets=0 - factor corresponding to the position between sucessive values in the sequence (fraction between 0 and 1)<br>1 - value at or right before the given position<br>2 - value right after the given position<br>3 - distance (time in msec) between the values at or before and after the given position<br>
+
   | outlets=1 - current value<br>
 
}}
 
}}
  
 
{{Module |  
 
{{Module |  
   | name=ftm.value
+
   | name=ftm.vecdisplay
   | brief=
+
   | brief=FTM vector display
   | descr=
+
   | descr=This modules displays incoming vectors and matrices. Double-clicking on the display opens and closes the history view that visualises the incoming vectors in a vertical scrolling window.
   | arguments=0 - initialize value<br>
+
   | arguments=none
 
   | attributes=none
 
   | attributes=none
   | messages=bang - output current value<br>
+
   | messages=postdoc - post external doc to console<br>bang - <br>open - open history<br>minval - <br>maxval - <br>view - <br>incolor - <br>
   | inlets=0 - value to be stored and output<br>1 - value to be stored (without output)<br>
+
   | inlets=1 - Input fmat, fvec, frow, fcol and list of float<br>2 - Input fmat, fvec, frow, fcol and list of float<br>3 - Input fmat, fvec, frow, fcol and list of float<br>4 - Input fmat, fvec, frow, fcol and list of float<br>5 - Input fmat, fvec, frow, fcol and list of float<br>
   | outlets=0 - current value<br>
+
   | outlets=1 - outlet index<br>2 - outlet x<br>3 - outlet y<br>4 - outlet time<br>5 - outlet cursor_x<br>6 - outlet cursor_y<br>
 
}}
 
}}

Latest revision as of 00:09, 22 May 2009

  • ftm.absargs ... Access to FTM objects and values given as arguments of a abstraction or bpatcher.
  • ftm.buffer ... Interfacing buffer~ with an FTM fmat object.
  • ftm.clone ... Clone FTM objects
  • ftm.copy ... Copy FTM objects
  • ftm.editor ... Editor for FTM objects
  • ftm.inter ... Interpolate between two FTM fmat objects
  • ftm.iter ... Interate on an FTM object
  • ftm.jitter ... Copy FTM fmat object into Jitter matrices and vice versa.
  • ftm.list ... Transform into standard lists
  • ftm.mess ... Extended FTM message box
  • ftm.midiparse ... Create FTM (midi)event object from a MIDI stream.
  • ftm.midiunparse ... Transform FTM midi(event) objects into a MIDI stream.
  • ftm.object ... Definition of static named FTM objects, constants and variables
  • ftm.play ... Plays an FTM sequence
  • ftm.print ... Print to the console
  • ftm.record ... Record an incomming stream into an FTM sequence
  • ftm.schedule ... Schedule incoming values, lists and messages to be output in the future
  • ftm.tween ... Output successive values of an FTM sequence
  • ftm.value ... Store a single value
  • ftm.vecdisplay ... FTM vector display



ftm.absargs Access to FTM objects and values given as arguments of a abstraction or bpatcher.
Similar to patcherargs this module allows for accessing the arguments of a abstraction or bpatcher.It also evaluates FTM expressions given as arguments of an abstraction.
arguments: none
attributes: none
messages: postdoc - post external doc to console
bang - output abstraction arguments and attributes
inlets: none
outlets: 1 - name of the abstraction
2 - list of abstraction arguments
3 - dump attributes as attribute/value pairs (one list for each attribute)

ftm.buffer Interfacing buffer~ with an FTM fmat object.
The module can be used in the same way buffer~ (with groove~etc.), but also defines an FTM fmat interface for the same memory space.
arguments: initialisation arguments
attributes: none
messages: postdoc - post external doc to console
#name - buffer~ name
inlets: none
outlets: 1 - output (reference to) fmat

ftm.clone Clone FTM objects
Creates and outputs a new instance of the same class and content from an incoming object.
arguments: none
attributes: none
messages: postdoc - post external doc to console
inlets: 1 - FTM object reference (original)
outlets: 1 - FTM object reference (clone)

ftm.copy Copy FTM objects
Outputs a reference to a copy of an incoming FTM object.The output destination object and/or class can be specified.
arguments: init class by name (optionally) and copy destination
attributes: none
messages: postdoc - post external doc to console
set - set copy destination
inlets: 1 - FTM object to copy
2 - set copy destination
outlets: 1 - output (reference to) copy destination

ftm.editor Editor for FTM objects
This editor gives the possibility to visualize and graphically interact with the content of FTM objects.
arguments: none
attributes: none
messages: postdoc - post external doc to console
set - set content from list of objects and interfaces
get - get properties by name
interfaces - set content from list of interfaces
persistence - set/unset persistence
infopanel - show/hide info panel
ruler - show/hide ruler
layout - set layout (superposed/juxtaposed)
split - set split bars properties
orientation - set orientation (horizontal/vertical)
bgcolor - set editor background color
foremost - set foremost editor by index
view - set n-th view properties
domain - set domain
cursor - set cursor properties
region - set region selction properties
dscroll - set dscroll properties
opacity - set opacity
autoupdate - set autoupdate on/off
tabs - set tabs properties
tool - set current tool by name
windresize - set editor size proportional (or not) to window size
clear - clear content
forceredraw - force redraw (usefull with autoupdate off)
state - get state
inlets: none
outlets: 1 - ftm.editor outlet

ftm.inter Interpolate between two FTM fmat objects
The module fills and outputs a matrix with interpolated values of two input matrices.
arguments: 1 - fmat of values corresponding to the interpolation factor 0
2 - fmat of values corresponding to the interpolation factor 1
attributes: out - set output fmat
messages: postdoc - post external doc to console
inlets: 1 - interpolation factor (fraction between 0 and 1)
2 - fmat of values corresponding to the interpolation factor 0
3 - fmat of values corresponding to the interpolation factor 1
outlets: 1 - interpolated FTM fmat object containing interpolated values

ftm.iter Interate on an FTM object
The module outputs the values and indices/keys of an incoming FTM object.The elements are output sequencially without any delay (in the same logical time).
arguments: none
attributes: mode - set iterator mode
messages: postdoc - post external doc to console
inlets: 1 - Input FTM object reference
outlets: 1 - Output element
2 - Output index, time tag, key ...

ftm.jitter Copy FTM fmat object into Jitter matrices and vice versa.
The module serves as a bridge between FTM and Jitter.
arguments: define target (FTM or Jitter object)
attributes: plane - define plane to copy outof Jitter matrix
messages: postdoc - post external doc to console
inlets: 1 - FTM or Jitter object to be copied to target
2 - set target Jitter or FTM object
outlets: 1 - output target object

ftm.list Transform into standard lists
The module transforms any incoming FTM object into a list of values at the output.
arguments: none
attributes: mess -
messages: postdoc - post external doc to console
anything -
inlets: 1 -
outlets: 1 -

ftm.mess Extended FTM message box
The FTM message box allows for composing messages including infix expressions as well as function and method calls of FTM objects. Expressions are only evaluated within parenthesis such as '($1 * $2 + $3)', '(print $*1)' or '($mymat fill 0)'.
Multiple messages are separated by comma ','. Using the ';' expressions can be called sequencially without causing output.
arguments: none
attributes: #triggerall <bool: flag> - all inlets trigger evaluation and output
#loadbang <bool: flag> - message box outputs at loadbang
#untuple <bool: flag> - single tuples are output as lists
messages: postdoc - post external doc to console
inlets: 1 - input list
outlets: 1 - message outlet

ftm.midiparse Create FTM (midi)event object from a MIDI stream.
The module parses an incoming stream of MIDI bytes and outputs FTM midi(event) objects.
arguments: none
attributes: none
messages: postdoc - post external doc to console
inlets: 1 - Input int or list of int to be parsed
outlets: 1 - Output midi event reference

ftm.midiunparse Transform FTM midi(event) objects into a MIDI stream.
The module unparses an incoming stream of FTM midi(event) objects and outputs a stream MIDI bytes.
arguments: none
attributes: none
messages: postdoc - post external doc to console
panic -
off -
gm -
GM -
inlets: 1 - Messages or Midi events to be unparsed
outlets: 1 - Output list of int

ftm.object Definition of static named FTM objects, constants and variables
This module is used to statically define values and associate them to a name.
Names can have either global or local scope. Names with local scope are valid within a patcher file (also abstraction, bpatcher, etc.). This way values in abstractions can have their own local names.
FTM objects are defined by a class name and instantiation arguments. Constants are defined by using the keyword "const" followed by value or expression. For numeric values the "const" keyword can be ommited. The "var" keyword followed by a value or expression allows for defining variables.
Double-clicking on the definition of an FTM object opens a graphical editor.
arguments: none
attributes: none
messages: postdoc - post external doc to console
save - save content as text file
load - load from text file
export -
import -
exportas -
importas -
anything - message to object
bang - output reference
open - open editor window
window - set the bounds of editor window
inlets: none
outlets: 1 - object reference (when bang)
2 - method return values

ftm.play Plays an FTM sequence
Plays a sequence outputting the sequence elements and time-tags.
arguments: initialise sequence and optionally begin, end and speed
attributes: erase - switch whether to successively erase objects from sequence while playing
messages: postdoc - post external doc to console
begin - set beginning of playing segment
end - set end of playing segment
speed - set playing speed
duration - set duration of playing segment (sets speed so that the playing segment fits given duration)
set - set sequence and optionally begin, end and speed
reset - stop and reset playing segment to entire sequence
jump - jump to given position
locate - locate to given position (stops playing)
sync - sync to given position
next - jump to next event
bang - play sequence from beginning
play - play current or optionally given sequence and segment (begin and end)
loop - loop current or optionally given sequence and segment (begin and end)
start - start playing
pause - pause playing
stop - stop playing (resets current position)
inlets: 1 - messages only
2 - set beginning of playing segment
3 - set end of playing segment
4 - set playing speed
outlets: 1 - events while playing
2 - time while playing
3 - bang at end of segment or sequence

ftm.print Print to the console
Prints any input (single values and FTM objects, lists, messages) to the console.
arguments: 1 <sym: prompt> - prompt symbol
attributes: none
messages: postdoc - post external doc to console
bang - print bang
anything - print message or FTM object
inlets: 1 [<any: values> ...] - print value or list
outlets: none

ftm.record Record an incomming stream into an FTM sequence
The module records incoming values into an FTM sequence. By default the values are cloned (can be dispabled using the 'clone' attribute).
arguments: 1 - initialize track to record
attributes: clone - switch whether to clone objects before recording
mode - select record mode (clear | erase | overdub)
messages: postdoc - post external doc to console
locate - jump to given position (default 0.)
start - start recording
pause - pause recording
stop - stop recording (resets current position)
set - set track to record
inlets: 1 - value to record (has to match track type)
outlets: 1 - current recording time

ftm.schedule Schedule incoming values, lists and messages to be output in the future
The module schedules incoming values, lists and messages to be output after a delay time given as second element or in the right inlet.If 'list' mode is enabled (attribute 'mode'), any value, list or message sent in the left inlet is scheduled to be output after a delay time given via the right inlet.
arguments: none
attributes: mode - mode <'list'|'nolist'> - allow list input and output, default 'nolist' (second argument as delay).
messages: postdoc - post external doc to console
clear - clear scheduler (suppress all pending messages)
anything - schedule a message
bang - schedule a bang
inlets: 1 - schedule an arbitrary value
2 - set schedule delay
outlets: 1 - output scheduled values and messages

ftm.tween Output successive values of an FTM sequence
The module schedules incoming values, lists and messages to be output after a delay time given as second element or in the right inlet.If 'list' mode is enabled (attribute 'mode'), any value, list or message sent in the left inlet is scheduled to be output after a delay time given via the right inlet.
arguments: 1 - initialize sequence
attributes: none
messages: postdoc - post external doc to console
next - jump to the position of the next value
prev - jump to the position of the previous value
inlets: 1 - position in sequence
2 - set sequence
outlets: 1 - factor corresponding to the position between sucessive values in the sequence (fraction between 0 and 1)
2 - value at or right before the given position
3 - value right after the given position
4 - distance (time in msec) between the values at or before and after the given position

ftm.value Store a single value
The left inlet of the modules stores and outputs an incoming value. The right inlet only stores the value.A bang to the left inlet outputs the currently stored value or FTM object reference.
arguments: 1 - initialize value
attributes: none
messages: postdoc - post external doc to console
bang - output current value
inlets: 1 - value to be stored
outlets: 1 - current value

ftm.vecdisplay FTM vector display
This modules displays incoming vectors and matrices. Double-clicking on the display opens and closes the history view that visualises the incoming vectors in a vertical scrolling window.
arguments: none
attributes: none
messages: postdoc - post external doc to console
bang -
open - open history
minval -
maxval -
view -
incolor -
inlets: 1 - Input fmat, fvec, frow, fcol and list of float
2 - Input fmat, fvec, frow, fcol and list of float
3 - Input fmat, fvec, frow, fcol and list of float
4 - Input fmat, fvec, frow, fcol and list of float
5 - Input fmat, fvec, frow, fcol and list of float
outlets: 1 - outlet index
2 - outlet x
3 - outlet y
4 - outlet time
5 - outlet cursor_x
6 - outlet cursor_y