Line 49: | Line 49: | ||
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. | 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. | + | 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 | + | [[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. | 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. | ||
Line 58: | Line 59: | ||
---- | ---- | ||
+ | |||
+ | == 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]] |
Revision as of 13:27, 1 December 2006
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.
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.
FTM is based on the FTS server of the jMax project and distributed under the Lesser GNU Public License (LGPL).
The sources of FTM are available via [CVS at SourceForge.net]
Data Structures
FTM allows for static and dynamic creation of complex data structures. The following classes are currently implemented and documented:
mat | ... | matrix of arbitrary values |
dict | ... | dictionary of arbitrary key/value pairs |
track | ... | sequence of time-tagged values |
fmat | ... | matrix of floats |
bpf | ... | break point function |
tuple | ... | immutable array of arbitrary values |
scoob | ... | score object (note, trill, rest, etc.) |
midi | ... | 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.
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.