|
|
(37 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]]
| |