FTM Modules

From ftm

  • 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