From ftm
Jump to: navigation, search
 
(36 intermediate revisions by 2 users not shown)
Line 1: Line 1:
FTM is a shared library for Max/MSP providing a small and simple real-time object system and optimized services to be used within Max/MSP externals.
+
* [[A brief introduction to FTM]]
 +
* [[Credits]]
  
The main purpose of FTM is the representation and processing of sound, music and motion capture data in Max/MSP extending the data types processed and exchanged by the Max/MSP objects.
+
== Publications ==
  
FTM is based on the FTS server of the jMax project and distributed under the Lesser GNU Public License (LGPL).
+
{{:FTM Publications}}
  
The sources of FTM are available via [[http://sourceforge.net/projects/ftm/ CVS at SourceForge.net]]
+
== ... concerning FTM packages ==
 
+
{{:Gabor Publications}}
----
+
{{:MnM Publications}}
 
 
== Data Structures ==
 
 
 
FTM allows for static and dynamic creation of complex data structures. The following classes are currently implemented and documented:
 
 
 
{|
 
| align="right" | '''''mat'''''
 
| width="24" align="center" | ...
 
| matrix of arbitrary values
 
|-
 
| align="right" | '''''dict'''''
 
| width="24" align="center" | ...
 
| dictionary of arbitrary key/value pairs
 
|-
 
| align="right" | '''''track'''''
 
| width="24" align="center" | ...
 
| sequence of time-tagged values
 
|-
 
| align="right" | '''''fmat'''''
 
| width="24" align="center" | ...
 
| matrix of floats
 
|-
 
| align="right" | '''''bpf'''''
 
| width="24" align="center" | ...
 
| break point function
 
|-
 
| align="right" | '''''tuple'''''
 
| width="24" align="center" | ...
 
| immutable array of arbitrary values
 
|-
 
| align="right" | '''''scoob'''''
 
| width="24" align="center" | ...
 
| score object (note, trill, rest, etc.)
 
|-
 
| align="right" | '''''midi'''''
 
| width="24" align="center" | ...
 
| midi event
 
|}
 
 
 
FTM objects can contain references to other FTM objects. A simple garbage collector handles transparently the destruction of dynamically created FTM objects referenced by multiple elements of a patch.
 
 
 
Static FTM objects are created in a patcher using a dedicated Max/MSP external called ftm.object.
 
They can be named within a local or global scope and marked persistent to be saved within the patcher. FTM provides a serialization mechanism to recursively save the content of objects and the contained objects.
 
 
 
[[Image:About.ftm.object.gif|frame|example of a static FTM object in a Max/MSP patcher]]
 
 
 
FTM externals can refer to FTM objects and dynamically create objects. FTM objects can be sent in lists or as single values using a dedicated FTM object message.
 
 
 
While basic operations of FTM objects are implemented as methods of the FTM classes, more complex interactions with FTM objects use operators in form of Max/MSP externals.
 
 
 
----
 
 
 
== Operators ==
 
 
 
FTM comes with an extended message box - the ftm.mess external - which integrates classical Max message syntax with FTM names, infix expression evaluation, function calls and method invocation including return values.
 
 
 
[[Image:About.ftm.mess.gif|frame|examples of the FTM message box]]
 
 
 
Apart from ftm.object and ftm.mess, FTM includes a set of externals implementing basic functionalities such as iteration, playing, interpolation, etc. and the conversion between FTM objects and Max values or lists.
 
 
 
[[Image:About.ftm.mess.gif|frame|operating on FTM objects (the MIDI parsing objects convert a MIDI byte stream into a stream of FTM MIDI events)]]
 
 
 
Operators specific to a certain field of applications are assembled to separate object sets such as Gabor for sound analysis/resynthesis and MnM for mapping and recognition techniques.
 
 
 
----
 

Latest revision as of 09:36, 6 June 2007

Publications

... concerning FTM packages