<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://ftm2.ircam.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tremblap</id>
		<title>ftm - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://ftm2.ircam.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tremblap"/>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php/Special:Contributions/Tremblap"/>
		<updated>2026-05-16T05:34:20Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Description_of_Packages&amp;diff=2827</id>
		<title>Description of Packages</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Description_of_Packages&amp;diff=2827"/>
				<updated>2010-07-06T12:35:35Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: Packages moved to Description of Packages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FTM standard packages (included in the free releases):&lt;br /&gt;
* [[FTM]] ... set of basic functionalities&lt;br /&gt;
* [[Gabor]] ... multi-representation overlap-add signal processing&lt;br /&gt;
* [[MnM]] ... matrix processing and recognition&lt;br /&gt;
&lt;br /&gt;
Additional packages (available via the [http://forumnet.ircam.fr/ IRCAM Forum]):&lt;br /&gt;
* [[Suivi]] ... score following for audio and MIDI peformance input&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Packages&amp;diff=2828</id>
		<title>Packages</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Packages&amp;diff=2828"/>
				<updated>2010-07-06T12:35:35Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: Packages moved to Description of Packages: le titre est plus claire&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Description of Packages]]&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2806</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2806"/>
				<updated>2010-07-05T14:13:48Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class.&lt;br /&gt;
&lt;br /&gt;
== Creation - Elements of the call ==&lt;br /&gt;
&lt;br /&gt;
An EXPRession is a sentence which can be applied to the content of an FMAT or an FVEC. It can be created in an FTM.object (class expr) or in an FTM.message.  In both case, it shares the same syntax: &lt;br /&gt;
&lt;br /&gt;
1_ it starts with expr &lt;br /&gt;
&lt;br /&gt;
2_ it is surrounded by simple quotes ' '&lt;br /&gt;
&lt;br /&gt;
3_ it is then encapsulated within parenthesis (to be executed like all of FTM's code)&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the value 1 is&lt;br /&gt;
&lt;br /&gt;
 expr '(1)'&lt;br /&gt;
&lt;br /&gt;
You can use all the [[List of functions | FTM Functions]] available to create your expression. Moreover, $1, $2, etc will be replaced by values passed to your instance of expr.&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the sinus of its input is&lt;br /&gt;
&lt;br /&gt;
 expr '(sin $1)'&lt;br /&gt;
&lt;br /&gt;
There are two places you can create a new expr instance:&lt;br /&gt;
&lt;br /&gt;
* within a ftm.object&lt;br /&gt;
&lt;br /&gt;
as shown in the ftm.class.expr.maxhelp document. On the left, you put the expression, on the right its name, the latter being the way to call the expression&lt;br /&gt;
&lt;br /&gt;
* within ftm.mess&lt;br /&gt;
&lt;br /&gt;
when it is used as an argument to a method to another object, like in the following example:&lt;br /&gt;
&lt;br /&gt;
 ((new fmat 10 3) fill (new expr '(random 1 3)'))&lt;br /&gt;
&lt;br /&gt;
== Scope of variables ==&lt;br /&gt;
&lt;br /&gt;
In the previous example, you could be tempted to use $1 and $2 to choose the boundaries of the random function within the expressionm but the variables $1 and $2 would not refer to the ftm.mess inputs, but to the expression variables.  We therefore need to pass those variables local to the ftm.mess to our newly created instance of expr by doing the following:&lt;br /&gt;
&lt;br /&gt;
  ((new fmat 10 3) fill (new expr '(random $1 $2)') $1 $2)&lt;br /&gt;
&lt;br /&gt;
== Special Variables ==&lt;br /&gt;
&lt;br /&gt;
Depending of context of use, an expr instance has access to some specific variables&lt;br /&gt;
&lt;br /&gt;
* FMAT&lt;br /&gt;
** Fill&lt;br /&gt;
*** $row&lt;br /&gt;
*** $col&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Apply&lt;br /&gt;
*** $x&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Lookup&lt;br /&gt;
&lt;br /&gt;
** Find&lt;br /&gt;
&lt;br /&gt;
* FVEC&lt;br /&gt;
** Fill&lt;br /&gt;
*** $idx&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Apply&lt;br /&gt;
*** $x&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Lookup&lt;br /&gt;
&lt;br /&gt;
** Find&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2805</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2805"/>
				<updated>2010-07-05T14:13:24Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class.&lt;br /&gt;
&lt;br /&gt;
== Creation - Elements of the call ==&lt;br /&gt;
&lt;br /&gt;
An EXPRession is a sentence which can be applied to the content of an FMAT or an FVEC. It can be created in an FTM.object (class expr) or in an FTM.message.  In both case, it shares the same syntax: &lt;br /&gt;
&lt;br /&gt;
1_ it starts with expr &lt;br /&gt;
&lt;br /&gt;
2_ it is surrounded by simple quotes ' '&lt;br /&gt;
&lt;br /&gt;
3_ it is then encapsulated within parenthesis (to be executed like all of FTM's code)&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the value 1 is&lt;br /&gt;
&lt;br /&gt;
 expr '(1)'&lt;br /&gt;
&lt;br /&gt;
You can use all the [[List of functions | FTM Functions]] available to create your expression. Moreover, $1, $2, etc will be replaced by values passed to your instance of expr.&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the sinus of its input is&lt;br /&gt;
&lt;br /&gt;
 expr '(sin $1)'&lt;br /&gt;
&lt;br /&gt;
There are two places you can create a new expr instance:&lt;br /&gt;
&lt;br /&gt;
* within a ftm.object&lt;br /&gt;
&lt;br /&gt;
as shown in the ftm.class.expr.maxhelp document. On the left, you put the expression, on the right its name, the latter being the way to call the expression&lt;br /&gt;
&lt;br /&gt;
* within ftm.mess&lt;br /&gt;
&lt;br /&gt;
when it is used as an argument to a method to another object, like in the following example:&lt;br /&gt;
&lt;br /&gt;
 ((new fmat 10 3) fill (new expr '(random 1 3)'))&lt;br /&gt;
&lt;br /&gt;
== Scope of variables ==&lt;br /&gt;
&lt;br /&gt;
In the previous example, you could be tempted to use $1 and $2 to choose the boundaries of the random function within the expressionm but the variables $1 and $2 would not refer to the ftm.mess inputs, but to the expression variables.  We therefore need to pass those variables local to the ftm.mess to our newly created instance of expr by doing the following:&lt;br /&gt;
&lt;br /&gt;
((new fmat 10 3) fill (new expr '(random $1 $2)') $1 $2)&lt;br /&gt;
&lt;br /&gt;
== Special Variables ==&lt;br /&gt;
&lt;br /&gt;
Depending of context of use, an expr instance has access to some specific variables&lt;br /&gt;
&lt;br /&gt;
* FMAT&lt;br /&gt;
** Fill&lt;br /&gt;
*** $row&lt;br /&gt;
*** $col&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Apply&lt;br /&gt;
*** $x&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Lookup&lt;br /&gt;
&lt;br /&gt;
** Find&lt;br /&gt;
&lt;br /&gt;
* FVEC&lt;br /&gt;
** Fill&lt;br /&gt;
*** $idx&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Apply&lt;br /&gt;
*** $x&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Lookup&lt;br /&gt;
&lt;br /&gt;
** Find&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2804</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2804"/>
				<updated>2010-07-05T14:12:28Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: /* Special Variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class.&lt;br /&gt;
&lt;br /&gt;
== Creation - Elements of the call ==&lt;br /&gt;
&lt;br /&gt;
An EXPRession is a sentence which can be applied to the content of an FMAT or an FVEC. It can be created in an FTM.object (class expr) or in an FTM.message.  In both case, it shares the same syntax: &lt;br /&gt;
&lt;br /&gt;
1_ it starts with expr &lt;br /&gt;
&lt;br /&gt;
2_ it is surrounded by simple quotes ' '&lt;br /&gt;
&lt;br /&gt;
3_ it is then encapsulated within parenthesis (to be executed like all of FTM's code)&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the value 1 is&lt;br /&gt;
&lt;br /&gt;
 expr '(1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can use all the [[List of functions | FTM Functions]] available to create your expression. Moreover, $1, $2, etc will be replaced by values passed to your instance of expr.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the sinus of its input is&lt;br /&gt;
&lt;br /&gt;
 expr '(sin $1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are two places you can create a new expr instance:&lt;br /&gt;
&lt;br /&gt;
* within a ftm.object&lt;br /&gt;
&lt;br /&gt;
as shown in the ftm.class.expr.maxhelp document. On the left, you put the expression, on the right its name, the latter being the way to call the expression&lt;br /&gt;
&lt;br /&gt;
* within ftm.mess&lt;br /&gt;
&lt;br /&gt;
when it is used as an argument to a method to another object, like in the following example:&lt;br /&gt;
&lt;br /&gt;
 ((new fmat 10 3) fill (new expr '(random 1 3)'))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scope of variables ==&lt;br /&gt;
&lt;br /&gt;
In the previous example, you could be tempted to use $1 and $2 to choose the boundaries of the random function within the expressionm but the variables $1 and $2 would not refer to the ftm.mess inputs, but to the expression variables.  We therefore need to pass those variables local to the ftm.mess to our newly created instance of expr by doing the following:&lt;br /&gt;
&lt;br /&gt;
((new fmat 10 3) fill (new expr '(random $1 $2)') $1 $2)&lt;br /&gt;
&lt;br /&gt;
== Special Variables ==&lt;br /&gt;
&lt;br /&gt;
Depending of context of use, an expr instance has access to some specific variables&lt;br /&gt;
&lt;br /&gt;
* FMAT&lt;br /&gt;
** Fill&lt;br /&gt;
*** $row&lt;br /&gt;
*** $col&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Apply&lt;br /&gt;
*** $x&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Lookup&lt;br /&gt;
&lt;br /&gt;
** Find&lt;br /&gt;
&lt;br /&gt;
* FVEC&lt;br /&gt;
** Fill&lt;br /&gt;
*** $idx&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Apply&lt;br /&gt;
*** $x&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Lookup&lt;br /&gt;
&lt;br /&gt;
** Find&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2803</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2803"/>
				<updated>2010-07-05T14:12:01Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class.&lt;br /&gt;
&lt;br /&gt;
== Creation - Elements of the call ==&lt;br /&gt;
&lt;br /&gt;
An EXPRession is a sentence which can be applied to the content of an FMAT or an FVEC. It can be created in an FTM.object (class expr) or in an FTM.message.  In both case, it shares the same syntax: &lt;br /&gt;
&lt;br /&gt;
1_ it starts with expr &lt;br /&gt;
&lt;br /&gt;
2_ it is surrounded by simple quotes ' '&lt;br /&gt;
&lt;br /&gt;
3_ it is then encapsulated within parenthesis (to be executed like all of FTM's code)&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the value 1 is&lt;br /&gt;
&lt;br /&gt;
 expr '(1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can use all the [[List of functions | FTM Functions]] available to create your expression. Moreover, $1, $2, etc will be replaced by values passed to your instance of expr.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the sinus of its input is&lt;br /&gt;
&lt;br /&gt;
 expr '(sin $1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are two places you can create a new expr instance:&lt;br /&gt;
&lt;br /&gt;
* within a ftm.object&lt;br /&gt;
&lt;br /&gt;
as shown in the ftm.class.expr.maxhelp document. On the left, you put the expression, on the right its name, the latter being the way to call the expression&lt;br /&gt;
&lt;br /&gt;
* within ftm.mess&lt;br /&gt;
&lt;br /&gt;
when it is used as an argument to a method to another object, like in the following example:&lt;br /&gt;
&lt;br /&gt;
 ((new fmat 10 3) fill (new expr '(random 1 3)'))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scope of variables ==&lt;br /&gt;
&lt;br /&gt;
In the previous example, you could be tempted to use $1 and $2 to choose the boundaries of the random function within the expressionm but the variables $1 and $2 would not refer to the ftm.mess inputs, but to the expression variables.  We therefore need to pass those variables local to the ftm.mess to our newly created instance of expr by doing the following:&lt;br /&gt;
&lt;br /&gt;
((new fmat 10 3) fill (new expr '(random $1 $2)') $1 $2)&lt;br /&gt;
&lt;br /&gt;
== Special Variables ==&lt;br /&gt;
&lt;br /&gt;
Depending of context of use, an expr instance has access to some specific variables&lt;br /&gt;
&lt;br /&gt;
* FMAT&lt;br /&gt;
** Fill&lt;br /&gt;
*** $row&lt;br /&gt;
*** $col&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Apply&lt;br /&gt;
*** $x&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Lookup&lt;br /&gt;
&lt;br /&gt;
** Find&lt;br /&gt;
&lt;br /&gt;
* FVEC&lt;br /&gt;
** Fill&lt;br /&gt;
*** $idx&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
** Apply&lt;br /&gt;
*** $x&lt;br /&gt;
*** $self&lt;br /&gt;
&lt;br /&gt;
* Lookup&lt;br /&gt;
&lt;br /&gt;
* Find&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2802</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2802"/>
				<updated>2010-07-05T14:05:54Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class.&lt;br /&gt;
&lt;br /&gt;
== Creation - Elements of the call ==&lt;br /&gt;
&lt;br /&gt;
An EXPRession is a sentence which can be applied to the content of an FMAT or an FVEC. It can be created in an FTM.object (class expr) or in an FTM.message.  In both case, it shares the same syntax: &lt;br /&gt;
&lt;br /&gt;
1_ it starts with expr &lt;br /&gt;
&lt;br /&gt;
2_ it is surrounded by simple quotes ' '&lt;br /&gt;
&lt;br /&gt;
3_ it is then encapsulated within parenthesis (to be executed like all of FTM's code)&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the value 1 is&lt;br /&gt;
&lt;br /&gt;
 expr '(1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can use all the [[List of functions | FTM Functions]] available to create your expression. Moreover, $1, $2, etc will be replaced by values passed to your instance of expr.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the sinus of its input is&lt;br /&gt;
&lt;br /&gt;
 expr '(sin $1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are two places you can create a new expr instance:&lt;br /&gt;
&lt;br /&gt;
* within a ftm.object&lt;br /&gt;
&lt;br /&gt;
as shown in the ftm.class.expr.maxhelp document. On the left, you put the expression, on the right its name, the latter being the way to call the expression&lt;br /&gt;
&lt;br /&gt;
* within ftm.mess&lt;br /&gt;
&lt;br /&gt;
when it is used as an argument to a method to another object, like in the following example:&lt;br /&gt;
&lt;br /&gt;
 ((new fmat 10 3) fill (new expr '(random 1 3)'))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scope of variables ==&lt;br /&gt;
&lt;br /&gt;
In the previous example, you could be tempted to use $1 and $2 to choose the boundaries of the random function within the expressionm but the variables $1 and $2 would not refer to the ftm.mess inputs, but to the expression variables.  We therefore need to pass those variables local to the ftm.mess to our newly created instance of expr by doing the following:&lt;br /&gt;
&lt;br /&gt;
((new fmat 10 3) fill (new expr '(random $1 $2)') $1 $2)&lt;br /&gt;
&lt;br /&gt;
== Special Variables ==&lt;br /&gt;
&lt;br /&gt;
Depending of context of use, an expr instance has access to some specific variables&lt;br /&gt;
&lt;br /&gt;
* Fill&lt;br /&gt;
** $idx&lt;br /&gt;
&lt;br /&gt;
* Apply&lt;br /&gt;
&lt;br /&gt;
* Lookup&lt;br /&gt;
&lt;br /&gt;
* Find&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2801</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2801"/>
				<updated>2010-07-05T13:57:47Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class.&lt;br /&gt;
&lt;br /&gt;
== Creation - Elements of the call ==&lt;br /&gt;
&lt;br /&gt;
An EXPRession is a sentence which can be applied to the content of an FMAT or an FVEC. It can be created in an FTM.object (class expr) or in an FTM.message.  In both case, it shares the same syntax: &lt;br /&gt;
&lt;br /&gt;
1_ it starts with expr &lt;br /&gt;
&lt;br /&gt;
2_ it is surrounded by simple quotes ' '&lt;br /&gt;
&lt;br /&gt;
3_ it is then encapsulated within parenthesis (to be executed like all of FTM's code)&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the value 1 is&lt;br /&gt;
&lt;br /&gt;
 expr '(1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can use all the [[List of functions | FTM Functions]] available to create your expression. Moreover, $1, $2, etc will be replaced by values passed to your instance of expr.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the sinus of its input is&lt;br /&gt;
&lt;br /&gt;
 expr '(sin $1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are two places you can create a new expr instance:&lt;br /&gt;
&lt;br /&gt;
* within a ftm.object&lt;br /&gt;
&lt;br /&gt;
as shown in the ftm.class.expr.maxhelp document. On the left, you put the expression, on the right its name, the latter being the way to call the expression&lt;br /&gt;
&lt;br /&gt;
* within ftm.mess&lt;br /&gt;
&lt;br /&gt;
when it is used as an argument to a method to another object, like in the following example:&lt;br /&gt;
&lt;br /&gt;
 ((new fmat 10 3) fill (new expr '(random 1 3)'))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scope of variables ==&lt;br /&gt;
&lt;br /&gt;
In the previous example, you could be tempted to use $1 and $2 to choose the boundaries of the random function within the expressionm but the variables $1 and $2 would not refer to the ftm.mess inputs, but to the expression variables.  We therefore need to pass those variables local to the ftm.mess to our newly created instance of expr by doing the following:&lt;br /&gt;
&lt;br /&gt;
((new fmat 10 3) fill (new expr '(random $1 $2)') $1 $2)&lt;br /&gt;
&lt;br /&gt;
== Special Variables ==&lt;br /&gt;
&lt;br /&gt;
Depending of context of use, an expr instance has access to some specific variables&lt;br /&gt;
&lt;br /&gt;
* Fill&lt;br /&gt;
&lt;br /&gt;
* Apply&lt;br /&gt;
&lt;br /&gt;
* Lookup&lt;br /&gt;
&lt;br /&gt;
* Find&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2800</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2800"/>
				<updated>2010-07-05T13:57:15Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class.&lt;br /&gt;
&lt;br /&gt;
== Creation - Elements of the call ==&lt;br /&gt;
&lt;br /&gt;
An EXPRession is a sentence which can be applied to the content of an FMAT or an FVEC. It can be created in an FTM.object (class expr) or in an FTM.message.  In both case, it shares the same syntax: &lt;br /&gt;
&lt;br /&gt;
1_ it starts with expr &lt;br /&gt;
&lt;br /&gt;
2_ it is surrounded by simple quotes ' '&lt;br /&gt;
&lt;br /&gt;
3_ it is then encapsulated within parenthesis (to be executed like all of FTM's code)&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the value 1 is&lt;br /&gt;
&lt;br /&gt;
 expr '(1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can use all the [[List of functions | FTM Functions]] available to create your expression. Moreover, $1, $2, etc will be replaced by values passed to your instance of expr.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the sinus of its input is&lt;br /&gt;
&lt;br /&gt;
 expr '(sin $1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are two places you can create a new expr instance:&lt;br /&gt;
&lt;br /&gt;
* within a ftm.object&lt;br /&gt;
&lt;br /&gt;
as shown in the ftm.class.expr.maxhelp document. On the left, you put the expression, on the right its name, the latter being the way to call the expression&lt;br /&gt;
&lt;br /&gt;
* within ftm.mess&lt;br /&gt;
&lt;br /&gt;
when it is used as an argument to a method to another object, like in the following example:&lt;br /&gt;
&lt;br /&gt;
 ((new fmat 10 3) fill (new expr '(random 1 3)'))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scope of variables ==&lt;br /&gt;
&lt;br /&gt;
In the previous example, you could be tempted to use $1 and $2 to choose the boundaries of the random function within the expressionm but the variables $1 and $2 would not refer to the ftm.mess inputs, but to the expression variables.  We therefore need to pass those variables local to the ftm.mess to our newly created instance of expr by doing the following:&lt;br /&gt;
&lt;br /&gt;
((new fmat 10 3) fill (new expr '(random $1 $2)') $1 $2)&lt;br /&gt;
&lt;br /&gt;
== Special Variables ==&lt;br /&gt;
&lt;br /&gt;
Depending of context of use, an expr instance has access to some specific variables&lt;br /&gt;
&lt;br /&gt;
Fill&lt;br /&gt;
&lt;br /&gt;
Apply&lt;br /&gt;
&lt;br /&gt;
Lookup&lt;br /&gt;
&lt;br /&gt;
Find&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2799</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2799"/>
				<updated>2010-07-05T13:47:26Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class.&lt;br /&gt;
&lt;br /&gt;
== Creation - Elements of the call ==&lt;br /&gt;
&lt;br /&gt;
An EXPRession is a sentence which can be applied to the content of an FMAT or an FVEC. It can be created in an FTM.object (class expr) or in an FTM.message.  In both case, it shares the same syntax: &lt;br /&gt;
&lt;br /&gt;
1_ it starts with expr &lt;br /&gt;
&lt;br /&gt;
2_ it is surrounded by simple quotes ' '&lt;br /&gt;
&lt;br /&gt;
3_ it is then encapsulated within parenthesis (to be executed like all of FTM's code)&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the value 1 is&lt;br /&gt;
&lt;br /&gt;
 expr '(1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can use all the [[List of functions | FTM Functions]] available to create your expression. Moreover, $1, $2, etc will be replaced by values passed to your instance of expr.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the sinus of its input is&lt;br /&gt;
&lt;br /&gt;
 expr '(sin $1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are two places you can create a new expr instance:&lt;br /&gt;
&lt;br /&gt;
* within a ftm.object&lt;br /&gt;
&lt;br /&gt;
as shown in the ftm.class.expr.maxhelp document. On the left, you put the expression, on the right its name, the latter being the way to call the expression&lt;br /&gt;
&lt;br /&gt;
* within ftm.mess&lt;br /&gt;
&lt;br /&gt;
when it is used as an argument to a method to another object, like in the following example:&lt;br /&gt;
&lt;br /&gt;
 ((new fmat 10 3) fill (new expr '(random 1 3)'))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
scope of variable&lt;br /&gt;
&lt;br /&gt;
Context of use&lt;br /&gt;
&lt;br /&gt;
Fill&lt;br /&gt;
&lt;br /&gt;
Apply&lt;br /&gt;
&lt;br /&gt;
Lookup&lt;br /&gt;
&lt;br /&gt;
Find&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2798</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2798"/>
				<updated>2010-07-05T13:40:46Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class.&lt;br /&gt;
&lt;br /&gt;
== Creation - Elements of the call ==&lt;br /&gt;
&lt;br /&gt;
An EXPRession is a sentence which can be applied to the content of an FMAT or an FVEC. It can be created in an FTM.object (class expr) or in an FTM.message.  In both case, it shares the same syntax: &lt;br /&gt;
&lt;br /&gt;
1_ it starts with expr &lt;br /&gt;
&lt;br /&gt;
2_ it is surrounded by simple quotes ' '&lt;br /&gt;
&lt;br /&gt;
3_ it is then encapsulated within parenthesis (to be executed like all of FTM's code)&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the value 1 is&lt;br /&gt;
&lt;br /&gt;
 expr '(1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can use all the [[List of functions | FTM Functions]] available to create your expression. Moreover, $1, $2, etc will be replaced by values passed to your instance of expr.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, the expression returning the sinus of its input is&lt;br /&gt;
&lt;br /&gt;
 expr '(sin $1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are two places you can create a new expr instance:&lt;br /&gt;
&lt;br /&gt;
* within a ftm.object&lt;br /&gt;
&lt;br /&gt;
* within ftm.mess&lt;br /&gt;
&lt;br /&gt;
scope of variable&lt;br /&gt;
&lt;br /&gt;
Context of use&lt;br /&gt;
&lt;br /&gt;
Fill&lt;br /&gt;
&lt;br /&gt;
Apply&lt;br /&gt;
&lt;br /&gt;
Lookup&lt;br /&gt;
&lt;br /&gt;
Find&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple examples ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unity&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2797</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2797"/>
				<updated>2010-07-05T13:36:54Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class.&lt;br /&gt;
&lt;br /&gt;
== Creation - Elements of the call ==&lt;br /&gt;
&lt;br /&gt;
An EXPRession is a sentence which can be applied to the content of an FMAT or an FVEC. It can be created in an FTM.object (class expr) or in an FTM.message.  In both case, it shares the same syntax: &lt;br /&gt;
&lt;br /&gt;
1_ it is surrounded by simple quotes ' '&lt;br /&gt;
&lt;br /&gt;
2_ it is then encapsulated within parenthesis (to be executed like all of FTM's code)&lt;br /&gt;
&lt;br /&gt;
For instance, the expression returning the value 1 is&lt;br /&gt;
&lt;br /&gt;
'(1)'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can use all the [[List of functions | FTM Functions]] available to create your expression. Moreover, $1, $2, etc will be replaced by values passed to your instance of expr.&lt;br /&gt;
&lt;br /&gt;
within ftm.mess&lt;br /&gt;
&lt;br /&gt;
within a ftm.object&lt;br /&gt;
&lt;br /&gt;
scope of variable&lt;br /&gt;
&lt;br /&gt;
Context of use&lt;br /&gt;
&lt;br /&gt;
Fill&lt;br /&gt;
&lt;br /&gt;
Apply&lt;br /&gt;
&lt;br /&gt;
Lookup&lt;br /&gt;
&lt;br /&gt;
Find&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple examples ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unity&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2796</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2796"/>
				<updated>2010-07-05T13:34:34Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class.&lt;br /&gt;
&lt;br /&gt;
== Creation - Elements of the call ==&lt;br /&gt;
&lt;br /&gt;
An EXPRession is a sentence which can be applied to the content of an FMAT or an FVEC. It can be created in an FTM.object (class expr) or in an FTM.message.  In both case, it shares the same syntax: &lt;br /&gt;
&lt;br /&gt;
1_ it is surrounded by simple quotes ' '&lt;br /&gt;
&lt;br /&gt;
2_ it is then encapsulated within parenthesis (to be executed like all of FTM's code)&lt;br /&gt;
&lt;br /&gt;
For instance, the expression returning the value 1 is &lt;br /&gt;
'(1)'&lt;br /&gt;
&lt;br /&gt;
You can use all the [[List of functions | FTM Functions]] available to create your expression.&lt;br /&gt;
&lt;br /&gt;
within ftm.mess&lt;br /&gt;
&lt;br /&gt;
within a ftm.object&lt;br /&gt;
&lt;br /&gt;
scope of variable&lt;br /&gt;
&lt;br /&gt;
Context of use&lt;br /&gt;
&lt;br /&gt;
Fill&lt;br /&gt;
&lt;br /&gt;
Apply&lt;br /&gt;
&lt;br /&gt;
Lookup&lt;br /&gt;
&lt;br /&gt;
Find&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple examples ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unity&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=List_of_functions&amp;diff=2795</id>
		<title>List of functions</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=List_of_functions&amp;diff=2795"/>
				<updated>2010-07-05T13:33:28Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of the currently supported Functions.  For a clear explanation of the differences between Functions and Methods, please refer to the help file of ftm.mess, under the patcher functions &amp;amp; methods.&lt;br /&gt;
&lt;br /&gt;
* sin &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
* cos &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
* tan &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
* asin &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
* acos &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
* atan &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
* sinh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
* cosh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
* tanh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
* abs &amp;lt;num: value&amp;gt; - standard math function - get absolute value&lt;br /&gt;
* log &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
* logabs &amp;lt;num: value&amp;gt; - standard math function - logarithm of absolute value&lt;br /&gt;
* log10 &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
* exp &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
* sqrt &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
* trunc &amp;lt;num: value&amp;gt; - standard math function - truncate to integer value&lt;br /&gt;
* round &amp;lt;num: value&amp;gt; - standard math function - round to integer value nearest to current value&lt;br /&gt;
* ceil &amp;lt;num: value&amp;gt; - standard math function - round to smallest integral value not less than current value&lt;br /&gt;
* floor &amp;lt;num: value&amp;gt; - standard math function - round to largest integral value not less than current value&lt;br /&gt;
* lin2db &amp;lt;num: value&amp;gt; - standard math function - convert linear amplitude value to value in decibel&lt;br /&gt;
* db2lin &amp;lt;num: value&amp;gt; - standard math function - convert value in decibel to linear amplitude value&lt;br /&gt;
* lin2cent &amp;lt;num: value&amp;gt; - standard math function - convert linear value to value in cent&lt;br /&gt;
* cent2lin &amp;lt;num: value&amp;gt; - standard math function - convert value in cent to linear value&lt;br /&gt;
* new &amp;lt;sym: class name&amp;gt; [&amp;lt;any: instantiation arguments&amp;gt; ...] - create object of given class&lt;br /&gt;
* int &amp;lt;num: arg&amp;gt; - convert to integer value&lt;br /&gt;
* i alias for 'int'&lt;br /&gt;
* float &amp;lt;num: arg&amp;gt; - convert to floating-point value&lt;br /&gt;
* f alias for 'float'&lt;br /&gt;
* symbol &amp;lt;sym: arg&amp;gt; - convert to symbol&lt;br /&gt;
* s alias for 'symbol'&lt;br /&gt;
* list [&amp;lt;obj|any: list args&amp;gt;...] - convert objects to list&lt;br /&gt;
* listhead [&amp;lt;any: list args&amp;gt; ...] - get list head&lt;br /&gt;
* listtail [&amp;lt;any: list args&amp;gt; ...] - get list tail&lt;br /&gt;
* listlen [&amp;lt;any: list args&amp;gt; ...] - get list size&lt;br /&gt;
* listnth &amp;lt;num: index&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get nth list element (indices starting from 1)&lt;br /&gt;
* listelem &amp;lt;num: index&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get list element&lt;br /&gt;
* listsub &amp;lt;num: index&amp;gt; &amp;lt;num: len&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get sub-list&lt;br /&gt;
* l alias for 'list'&lt;br /&gt;
* lhead alias for 'listhead'&lt;br /&gt;
* ltail alias for 'listtail'&lt;br /&gt;
* llen alias for 'listlen'&lt;br /&gt;
* lnth alias for 'listnth'&lt;br /&gt;
* lelem alias for 'listelem'&lt;br /&gt;
* lsub alias for 'listsub'&lt;br /&gt;
* unique - generate unique integer number&lt;br /&gt;
* random [&amp;lt;num: min&amp;gt;] &amp;lt;num: max&amp;gt; - generate (float) random number (min &amp;lt;= x &amp;lt; max)&lt;br /&gt;
* clip &amp;lt;num: value&amp;gt; [&amp;lt;num: lower boundary&amp;gt;] &amp;lt;num: upper boundary&amp;gt; - clip value&lt;br /&gt;
* pow &amp;lt;num: base&amp;gt; &amp;lt;num: exponent&amp;gt; - power&lt;br /&gt;
* mod &amp;lt;num: num&amp;gt; &amp;lt;num: denum&amp;gt; - float modulo function&lt;br /&gt;
* min [&amp;lt;num: arg&amp;gt; ...] - find minimum&lt;br /&gt;
* max [&amp;lt;num: arg&amp;gt; ...] - find maximum&lt;br /&gt;
* mag [&amp;lt;num: arg&amp;gt; ...] - magnitude (sqrt of sum of squares)&lt;br /&gt;
* arg &amp;lt;num: real part&amp;gt; &amp;lt;num: imaginary part&amp;gt; - argument angle&lt;br /&gt;
* hz2midi &amp;lt;num: value in Hz&amp;gt; [&amp;lt;num: tuning frequency (for note # 69, def 440.)&amp;gt;] - convert to MIDI note number&lt;br /&gt;
* midi2hz &amp;lt;num: MIDI note number&amp;gt; [&amp;lt;num: tuning frequency (for note # 69, def 440.)&amp;gt;] - convert to frequency in Hz&lt;br /&gt;
* cat &amp;lt;any: item&amp;gt;... - concatenate to a single symbol&lt;br /&gt;
* basename &amp;lt;sym: filepath&amp;gt; - get filename part of filepath (last component)&lt;br /&gt;
* dirname &amp;lt;sym: filepath&amp;gt; - get directory part of filepath (or '.' if no path)&lt;br /&gt;
* extension &amp;lt;sym: filepath&amp;gt; - get extension part of filepath (after the last '.')&lt;br /&gt;
* stripext &amp;lt;sym: filepath&amp;gt; - remove extension from filepath (including the '.')&lt;br /&gt;
* not &amp;lt;num: linear value&amp;gt; - integer negation&lt;br /&gt;
* if &amp;lt;num: condition&amp;gt; &amp;lt;any: true value&amp;gt; &amp;lt;any: false value&amp;gt; - choose between two values (both conditional values are evaluated)&lt;br /&gt;
* case &amp;lt;num: index&amp;gt; [&amp;lt;any: value for index 1, 2 etc.&amp;gt; ...] - choose between multiple values (all conditional values are evaluated)&lt;br /&gt;
* typeof &amp;lt;any: arg&amp;gt; - get class/type name of value or object&lt;br /&gt;
* classof &amp;lt;any: arg&amp;gt; - get class/type of value or object&lt;br /&gt;
* getid &amp;lt;obj: reference&amp;gt; - get object id&lt;br /&gt;
* getobj &amp;lt;symbol: id&amp;gt; - get object by id&lt;br /&gt;
* obj &amp;lt;symbol: id&amp;gt; - get object by id&lt;br /&gt;
* class &amp;lt;sym: class name&amp;gt; - get class/type by name&lt;br /&gt;
* print print value or object&lt;br /&gt;
* aa &amp;lt;sym|any: arg&amp;gt; [&amp;lt;any: replacement if arg is #1, #2, etc&amp;gt; [&amp;lt;replacement if arg is 0&amp;gt;]] - replace abstraction argument by default value&lt;br /&gt;
* info &amp;lt;'classes'|'class'|'functions'&amp;gt; [&amp;lt;any: args&amp;gt;] [&amp;lt;mat: container&amp;gt;] - get info (post to console window or store into container if given)&lt;br /&gt;
* checkversion &amp;lt;num: major version&amp;gt; [&amp;lt;num: minor version&amp;gt; [&amp;lt;num: release&amp;gt;]] - check whether the running FTM corresponds to given version and release&lt;br /&gt;
* ftm &amp;lt;sym: FTM system function&amp;gt; &amp;lt;list: arguments&amp;gt;&lt;br /&gt;
* FTM alias for 'ftm'&lt;br /&gt;
* ftm version - get FTM version as symbol&lt;br /&gt;
* ftm exprerrcheck &amp;lt;0|'none'|1|'loose'|2|'normal'|3|'strict'&amp;gt; - set expression evaluation error checking level&lt;br /&gt;
* ftm exprerrcheck - get FTM expression evaluation error checking level&lt;br /&gt;
* ftm exterrors - post current errors of FTM externals&lt;br /&gt;
* version - get FTM version as symbol (deprecated)&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=List_of_functions&amp;diff=2794</id>
		<title>List of functions</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=List_of_functions&amp;diff=2794"/>
				<updated>2010-07-05T13:32:57Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of the currently supported Functions.  For a clear explanation of the differences between Functions and Methods, please refer to the help file of ftm.mess, under the patcher functions &amp;amp; methods.&lt;br /&gt;
&lt;br /&gt;
* sin &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 cos &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 tan &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 asin &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 acos &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 atan &amp;lt;num: value&amp;gt; - standard math function&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=List_of_functions&amp;diff=2793</id>
		<title>List of functions</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=List_of_functions&amp;diff=2793"/>
				<updated>2010-07-05T13:32:16Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of the currently supported Functions.  For a clear explanation of the differences between Functions and Methods, please refer to the help file of ftm.mess, under the patcher functions &amp;amp; methods.&lt;br /&gt;
&lt;br /&gt;
sin &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
cos &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
tan &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
asin &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
acos &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
atan &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
sinh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
cosh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
tanh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
abs &amp;lt;num: value&amp;gt; - standard math function - get absolute value&lt;br /&gt;
log &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
logabs &amp;lt;num: value&amp;gt; - standard math function - logarithm of absolute value&lt;br /&gt;
log10 &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
exp &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
sqrt &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
trunc &amp;lt;num: value&amp;gt; - standard math function - truncate to integer value&lt;br /&gt;
round &amp;lt;num: value&amp;gt; - standard math function - round to integer value nearest to current value&lt;br /&gt;
ceil &amp;lt;num: value&amp;gt; - standard math function - round to smallest integral value not less than current value&lt;br /&gt;
floor &amp;lt;num: value&amp;gt; - standard math function - round to largest integral value not less than current value&lt;br /&gt;
lin2db &amp;lt;num: value&amp;gt; - standard math function - convert linear amplitude value to value in decibel&lt;br /&gt;
db2lin &amp;lt;num: value&amp;gt; - standard math function - convert value in decibel to linear amplitude value&lt;br /&gt;
lin2cent &amp;lt;num: value&amp;gt; - standard math function - convert linear value to value in cent&lt;br /&gt;
cent2lin &amp;lt;num: value&amp;gt; - standard math function - convert value in cent to linear value&lt;br /&gt;
new &amp;lt;sym: class name&amp;gt; [&amp;lt;any: instantiation arguments&amp;gt; ...] - create object of given class&lt;br /&gt;
int &amp;lt;num: arg&amp;gt; - convert to integer value&lt;br /&gt;
i alias for 'int'&lt;br /&gt;
float &amp;lt;num: arg&amp;gt; - convert to floating-point value&lt;br /&gt;
f alias for 'float'&lt;br /&gt;
symbol &amp;lt;sym: arg&amp;gt; - convert to symbol&lt;br /&gt;
s alias for 'symbol'&lt;br /&gt;
list [&amp;lt;obj|any: list args&amp;gt;...] - convert objects to list&lt;br /&gt;
listhead [&amp;lt;any: list args&amp;gt; ...] - get list head&lt;br /&gt;
listtail [&amp;lt;any: list args&amp;gt; ...] - get list tail&lt;br /&gt;
listlen [&amp;lt;any: list args&amp;gt; ...] - get list size&lt;br /&gt;
listnth &amp;lt;num: index&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get nth list element (indices starting from 1)&lt;br /&gt;
listelem &amp;lt;num: index&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get list element&lt;br /&gt;
listsub &amp;lt;num: index&amp;gt; &amp;lt;num: len&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get sub-list&lt;br /&gt;
l alias for 'list'&lt;br /&gt;
lhead alias for 'listhead'&lt;br /&gt;
ltail alias for 'listtail'&lt;br /&gt;
llen alias for 'listlen'&lt;br /&gt;
lnth alias for 'listnth'&lt;br /&gt;
lelem alias for 'listelem'&lt;br /&gt;
lsub alias for 'listsub'&lt;br /&gt;
unique - generate unique integer number&lt;br /&gt;
random [&amp;lt;num: min&amp;gt;] &amp;lt;num: max&amp;gt; - generate (float) random number (min &amp;lt;= x &amp;lt; max)&lt;br /&gt;
clip &amp;lt;num: value&amp;gt; [&amp;lt;num: lower boundary&amp;gt;] &amp;lt;num: upper boundary&amp;gt; - clip value&lt;br /&gt;
pow &amp;lt;num: base&amp;gt; &amp;lt;num: exponent&amp;gt; - power&lt;br /&gt;
mod &amp;lt;num: num&amp;gt; &amp;lt;num: denum&amp;gt; - float modulo function&lt;br /&gt;
min [&amp;lt;num: arg&amp;gt; ...] - find minimum&lt;br /&gt;
max [&amp;lt;num: arg&amp;gt; ...] - find maximum&lt;br /&gt;
mag [&amp;lt;num: arg&amp;gt; ...] - magnitude (sqrt of sum of squares)&lt;br /&gt;
arg &amp;lt;num: real part&amp;gt; &amp;lt;num: imaginary part&amp;gt; - argument angle&lt;br /&gt;
hz2midi &amp;lt;num: value in Hz&amp;gt; [&amp;lt;num: tuning frequency (for note # 69, def 440.)&amp;gt;] - convert to MIDI note number&lt;br /&gt;
midi2hz &amp;lt;num: MIDI note number&amp;gt; [&amp;lt;num: tuning frequency (for note # 69, def 440.)&amp;gt;] - convert to frequency in Hz&lt;br /&gt;
cat &amp;lt;any: item&amp;gt;... - concatenate to a single symbol&lt;br /&gt;
basename &amp;lt;sym: filepath&amp;gt; - get filename part of filepath (last component)&lt;br /&gt;
dirname &amp;lt;sym: filepath&amp;gt; - get directory part of filepath (or '.' if no path)&lt;br /&gt;
extension &amp;lt;sym: filepath&amp;gt; - get extension part of filepath (after the last '.')&lt;br /&gt;
stripext &amp;lt;sym: filepath&amp;gt; - remove extension from filepath (including the '.')&lt;br /&gt;
not &amp;lt;num: linear value&amp;gt; - integer negation&lt;br /&gt;
if &amp;lt;num: condition&amp;gt; &amp;lt;any: true value&amp;gt; &amp;lt;any: false value&amp;gt; - choose between two values (both conditional values are evaluated)&lt;br /&gt;
case &amp;lt;num: index&amp;gt; [&amp;lt;any: value for index 1, 2 etc.&amp;gt; ...] - choose between multiple values (all conditional values are evaluated)&lt;br /&gt;
typeof &amp;lt;any: arg&amp;gt; - get class/type name of value or object&lt;br /&gt;
classof &amp;lt;any: arg&amp;gt; - get class/type of value or object&lt;br /&gt;
getid &amp;lt;obj: reference&amp;gt; - get object id&lt;br /&gt;
getobj &amp;lt;symbol: id&amp;gt; - get object by id&lt;br /&gt;
obj &amp;lt;symbol: id&amp;gt; - get object by id&lt;br /&gt;
class &amp;lt;sym: class name&amp;gt; - get class/type by name&lt;br /&gt;
print print value or object&lt;br /&gt;
aa &amp;lt;sym|any: arg&amp;gt; [&amp;lt;any: replacement if arg is #1, #2, etc&amp;gt; [&amp;lt;replacement if arg is 0&amp;gt;]] - replace abstraction argument by default value&lt;br /&gt;
info &amp;lt;'classes'|'class'|'functions'&amp;gt; [&amp;lt;any: args&amp;gt;] [&amp;lt;mat: container&amp;gt;] - get info (post to console window or store into container if given)&lt;br /&gt;
checkversion &amp;lt;num: major version&amp;gt; [&amp;lt;num: minor version&amp;gt; [&amp;lt;num: release&amp;gt;]] - check whether the running FTM corresponds to given version and release&lt;br /&gt;
ftm &amp;lt;sym: FTM system function&amp;gt; &amp;lt;list: arguments&amp;gt;&lt;br /&gt;
FTM alias for 'ftm'&lt;br /&gt;
ftm version - get FTM version as symbol&lt;br /&gt;
ftm exprerrcheck &amp;lt;0|'none'|1|'loose'|2|'normal'|3|'strict'&amp;gt; - set expression evaluation error checking level&lt;br /&gt;
ftm exprerrcheck - get FTM expression evaluation error checking level&lt;br /&gt;
ftm exterrors - post current errors of FTM externals&lt;br /&gt;
version - get FTM version as symbol (deprecated)&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=List_of_functions&amp;diff=2792</id>
		<title>List of functions</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=List_of_functions&amp;diff=2792"/>
				<updated>2010-07-05T13:30:40Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of the currently supported Functions.  For a clear explanation of the differences between Functions and Methods, please refer to the help file of ftm.mess, under the patcher functions &amp;amp; methods.&lt;br /&gt;
&lt;br /&gt;
 sin &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 cos &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 tan &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 asin &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 acos &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 atan &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 sinh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 cosh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 tanh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 abs &amp;lt;num: value&amp;gt; - standard math function - get absolute value&lt;br /&gt;
 log &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 logabs &amp;lt;num: value&amp;gt; - standard math function - logarithm of absolute value&lt;br /&gt;
 log10 &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 exp &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 sqrt &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
 trunc &amp;lt;num: value&amp;gt; - standard math function - truncate to integer value&lt;br /&gt;
 round &amp;lt;num: value&amp;gt; - standard math function - round to integer value nearest to current value&lt;br /&gt;
 ceil &amp;lt;num: value&amp;gt; - standard math function - round to smallest integral value not less than current value&lt;br /&gt;
 floor &amp;lt;num: value&amp;gt; - standard math function - round to largest integral value not less than current value&lt;br /&gt;
 lin2db &amp;lt;num: value&amp;gt; - standard math function - convert linear amplitude value to value in decibel&lt;br /&gt;
 db2lin &amp;lt;num: value&amp;gt; - standard math function - convert value in decibel to linear amplitude value&lt;br /&gt;
 lin2cent &amp;lt;num: value&amp;gt; - standard math function - convert linear value to value in cent&lt;br /&gt;
 cent2lin &amp;lt;num: value&amp;gt; - standard math function - convert value in cent to linear value&lt;br /&gt;
 new &amp;lt;sym: class name&amp;gt; [&amp;lt;any: instantiation arguments&amp;gt; ...] - create object of given class&lt;br /&gt;
 int &amp;lt;num: arg&amp;gt; - convert to integer value&lt;br /&gt;
 i alias for 'int'&lt;br /&gt;
 float &amp;lt;num: arg&amp;gt; - convert to floating-point value&lt;br /&gt;
 f alias for 'float'&lt;br /&gt;
 symbol &amp;lt;sym: arg&amp;gt; - convert to symbol&lt;br /&gt;
 s alias for 'symbol'&lt;br /&gt;
 list [&amp;lt;obj|any: list args&amp;gt;...] - convert objects to list&lt;br /&gt;
 listhead [&amp;lt;any: list args&amp;gt; ...] - get list head&lt;br /&gt;
 listtail [&amp;lt;any: list args&amp;gt; ...] - get list tail&lt;br /&gt;
 listlen [&amp;lt;any: list args&amp;gt; ...] - get list size&lt;br /&gt;
 listnth &amp;lt;num: index&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get nth list element (indices starting from 1)&lt;br /&gt;
 listelem &amp;lt;num: index&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get list element&lt;br /&gt;
 listsub &amp;lt;num: index&amp;gt; &amp;lt;num: len&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get sub-list&lt;br /&gt;
 l alias for 'list'&lt;br /&gt;
 lhead alias for 'listhead'&lt;br /&gt;
 ltail alias for 'listtail'&lt;br /&gt;
 llen alias for 'listlen'&lt;br /&gt;
 lnth alias for 'listnth'&lt;br /&gt;
 lelem alias for 'listelem'&lt;br /&gt;
 lsub alias for 'listsub'&lt;br /&gt;
 unique - generate unique integer number&lt;br /&gt;
 random [&amp;lt;num: min&amp;gt;] &amp;lt;num: max&amp;gt; - generate (float) random number (min &amp;lt;= x &amp;lt; max)&lt;br /&gt;
 clip &amp;lt;num: value&amp;gt; [&amp;lt;num: lower boundary&amp;gt;] &amp;lt;num: upper boundary&amp;gt; - clip value&lt;br /&gt;
 pow &amp;lt;num: base&amp;gt; &amp;lt;num: exponent&amp;gt; - power&lt;br /&gt;
 mod &amp;lt;num: num&amp;gt; &amp;lt;num: denum&amp;gt; - float modulo function&lt;br /&gt;
 min [&amp;lt;num: arg&amp;gt; ...] - find minimum&lt;br /&gt;
 max [&amp;lt;num: arg&amp;gt; ...] - find maximum&lt;br /&gt;
 mag [&amp;lt;num: arg&amp;gt; ...] - magnitude (sqrt of sum of squares)&lt;br /&gt;
 arg &amp;lt;num: real part&amp;gt; &amp;lt;num: imaginary part&amp;gt; - argument angle&lt;br /&gt;
 hz2midi &amp;lt;num: value in Hz&amp;gt; [&amp;lt;num: tuning frequency (for note # 69, def 440.)&amp;gt;] - convert to MIDI note number&lt;br /&gt;
 midi2hz &amp;lt;num: MIDI note number&amp;gt; [&amp;lt;num: tuning frequency (for note # 69, def 440.)&amp;gt;] - convert to frequency in Hz&lt;br /&gt;
 cat &amp;lt;any: item&amp;gt;... - concatenate to a single symbol&lt;br /&gt;
 basename &amp;lt;sym: filepath&amp;gt; - get filename part of filepath (last component)&lt;br /&gt;
 dirname &amp;lt;sym: filepath&amp;gt; - get directory part of filepath (or '.' if no path)&lt;br /&gt;
 extension &amp;lt;sym: filepath&amp;gt; - get extension part of filepath (after the last '.')&lt;br /&gt;
 stripext &amp;lt;sym: filepath&amp;gt; - remove extension from filepath (including the '.')&lt;br /&gt;
 not &amp;lt;num: linear value&amp;gt; - integer negation&lt;br /&gt;
 if &amp;lt;num: condition&amp;gt; &amp;lt;any: true value&amp;gt; &amp;lt;any: false value&amp;gt; - choose between two values (both conditional values are evaluated)&lt;br /&gt;
 case &amp;lt;num: index&amp;gt; [&amp;lt;any: value for index 1, 2 etc.&amp;gt; ...] - choose between multiple values (all conditional values are evaluated)&lt;br /&gt;
 typeof &amp;lt;any: arg&amp;gt; - get class/type name of value or object&lt;br /&gt;
 classof &amp;lt;any: arg&amp;gt; - get class/type of value or object&lt;br /&gt;
 getid &amp;lt;obj: reference&amp;gt; - get object id&lt;br /&gt;
 getobj &amp;lt;symbol: id&amp;gt; - get object by id&lt;br /&gt;
 obj &amp;lt;symbol: id&amp;gt; - get object by id&lt;br /&gt;
 class &amp;lt;sym: class name&amp;gt; - get class/type by name&lt;br /&gt;
 print print value or object&lt;br /&gt;
 aa &amp;lt;sym|any: arg&amp;gt; [&amp;lt;any: replacement if arg is #1, #2, etc&amp;gt; [&amp;lt;replacement if arg is 0&amp;gt;]] - replace abstraction argument by default value&lt;br /&gt;
 info &amp;lt;'classes'|'class'|'functions'&amp;gt; [&amp;lt;any: args&amp;gt;] [&amp;lt;mat: container&amp;gt;] - get info (post to console window or store into container if given)&lt;br /&gt;
 checkversion &amp;lt;num: major version&amp;gt; [&amp;lt;num: minor version&amp;gt; [&amp;lt;num: release&amp;gt;]] - check whether the running FTM corresponds to given version and release&lt;br /&gt;
 ftm &amp;lt;sym: FTM system function&amp;gt; &amp;lt;list: arguments&amp;gt;&lt;br /&gt;
 FTM alias for 'ftm'&lt;br /&gt;
 ftm version - get FTM version as symbol&lt;br /&gt;
 ftm exprerrcheck &amp;lt;0|'none'|1|'loose'|2|'normal'|3|'strict'&amp;gt; - set expression evaluation error checking level&lt;br /&gt;
 ftm exprerrcheck - get FTM expression evaluation error checking level&lt;br /&gt;
 ftm exterrors - post current errors of FTM externals&lt;br /&gt;
 version - get FTM version as symbol (deprecated)&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=List_of_functions&amp;diff=2791</id>
		<title>List of functions</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=List_of_functions&amp;diff=2791"/>
				<updated>2010-07-05T13:29:51Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of the currently supported Functions.  For a clear explanation of the differences between Functions and Methods, please refer to the help file of ftm.mess, under the patcher functions &amp;amp; methods.&lt;br /&gt;
&lt;br /&gt;
sin &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  cos &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  tan &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  asin &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  acos &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  atan &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  sinh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  cosh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  tanh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  abs &amp;lt;num: value&amp;gt; - standard math function - get absolute value&lt;br /&gt;
  log &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  logabs &amp;lt;num: value&amp;gt; - standard math function - logarithm of absolute value&lt;br /&gt;
  log10 &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  exp &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  sqrt &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  trunc &amp;lt;num: value&amp;gt; - standard math function - truncate to integer value&lt;br /&gt;
  round &amp;lt;num: value&amp;gt; - standard math function - round to integer value nearest to current value&lt;br /&gt;
  ceil &amp;lt;num: value&amp;gt; - standard math function - round to smallest integral value not less than current value&lt;br /&gt;
  floor &amp;lt;num: value&amp;gt; - standard math function - round to largest integral value not less than current value&lt;br /&gt;
  lin2db &amp;lt;num: value&amp;gt; - standard math function - convert linear amplitude value to value in decibel&lt;br /&gt;
  db2lin &amp;lt;num: value&amp;gt; - standard math function - convert value in decibel to linear amplitude value&lt;br /&gt;
  lin2cent &amp;lt;num: value&amp;gt; - standard math function - convert linear value to value in cent&lt;br /&gt;
  cent2lin &amp;lt;num: value&amp;gt; - standard math function - convert value in cent to linear value&lt;br /&gt;
  new &amp;lt;sym: class name&amp;gt; [&amp;lt;any: instantiation arguments&amp;gt; ...] - create object of given class&lt;br /&gt;
  int &amp;lt;num: arg&amp;gt; - convert to integer value&lt;br /&gt;
  i alias for 'int'&lt;br /&gt;
  float &amp;lt;num: arg&amp;gt; - convert to floating-point value&lt;br /&gt;
  f alias for 'float'&lt;br /&gt;
  symbol &amp;lt;sym: arg&amp;gt; - convert to symbol&lt;br /&gt;
  s alias for 'symbol'&lt;br /&gt;
  list [&amp;lt;obj|any: list args&amp;gt;...] - convert objects to list&lt;br /&gt;
  listhead [&amp;lt;any: list args&amp;gt; ...] - get list head&lt;br /&gt;
  listtail [&amp;lt;any: list args&amp;gt; ...] - get list tail&lt;br /&gt;
  listlen [&amp;lt;any: list args&amp;gt; ...] - get list size&lt;br /&gt;
  listnth &amp;lt;num: index&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get nth list element (indices starting from 1)&lt;br /&gt;
  listelem &amp;lt;num: index&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get list element&lt;br /&gt;
  listsub &amp;lt;num: index&amp;gt; &amp;lt;num: len&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get sub-list&lt;br /&gt;
  l alias for 'list'&lt;br /&gt;
  lhead alias for 'listhead'&lt;br /&gt;
  ltail alias for 'listtail'&lt;br /&gt;
  llen alias for 'listlen'&lt;br /&gt;
  lnth alias for 'listnth'&lt;br /&gt;
  lelem alias for 'listelem'&lt;br /&gt;
  lsub alias for 'listsub'&lt;br /&gt;
  unique - generate unique integer number&lt;br /&gt;
  random [&amp;lt;num: min&amp;gt;] &amp;lt;num: max&amp;gt; - generate (float) random number (min &amp;lt;= x &amp;lt; max)&lt;br /&gt;
  clip &amp;lt;num: value&amp;gt; [&amp;lt;num: lower boundary&amp;gt;] &amp;lt;num: upper boundary&amp;gt; - clip value&lt;br /&gt;
  pow &amp;lt;num: base&amp;gt; &amp;lt;num: exponent&amp;gt; - power&lt;br /&gt;
  mod &amp;lt;num: num&amp;gt; &amp;lt;num: denum&amp;gt; - float modulo function&lt;br /&gt;
  min [&amp;lt;num: arg&amp;gt; ...] - find minimum&lt;br /&gt;
  max [&amp;lt;num: arg&amp;gt; ...] - find maximum&lt;br /&gt;
  mag [&amp;lt;num: arg&amp;gt; ...] - magnitude (sqrt of sum of squares)&lt;br /&gt;
  arg &amp;lt;num: real part&amp;gt; &amp;lt;num: imaginary part&amp;gt; - argument angle&lt;br /&gt;
  hz2midi &amp;lt;num: value in Hz&amp;gt; [&amp;lt;num: tuning frequency (for note # 69, def 440.)&amp;gt;] - convert to MIDI note number&lt;br /&gt;
  midi2hz &amp;lt;num: MIDI note number&amp;gt; [&amp;lt;num: tuning frequency (for note # 69, def 440.)&amp;gt;] - convert to frequency in Hz&lt;br /&gt;
  cat &amp;lt;any: item&amp;gt;... - concatenate to a single symbol&lt;br /&gt;
  basename &amp;lt;sym: filepath&amp;gt; - get filename part of filepath (last component)&lt;br /&gt;
  dirname &amp;lt;sym: filepath&amp;gt; - get directory part of filepath (or '.' if no path)&lt;br /&gt;
  extension &amp;lt;sym: filepath&amp;gt; - get extension part of filepath (after the last '.')&lt;br /&gt;
  stripext &amp;lt;sym: filepath&amp;gt; - remove extension from filepath (including the '.')&lt;br /&gt;
  not &amp;lt;num: linear value&amp;gt; - integer negation&lt;br /&gt;
  if &amp;lt;num: condition&amp;gt; &amp;lt;any: true value&amp;gt; &amp;lt;any: false value&amp;gt; - choose between two values (both conditional values are evaluated)&lt;br /&gt;
  case &amp;lt;num: index&amp;gt; [&amp;lt;any: value for index 1, 2 etc.&amp;gt; ...] - choose between multiple values (all conditional values are evaluated)&lt;br /&gt;
  typeof &amp;lt;any: arg&amp;gt; - get class/type name of value or object&lt;br /&gt;
  classof &amp;lt;any: arg&amp;gt; - get class/type of value or object&lt;br /&gt;
  getid &amp;lt;obj: reference&amp;gt; - get object id&lt;br /&gt;
  getobj &amp;lt;symbol: id&amp;gt; - get object by id&lt;br /&gt;
  obj &amp;lt;symbol: id&amp;gt; - get object by id&lt;br /&gt;
  class &amp;lt;sym: class name&amp;gt; - get class/type by name&lt;br /&gt;
  print print value or object&lt;br /&gt;
  aa &amp;lt;sym|any: arg&amp;gt; [&amp;lt;any: replacement if arg is #1, #2, etc&amp;gt; [&amp;lt;replacement if arg is 0&amp;gt;]] - replace abstraction argument by default value&lt;br /&gt;
  info &amp;lt;'classes'|'class'|'functions'&amp;gt; [&amp;lt;any: args&amp;gt;] [&amp;lt;mat: container&amp;gt;] - get info (post to console window or store into container if given)&lt;br /&gt;
  checkversion &amp;lt;num: major version&amp;gt; [&amp;lt;num: minor version&amp;gt; [&amp;lt;num: release&amp;gt;]] - check whether the running FTM corresponds to given version and release&lt;br /&gt;
  ftm &amp;lt;sym: FTM system function&amp;gt; &amp;lt;list: arguments&amp;gt;&lt;br /&gt;
  FTM alias for 'ftm'&lt;br /&gt;
  ftm version - get FTM version as symbol&lt;br /&gt;
  ftm exprerrcheck &amp;lt;0|'none'|1|'loose'|2|'normal'|3|'strict'&amp;gt; - set expression evaluation error checking level&lt;br /&gt;
  ftm exprerrcheck - get FTM expression evaluation error checking level&lt;br /&gt;
  ftm exterrors - post current errors of FTM externals&lt;br /&gt;
  version - get FTM version as symbol (deprecated)&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=List_of_functions&amp;diff=2790</id>
		<title>List of functions</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=List_of_functions&amp;diff=2790"/>
				<updated>2010-07-05T13:29:30Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of the currently supported Functions.  For a clear explanation of the differences between Functions and Methods, please refer to the help file of ftm.mess, under the patcher functions &amp;amp; methods.&lt;br /&gt;
&lt;br /&gt;
  sin &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  cos &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  tan &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  asin &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  acos &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  atan &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  sinh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  cosh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  tanh &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  abs &amp;lt;num: value&amp;gt; - standard math function - get absolute value&lt;br /&gt;
  log &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  logabs &amp;lt;num: value&amp;gt; - standard math function - logarithm of absolute value&lt;br /&gt;
  log10 &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  exp &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  sqrt &amp;lt;num: value&amp;gt; - standard math function&lt;br /&gt;
  trunc &amp;lt;num: value&amp;gt; - standard math function - truncate to integer value&lt;br /&gt;
  round &amp;lt;num: value&amp;gt; - standard math function - round to integer value nearest to current value&lt;br /&gt;
  ceil &amp;lt;num: value&amp;gt; - standard math function - round to smallest integral value not less than current value&lt;br /&gt;
  floor &amp;lt;num: value&amp;gt; - standard math function - round to largest integral value not less than current value&lt;br /&gt;
  lin2db &amp;lt;num: value&amp;gt; - standard math function - convert linear amplitude value to value in decibel&lt;br /&gt;
  db2lin &amp;lt;num: value&amp;gt; - standard math function - convert value in decibel to linear amplitude value&lt;br /&gt;
  lin2cent &amp;lt;num: value&amp;gt; - standard math function - convert linear value to value in cent&lt;br /&gt;
  cent2lin &amp;lt;num: value&amp;gt; - standard math function - convert value in cent to linear value&lt;br /&gt;
  new &amp;lt;sym: class name&amp;gt; [&amp;lt;any: instantiation arguments&amp;gt; ...] - create object of given class&lt;br /&gt;
  int &amp;lt;num: arg&amp;gt; - convert to integer value&lt;br /&gt;
  i alias for 'int'&lt;br /&gt;
  float &amp;lt;num: arg&amp;gt; - convert to floating-point value&lt;br /&gt;
  f alias for 'float'&lt;br /&gt;
  symbol &amp;lt;sym: arg&amp;gt; - convert to symbol&lt;br /&gt;
  s alias for 'symbol'&lt;br /&gt;
  list [&amp;lt;obj|any: list args&amp;gt;...] - convert objects to list&lt;br /&gt;
  listhead [&amp;lt;any: list args&amp;gt; ...] - get list head&lt;br /&gt;
  listtail [&amp;lt;any: list args&amp;gt; ...] - get list tail&lt;br /&gt;
  listlen [&amp;lt;any: list args&amp;gt; ...] - get list size&lt;br /&gt;
  listnth &amp;lt;num: index&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get nth list element (indices starting from 1)&lt;br /&gt;
  listelem &amp;lt;num: index&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get list element&lt;br /&gt;
  listsub &amp;lt;num: index&amp;gt; &amp;lt;num: len&amp;gt; [&amp;lt;any: args&amp;gt; &amp;gt;...] - get sub-list&lt;br /&gt;
  l alias for 'list'&lt;br /&gt;
  lhead alias for 'listhead'&lt;br /&gt;
  ltail alias for 'listtail'&lt;br /&gt;
  llen alias for 'listlen'&lt;br /&gt;
  lnth alias for 'listnth'&lt;br /&gt;
  lelem alias for 'listelem'&lt;br /&gt;
  lsub alias for 'listsub'&lt;br /&gt;
  unique - generate unique integer number&lt;br /&gt;
  random [&amp;lt;num: min&amp;gt;] &amp;lt;num: max&amp;gt; - generate (float) random number (min &amp;lt;= x &amp;lt; max)&lt;br /&gt;
  clip &amp;lt;num: value&amp;gt; [&amp;lt;num: lower boundary&amp;gt;] &amp;lt;num: upper boundary&amp;gt; - clip value&lt;br /&gt;
  pow &amp;lt;num: base&amp;gt; &amp;lt;num: exponent&amp;gt; - power&lt;br /&gt;
  mod &amp;lt;num: num&amp;gt; &amp;lt;num: denum&amp;gt; - float modulo function&lt;br /&gt;
  min [&amp;lt;num: arg&amp;gt; ...] - find minimum&lt;br /&gt;
  max [&amp;lt;num: arg&amp;gt; ...] - find maximum&lt;br /&gt;
  mag [&amp;lt;num: arg&amp;gt; ...] - magnitude (sqrt of sum of squares)&lt;br /&gt;
  arg &amp;lt;num: real part&amp;gt; &amp;lt;num: imaginary part&amp;gt; - argument angle&lt;br /&gt;
  hz2midi &amp;lt;num: value in Hz&amp;gt; [&amp;lt;num: tuning frequency (for note # 69, def 440.)&amp;gt;] - convert to MIDI note number&lt;br /&gt;
  midi2hz &amp;lt;num: MIDI note number&amp;gt; [&amp;lt;num: tuning frequency (for note # 69, def 440.)&amp;gt;] - convert to frequency in Hz&lt;br /&gt;
  cat &amp;lt;any: item&amp;gt;... - concatenate to a single symbol&lt;br /&gt;
  basename &amp;lt;sym: filepath&amp;gt; - get filename part of filepath (last component)&lt;br /&gt;
  dirname &amp;lt;sym: filepath&amp;gt; - get directory part of filepath (or '.' if no path)&lt;br /&gt;
  extension &amp;lt;sym: filepath&amp;gt; - get extension part of filepath (after the last '.')&lt;br /&gt;
  stripext &amp;lt;sym: filepath&amp;gt; - remove extension from filepath (including the '.')&lt;br /&gt;
  not &amp;lt;num: linear value&amp;gt; - integer negation&lt;br /&gt;
  if &amp;lt;num: condition&amp;gt; &amp;lt;any: true value&amp;gt; &amp;lt;any: false value&amp;gt; - choose between two values (both conditional values are evaluated)&lt;br /&gt;
  case &amp;lt;num: index&amp;gt; [&amp;lt;any: value for index 1, 2 etc.&amp;gt; ...] - choose between multiple values (all conditional values are evaluated)&lt;br /&gt;
  typeof &amp;lt;any: arg&amp;gt; - get class/type name of value or object&lt;br /&gt;
  classof &amp;lt;any: arg&amp;gt; - get class/type of value or object&lt;br /&gt;
  getid &amp;lt;obj: reference&amp;gt; - get object id&lt;br /&gt;
  getobj &amp;lt;symbol: id&amp;gt; - get object by id&lt;br /&gt;
  obj &amp;lt;symbol: id&amp;gt; - get object by id&lt;br /&gt;
  class &amp;lt;sym: class name&amp;gt; - get class/type by name&lt;br /&gt;
  print print value or object&lt;br /&gt;
  aa &amp;lt;sym|any: arg&amp;gt; [&amp;lt;any: replacement if arg is #1, #2, etc&amp;gt; [&amp;lt;replacement if arg is 0&amp;gt;]] - replace abstraction argument by default value&lt;br /&gt;
  info &amp;lt;'classes'|'class'|'functions'&amp;gt; [&amp;lt;any: args&amp;gt;] [&amp;lt;mat: container&amp;gt;] - get info (post to console window or store into container if given)&lt;br /&gt;
  checkversion &amp;lt;num: major version&amp;gt; [&amp;lt;num: minor version&amp;gt; [&amp;lt;num: release&amp;gt;]] - check whether the running FTM corresponds to given version and release&lt;br /&gt;
  ftm &amp;lt;sym: FTM system function&amp;gt; &amp;lt;list: arguments&amp;gt;&lt;br /&gt;
  FTM alias for 'ftm'&lt;br /&gt;
  ftm version - get FTM version as symbol&lt;br /&gt;
  ftm exprerrcheck &amp;lt;0|'none'|1|'loose'|2|'normal'|3|'strict'&amp;gt; - set expression evaluation error checking level&lt;br /&gt;
  ftm exprerrcheck - get FTM expression evaluation error checking level&lt;br /&gt;
  ftm exterrors - post current errors of FTM externals&lt;br /&gt;
  version - get FTM version as symbol (deprecated)&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Documentation&amp;diff=2789</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Documentation&amp;diff=2789"/>
				<updated>2010-07-05T13:27:09Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: /* Functions and Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
The FTM &amp;amp; Co [[Download | releases]] come with help patches and basic tutorials. In addition, there are these:&lt;br /&gt;
&lt;br /&gt;
* [[FAQ]]: Frequently Asked Questions&lt;br /&gt;
* [[:Category:FAQ|FAQ Index]]: The index of all FAQ topics&lt;br /&gt;
* [[Special:Categories | List of Documentation Categories]] &lt;br /&gt;
&lt;br /&gt;
== FTM Basics ==&lt;br /&gt;
&lt;br /&gt;
* [[Tutorials]]&lt;br /&gt;
* [[Expressions]] ... all about expressions in FTM&lt;br /&gt;
* [[Message Box]] ... the ''ftm.mess'' external&lt;br /&gt;
* [[Object and Value Definitions]] ... the ''ftm.object'' external&lt;br /&gt;
* [[Gabor Timing]] ... might need some explantions&lt;br /&gt;
&lt;br /&gt;
=== Functions and Methods ===&lt;br /&gt;
&lt;br /&gt;
* [[list of functions]] ... a list of currently available Functions&lt;br /&gt;
* [[find method]] ... the ''find'' method of fmat&lt;br /&gt;
* [[if function]] ... the ''if'' function&lt;br /&gt;
&lt;br /&gt;
== FTM &amp;amp; Co Reference ==&lt;br /&gt;
&lt;br /&gt;
* [[FTM Classes]] ... data structures such as fmat, dict, track, etc.&lt;br /&gt;
* [[FTM Modules]] ... set of basic FTM externals&lt;br /&gt;
* [[Gabor Modules]] ... externals of the [[Gabor]] package&lt;br /&gt;
* [[MnM Modules]] ... externals of the [[MnM]] package&lt;br /&gt;
&lt;br /&gt;
== FTM Development ==&lt;br /&gt;
&lt;br /&gt;
* The FTM header files are also included in the FTMlib framework that is part of the standard [[Download | FTM distributions]].&lt;br /&gt;
&lt;br /&gt;
* [http://recherche.ircam.fr/equipes/temps-reel/ftm/api/ FTM API reference documentation] ... Doxygen API documentation generated from the FTM sources at the [http://sourceforge.net/projects/ftm/ FTM SourceForge project]&lt;br /&gt;
&lt;br /&gt;
* [[SDK]] ... All you need to write externals using FTM&lt;br /&gt;
&lt;br /&gt;
* [[Developer's Corner]] ... Tips and tricks how to write classes and externals using FTM&lt;br /&gt;
&lt;br /&gt;
* [http://www.sourceforge.net/projects/ftm ftm-devel] ... Developer's mailing list on sourceforge&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2788</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2788"/>
				<updated>2010-07-05T13:24:14Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creation - Elements of the call ==&lt;br /&gt;
&lt;br /&gt;
An EXPRession is a sentence which can be applied to the content of an FMAT or an FVEC. It can be created in an FTM.object (class expr) or in an FTM.message.  In both case, it shares the same syntax: &lt;br /&gt;
&lt;br /&gt;
1_ it is surrounded by simple quotes ' '&lt;br /&gt;
&lt;br /&gt;
2_ it is then encapsulated within parenthesis (to be executed like all of FTM's code)&lt;br /&gt;
&lt;br /&gt;
For instance, the expression returning the value 1 is &lt;br /&gt;
'(1)'&lt;br /&gt;
&lt;br /&gt;
You can use all the FTM Functions available to create your expression. To get the full list, &lt;br /&gt;
&lt;br /&gt;
within ftm.mess&lt;br /&gt;
&lt;br /&gt;
within a ftm.object&lt;br /&gt;
&lt;br /&gt;
scope of variable&lt;br /&gt;
&lt;br /&gt;
Context of use&lt;br /&gt;
&lt;br /&gt;
Fill&lt;br /&gt;
&lt;br /&gt;
Apply&lt;br /&gt;
&lt;br /&gt;
Lookup&lt;br /&gt;
&lt;br /&gt;
Find&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple examples ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unity&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=FTM_Classes&amp;diff=2787</id>
		<title>FTM Classes</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=FTM_Classes&amp;diff=2787"/>
				<updated>2010-07-05T13:24:05Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Class ''fmat'' ==&lt;br /&gt;
&lt;br /&gt;
Floating point matrix.&lt;br /&gt;
&lt;br /&gt;
== Class ''fvec'' ==&lt;br /&gt;
&lt;br /&gt;
Reference to a row or column vector of an fmat.&lt;br /&gt;
&lt;br /&gt;
== Class ''mat'' ==&lt;br /&gt;
&lt;br /&gt;
Matrix or table of any value.&lt;br /&gt;
&lt;br /&gt;
== Class ''expr'' ==&lt;br /&gt;
&lt;br /&gt;
A defition of an expression.  See the [[Expr demystified | expression help]] for more info&lt;br /&gt;
&lt;br /&gt;
== Class ''dict'' ==&lt;br /&gt;
&lt;br /&gt;
Dictionary, or lookup-table, or hash-table, of any values.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Class ''track'' ==&lt;br /&gt;
&lt;br /&gt;
A track represents a time-tagged sequence of events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About tracks, sequences, markers, bars, metrics and tempo ===&lt;br /&gt;
&lt;br /&gt;
Each ''scoob track'' consists of four sequences:&lt;br /&gt;
&lt;br /&gt;
# the events sequence of scoobs (score objects).  This one is iterated over by default.&lt;br /&gt;
#; access: 	any access method is by default to the event sequence.  To get that, use: &amp;lt;tt&amp;gt; ($mytrack events) &amp;lt;/tt&amp;gt; &lt;br /&gt;
#; iteration:	&amp;lt;tt&amp;gt; [ftm.iter] &amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt; [ftm.iter @mode events] &amp;lt;/tt&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
# the tempo sequence contains float values with the current tempo in bpm.  &lt;br /&gt;
#; access: 	&amp;lt;tt&amp;gt; ($mytrack tempo) &amp;lt;/tt&amp;gt; &lt;br /&gt;
#; iteration:	&amp;lt;tt&amp;gt; [ftm.iter @mode tempo] &amp;lt;/tt&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
# the metric sequence contains metric events for bars and metric signature changes &lt;br /&gt;
#; access: 	&amp;lt;tt&amp;gt; ($mytrack metric) &amp;lt;/tt&amp;gt; &lt;br /&gt;
#; iteration:	&amp;lt;tt&amp;gt; [ftm.iter @mode metric] &amp;lt;/tt&amp;gt;&lt;br /&gt;
#; properties :	&lt;br /&gt;
#:;     num :	bar number&lt;br /&gt;
#:;	meter : metric signature as string, e.g. &amp;lt;tt&amp;gt;4/4&amp;lt;/tt&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
# the marker sequence contains marker events that can bear any property,  but above all cue, label (N.B.: there is also a separate cue property of the scoob score object)&lt;br /&gt;
#;   access: 	&amp;lt;tt&amp;gt; ($mytrack markers) &amp;lt;/tt&amp;gt; &lt;br /&gt;
#;   iteration:	&amp;lt;tt&amp;gt; [ftm.iter @mode markers] &amp;lt;/tt&amp;gt;&lt;br /&gt;
#;   properties :	&lt;br /&gt;
#:;	 cue :	cue number&lt;br /&gt;
#:;	 label : text&lt;br /&gt;
#:;	 &amp;lt;any&amp;gt; : &amp;lt;any type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]] &lt;br /&gt;
[[Category:FTM Documentation]]&lt;br /&gt;
[[Category:track Class]]&lt;br /&gt;
[[Category:sequence Class]]&lt;br /&gt;
[[Category:fmat Class]] [[Category:expr Class]] [[Category:ftm.object]]&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2786</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2786"/>
				<updated>2010-07-05T13:17:22Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creation - Elements of the call ==&lt;br /&gt;
&lt;br /&gt;
An EXPRession is a sentence which can be applied to the content of an FMAT or an FVEC. It can be created in an FTM.object (class expr) or in an FTM.message.  In both case, it shares the same syntax: &lt;br /&gt;
&lt;br /&gt;
1_ it is surrounded by simple quotes ' '&lt;br /&gt;
2_ it is then encapsulated within parenthesis (to be executed like all of FTM's code)&lt;br /&gt;
&lt;br /&gt;
For in&lt;br /&gt;
&lt;br /&gt;
Function&lt;br /&gt;
Methods&lt;br /&gt;
&lt;br /&gt;
within ftm.mess&lt;br /&gt;
&lt;br /&gt;
within a ftm.object&lt;br /&gt;
&lt;br /&gt;
scope of variable&lt;br /&gt;
&lt;br /&gt;
Context of use&lt;br /&gt;
&lt;br /&gt;
Fill&lt;br /&gt;
&lt;br /&gt;
Apply&lt;br /&gt;
&lt;br /&gt;
Lookup&lt;br /&gt;
&lt;br /&gt;
Find&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple examples ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unity&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2785</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2785"/>
				<updated>2010-07-05T13:09:55Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class and its object.&lt;br /&gt;
&lt;br /&gt;
Creation - Elements of the call&lt;br /&gt;
&lt;br /&gt;
within ftm.mess&lt;br /&gt;
&lt;br /&gt;
within a ftm.object&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simple examples:&lt;br /&gt;
&lt;br /&gt;
Unity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context of use&lt;br /&gt;
&lt;br /&gt;
Fill&lt;br /&gt;
&lt;br /&gt;
Apply&lt;br /&gt;
&lt;br /&gt;
Lookup&lt;br /&gt;
&lt;br /&gt;
Find&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2784</id>
		<title>Expr demystified</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expr_demystified&amp;diff=2784"/>
				<updated>2010-07-05T13:03:50Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a simple reference for the EXPR class and its object.&lt;br /&gt;
&lt;br /&gt;
Unity&lt;br /&gt;
&lt;br /&gt;
elements of:&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expressions&amp;diff=2783</id>
		<title>Expressions</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expressions&amp;diff=2783"/>
				<updated>2010-07-05T13:02:33Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FTM expressions are used in the following contexts&lt;br /&gt;
* the FTM '''message box''' ... the [[Message Box | ''ftm.mess'']] external&lt;br /&gt;
* FTM '''definitions''' ... the [[Object and Value Definitions | ''ftm.object'']] external&lt;br /&gt;
* FTM '''externals''' ... arguments of any other FTM external&lt;br /&gt;
* the [[expr demystified | expr class/object]] a class just like ''fmat'' or ''dict'' representing an expression&lt;br /&gt;
&lt;br /&gt;
The syntax of FTM expressions is an extension of the Max list and message syntax known from the Max message box and externals.&lt;br /&gt;
&lt;br /&gt;
The help patch of the [[Message Box | ''ftm.mess'']] external gives a complete overview of the use of FTM expressions in the FTM message box.&lt;br /&gt;
&lt;br /&gt;
== Single Values ==&lt;br /&gt;
&lt;br /&gt;
The values in FTM expressions can be int, float, symbol or references to FTM object.&lt;br /&gt;
Single values can be represended by the following items:&lt;br /&gt;
* a '''''primitive''''' value (int, float, symbol) such as '1', '2.3' and 'four'&lt;br /&gt;
* a '''''named''''' value such as '$myobj'&lt;br /&gt;
* an '''''element''''' of an object such as '$myobj[7]'&lt;br /&gt;
* a numbered '''''argument''''' such as '$1', '$2', etc.&lt;br /&gt;
* a '''''tuple''''' such as '{1 2.3 three $four}'&lt;br /&gt;
* an expression within '''''parentheses''''' such as '(1 + 2.3 / $4)'&lt;br /&gt;
&lt;br /&gt;
=== Primitive Values ===&lt;br /&gt;
Examples of ''primitive values'' are:&lt;br /&gt;
* 1 ... an int&lt;br /&gt;
* -2 ... an int&lt;br /&gt;
* 2.3 ... a float&lt;br /&gt;
* -4. ... a float&lt;br /&gt;
* 5.67e-4 ... a float&lt;br /&gt;
* .89 ... a float&lt;br /&gt;
* ten ... a symbol&lt;br /&gt;
* 11-12 ... a symbol (because no space!)&lt;br /&gt;
* -thirteen ... a symbol&lt;br /&gt;
&lt;br /&gt;
=== Named Values &amp;amp; Variables===&lt;br /&gt;
''Named values'' and ''variables'', always representing a single value, are used in expressions with a leading dollar ('$'), as for example:&lt;br /&gt;
* $x&lt;br /&gt;
* $myobject&lt;br /&gt;
&lt;br /&gt;
Constant ''named values'' are defined by FTM definitions using ''ftm.object'' and one should think of them as ''constants'' that don't change in runtime but allow that a patch can be easily reconfigured for different parameters.&lt;br /&gt;
&lt;br /&gt;
In addition, there are two kinds of ''variables'' that use the same $-syntax in expressions as names values:&lt;br /&gt;
* declared variables (defined by FTM definitions using the ''var'' keyword in ''ftm.object'')&lt;br /&gt;
* private properties of the expression (defined in the inspector of ''ftm.mess'')&lt;br /&gt;
&lt;br /&gt;
Even if a named value ''$mydict'' and a variable ''$myvar'' use the same $-syntax, they behave very differnet in some situations.&lt;br /&gt;
* named values cannot be used as left values of assignments (see below)&lt;br /&gt;
* objects and externals listen to named values&lt;br /&gt;
&lt;br /&gt;
=== Elements and Properties of Objects ===&lt;br /&gt;
An ''element'' or a ''property'' of an object can be accessed with FTM expressions using brackets ('[ ]'), as for example:&lt;br /&gt;
* $myvec[0]&lt;br /&gt;
* $mymat[0 0]&lt;br /&gt;
* $mydict[x]&lt;br /&gt;
* {0 1 2.3 $four}[$1]&lt;br /&gt;
* $mysccob[pitch]&lt;br /&gt;
&lt;br /&gt;
=== Numbered Arguments ===&lt;br /&gt;
''Numbered arguments'' ('$1', '$2', '$3' etc) are especially useful in the FTM message box and can be used in the ''expr'' object. In expressions of FTM definitions with ''ftm.object'' they don't make sense and generate an error.&lt;br /&gt;
&lt;br /&gt;
=== Tuples ===&lt;br /&gt;
A ''tuple'' is an FTM object pretty much like an ''fmat'' or a ''dict'' and can show up in expressions with braces ('{ }'). The elements of a tuple are single values separated by blancs. The single value is a reference to a ''tuple''. Since tuples are immutable objects (they don't have any methods that allow changing their size or thier values) they can be used in a similar way as lists, giving the possibilty to create tuples that contain tuples). Example of tuples are:&lt;br /&gt;
* {1 2.3 three $four}&lt;br /&gt;
* {1 2 3 {4 5 6} 7}&lt;br /&gt;
* {1 + 2 + 3 + 4} (7 elements!)&lt;br /&gt;
&lt;br /&gt;
== Lists ==&lt;br /&gt;
&lt;br /&gt;
Evidently single values can be concatenated to argument lists (in the message box ''lists'' or ''messages'') with spaces:&lt;br /&gt;
* 1 2.3 three&lt;br /&gt;
* 4 + 5.5 / six (this is a list of 5 elements)&lt;br /&gt;
* $myobj set 7 9.8 ten&lt;br /&gt;
&lt;br /&gt;
== Parentheses ==&lt;br /&gt;
&lt;br /&gt;
Parentheses in FTM expressions – '(' and ')' – always will (try to) evaluate the contained sub-expressions to a single value.&lt;br /&gt;
&lt;br /&gt;
Inside parentheses the following expressions are allowed:&lt;br /&gt;
* a '''''value''''' such as '(1)' or '($x)' or '($mydict[x])' (in which case the parentheses are useless)&lt;br /&gt;
* an '''''infix expression''''' using binary operators such as '(4 + 5.5 / $six)'&lt;br /&gt;
* an '''''assignement''''' such as '($x = 7)' or '($mydict[0] = zero)'&lt;br /&gt;
* an '''''increment''''' such as '($x += 0.5)' or '($myfmat[0 0] += 0.1)' (also '-=', '*=' and '/=')&lt;br /&gt;
* a '''''function call''''' such as '(random -90 0)'&lt;br /&gt;
* a '''''method call''''' such as '($myobj set 7 9.8 ten)'&lt;br /&gt;
&lt;br /&gt;
=== Infix Expressions and Binary Operators ===&lt;br /&gt;
Binary operators such as '+' and '*' are evaluated in ''infix expressions'' within parentheses.&lt;br /&gt;
The following operators are provided:&lt;br /&gt;
* ($1 + $2 - $3 * $4 / $5) ... basic artimetic operators (division has always floating-point result)&lt;br /&gt;
* ($1 % $2) ... modulo operator (integer and floating-point)&lt;br /&gt;
* ($1 ^ $2) ... power operator&lt;br /&gt;
* ($1 &amp;gt; $2) ($1 &amp;lt; $2) ($1 &amp;gt;= $2) ($1 &amp;lt;= $2) ($1 == $2) ($1 != $2)  ... comparisons operators (result is 0 or 1)&lt;br /&gt;
* ($1 &amp;amp;&amp;amp; $2) ($1 || $2) ... logical operators (AND and OR) applying to integer values (non-0 is true and 0 is false, result is 0 or 1)&lt;br /&gt;
* ($1 &amp;amp; $2) ($1 | $2) ... bitwise logical operators (AND and OR) applying to integer values&lt;br /&gt;
* ($1 &amp;lt;&amp;lt; $2) ($1 &amp;gt;&amp;gt; $2) ... bitshift operators (LEFT and RIGHT) applying to integer values&lt;br /&gt;
&lt;br /&gt;
Operators can be chained in which case the usual (C) precedence rules are applied.&lt;br /&gt;
&lt;br /&gt;
=== Assignments, Increments, etc ===&lt;br /&gt;
The '=' can appear in the following operations:&lt;br /&gt;
* ($x = 42) ... assignment of a value to a variable&lt;br /&gt;
* ($mydict[two] = zwei) ... assignment of a value to an element of an object&lt;br /&gt;
* ($myfmat := $yourfmat) ... assignment of the content of an object from another&lt;br /&gt;
* ($x += 1) ... increment of a variable value&lt;br /&gt;
* ($myfmat[0 0] += 0.1) ... increment of an element of an object&lt;br /&gt;
* ($myfmat += $yourfmat) ... increment of an object by a value or an object (currently implemented for fmat only)&lt;br /&gt;
&lt;br /&gt;
FTM expressions provide the two assignment operators '=' and ':='.&lt;br /&gt;
While '=' assigns single values to variables and elements of objects, the ':=' operator applies to the content of FTM object operands.&lt;br /&gt;
&lt;br /&gt;
The operator ':=' copies the content of the right operand to the left operand.&lt;br /&gt;
If the operands are of the same class the result of the operation are two identical objects, otherwise the left operand will represent as complete as possible the content of the right operand.&lt;br /&gt;
The same effect can be obtained by a ''set'' message with a single argument.&lt;br /&gt;
&lt;br /&gt;
In addition to the increment operator '+=', the operators '-=', '*=', and '/=' are provided.&lt;br /&gt;
All four operators can be applied to variables and elements with primitive values as well as to objects (currently implemented for fmat only).&lt;br /&gt;
&lt;br /&gt;
Note that (constant) named values cannot appear as left values of the simple assignement operand '=' while all other assignment operators can be applied so far the named value is an FTM object. Named primitive values cannot be left values of any assignment.&lt;br /&gt;
&lt;br /&gt;
=== Function &amp;amp; Method Calls ===&lt;br /&gt;
&lt;br /&gt;
Functions and FTM object methods are called by prefix expressions within parenthesis such as:&lt;br /&gt;
* (random) ... call the function ''random'' returning a floating-point random value between 0 and 1&lt;br /&gt;
* (sin ($phi * 3.141593)) ... call the function ''sin'' with the result of the given multiplication&lt;br /&gt;
* (cat $1 + $2) ... concatenate the two arguments to a single symbol with '+' in the middle&lt;br /&gt;
* (new fmat 7 7) ... call the ''new''-function creating a new fmat with the given instantiation arguments&lt;br /&gt;
* (info functions) ... call the ''info'' system function printing a list of the available functions to the console&lt;br /&gt;
&lt;br /&gt;
* ($myfmat set 0 0 1. 0.5 0.25 0.125) ... call the method ''set'' of an fmat with the given arguments (returns the fmat itself)&lt;br /&gt;
* ($myfmat iget 1.5 2.2) ... call the method ''iget'' of an fmat with the given arguments (returns an interpolated value)&lt;br /&gt;
* ((new fmat 7 7) fill 7) ... call ''fill'' method on a newly created fmat&lt;br /&gt;
* ($model[coeffs] random) ... call the ''random'' method of an fmat stored as element ''coeffs'' in the dict bound to''model''&lt;br /&gt;
&lt;br /&gt;
If the first value within parenthesis is a symbol and the second (if any) is not an operator, the sub-expression is evaluated to the result of a function call interpreting the symbol as function name and the following (optional) values as function arguments.&lt;br /&gt;
Note that the first argument of a function cannot be an operator since an expression such as '(random + 42)' would be evaluated as infix expression.&lt;br /&gt;
&lt;br /&gt;
Similar to a function call, a method call of an FTM objects starts with the object followed by a symbol, the method name, and the optional arguments passed to the method.&lt;br /&gt;
&lt;br /&gt;
The syntax of function and method calls can be summarized as follows:&lt;br /&gt;
* '(' &amp;lt;function name&amp;gt; [&amp;lt;function arguments&amp;gt; ... ] ')'&lt;br /&gt;
* '(' &amp;lt;object reference&amp;gt; &amp;lt;method name&amp;gt; [&amp;lt;method arguments&amp;gt; ... ] ')'&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]] [[Category:Expressions]] [[Category:ftm.mess]] [[Category:FTM Documentation]]&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=Expressions&amp;diff=2782</id>
		<title>Expressions</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=Expressions&amp;diff=2782"/>
				<updated>2010-07-05T13:02:13Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FTM expressions are used in the following contexts&lt;br /&gt;
* the FTM '''message box''' ... the [[Message Box | ''ftm.mess'']] external&lt;br /&gt;
* FTM '''definitions''' ... the [[Object and Value Definitions | ''ftm.object'']] external&lt;br /&gt;
* FTM '''externals''' ... arguments of any other FTM external&lt;br /&gt;
* the [[expr demystified | ... expr class/object ...]] a class just like ''fmat'' or ''dict'' representing an expression&lt;br /&gt;
&lt;br /&gt;
The syntax of FTM expressions is an extension of the Max list and message syntax known from the Max message box and externals.&lt;br /&gt;
&lt;br /&gt;
The help patch of the [[Message Box | ''ftm.mess'']] external gives a complete overview of the use of FTM expressions in the FTM message box.&lt;br /&gt;
&lt;br /&gt;
== Single Values ==&lt;br /&gt;
&lt;br /&gt;
The values in FTM expressions can be int, float, symbol or references to FTM object.&lt;br /&gt;
Single values can be represended by the following items:&lt;br /&gt;
* a '''''primitive''''' value (int, float, symbol) such as '1', '2.3' and 'four'&lt;br /&gt;
* a '''''named''''' value such as '$myobj'&lt;br /&gt;
* an '''''element''''' of an object such as '$myobj[7]'&lt;br /&gt;
* a numbered '''''argument''''' such as '$1', '$2', etc.&lt;br /&gt;
* a '''''tuple''''' such as '{1 2.3 three $four}'&lt;br /&gt;
* an expression within '''''parentheses''''' such as '(1 + 2.3 / $4)'&lt;br /&gt;
&lt;br /&gt;
=== Primitive Values ===&lt;br /&gt;
Examples of ''primitive values'' are:&lt;br /&gt;
* 1 ... an int&lt;br /&gt;
* -2 ... an int&lt;br /&gt;
* 2.3 ... a float&lt;br /&gt;
* -4. ... a float&lt;br /&gt;
* 5.67e-4 ... a float&lt;br /&gt;
* .89 ... a float&lt;br /&gt;
* ten ... a symbol&lt;br /&gt;
* 11-12 ... a symbol (because no space!)&lt;br /&gt;
* -thirteen ... a symbol&lt;br /&gt;
&lt;br /&gt;
=== Named Values &amp;amp; Variables===&lt;br /&gt;
''Named values'' and ''variables'', always representing a single value, are used in expressions with a leading dollar ('$'), as for example:&lt;br /&gt;
* $x&lt;br /&gt;
* $myobject&lt;br /&gt;
&lt;br /&gt;
Constant ''named values'' are defined by FTM definitions using ''ftm.object'' and one should think of them as ''constants'' that don't change in runtime but allow that a patch can be easily reconfigured for different parameters.&lt;br /&gt;
&lt;br /&gt;
In addition, there are two kinds of ''variables'' that use the same $-syntax in expressions as names values:&lt;br /&gt;
* declared variables (defined by FTM definitions using the ''var'' keyword in ''ftm.object'')&lt;br /&gt;
* private properties of the expression (defined in the inspector of ''ftm.mess'')&lt;br /&gt;
&lt;br /&gt;
Even if a named value ''$mydict'' and a variable ''$myvar'' use the same $-syntax, they behave very differnet in some situations.&lt;br /&gt;
* named values cannot be used as left values of assignments (see below)&lt;br /&gt;
* objects and externals listen to named values&lt;br /&gt;
&lt;br /&gt;
=== Elements and Properties of Objects ===&lt;br /&gt;
An ''element'' or a ''property'' of an object can be accessed with FTM expressions using brackets ('[ ]'), as for example:&lt;br /&gt;
* $myvec[0]&lt;br /&gt;
* $mymat[0 0]&lt;br /&gt;
* $mydict[x]&lt;br /&gt;
* {0 1 2.3 $four}[$1]&lt;br /&gt;
* $mysccob[pitch]&lt;br /&gt;
&lt;br /&gt;
=== Numbered Arguments ===&lt;br /&gt;
''Numbered arguments'' ('$1', '$2', '$3' etc) are especially useful in the FTM message box and can be used in the ''expr'' object. In expressions of FTM definitions with ''ftm.object'' they don't make sense and generate an error.&lt;br /&gt;
&lt;br /&gt;
=== Tuples ===&lt;br /&gt;
A ''tuple'' is an FTM object pretty much like an ''fmat'' or a ''dict'' and can show up in expressions with braces ('{ }'). The elements of a tuple are single values separated by blancs. The single value is a reference to a ''tuple''. Since tuples are immutable objects (they don't have any methods that allow changing their size or thier values) they can be used in a similar way as lists, giving the possibilty to create tuples that contain tuples). Example of tuples are:&lt;br /&gt;
* {1 2.3 three $four}&lt;br /&gt;
* {1 2 3 {4 5 6} 7}&lt;br /&gt;
* {1 + 2 + 3 + 4} (7 elements!)&lt;br /&gt;
&lt;br /&gt;
== Lists ==&lt;br /&gt;
&lt;br /&gt;
Evidently single values can be concatenated to argument lists (in the message box ''lists'' or ''messages'') with spaces:&lt;br /&gt;
* 1 2.3 three&lt;br /&gt;
* 4 + 5.5 / six (this is a list of 5 elements)&lt;br /&gt;
* $myobj set 7 9.8 ten&lt;br /&gt;
&lt;br /&gt;
== Parentheses ==&lt;br /&gt;
&lt;br /&gt;
Parentheses in FTM expressions – '(' and ')' – always will (try to) evaluate the contained sub-expressions to a single value.&lt;br /&gt;
&lt;br /&gt;
Inside parentheses the following expressions are allowed:&lt;br /&gt;
* a '''''value''''' such as '(1)' or '($x)' or '($mydict[x])' (in which case the parentheses are useless)&lt;br /&gt;
* an '''''infix expression''''' using binary operators such as '(4 + 5.5 / $six)'&lt;br /&gt;
* an '''''assignement''''' such as '($x = 7)' or '($mydict[0] = zero)'&lt;br /&gt;
* an '''''increment''''' such as '($x += 0.5)' or '($myfmat[0 0] += 0.1)' (also '-=', '*=' and '/=')&lt;br /&gt;
* a '''''function call''''' such as '(random -90 0)'&lt;br /&gt;
* a '''''method call''''' such as '($myobj set 7 9.8 ten)'&lt;br /&gt;
&lt;br /&gt;
=== Infix Expressions and Binary Operators ===&lt;br /&gt;
Binary operators such as '+' and '*' are evaluated in ''infix expressions'' within parentheses.&lt;br /&gt;
The following operators are provided:&lt;br /&gt;
* ($1 + $2 - $3 * $4 / $5) ... basic artimetic operators (division has always floating-point result)&lt;br /&gt;
* ($1 % $2) ... modulo operator (integer and floating-point)&lt;br /&gt;
* ($1 ^ $2) ... power operator&lt;br /&gt;
* ($1 &amp;gt; $2) ($1 &amp;lt; $2) ($1 &amp;gt;= $2) ($1 &amp;lt;= $2) ($1 == $2) ($1 != $2)  ... comparisons operators (result is 0 or 1)&lt;br /&gt;
* ($1 &amp;amp;&amp;amp; $2) ($1 || $2) ... logical operators (AND and OR) applying to integer values (non-0 is true and 0 is false, result is 0 or 1)&lt;br /&gt;
* ($1 &amp;amp; $2) ($1 | $2) ... bitwise logical operators (AND and OR) applying to integer values&lt;br /&gt;
* ($1 &amp;lt;&amp;lt; $2) ($1 &amp;gt;&amp;gt; $2) ... bitshift operators (LEFT and RIGHT) applying to integer values&lt;br /&gt;
&lt;br /&gt;
Operators can be chained in which case the usual (C) precedence rules are applied.&lt;br /&gt;
&lt;br /&gt;
=== Assignments, Increments, etc ===&lt;br /&gt;
The '=' can appear in the following operations:&lt;br /&gt;
* ($x = 42) ... assignment of a value to a variable&lt;br /&gt;
* ($mydict[two] = zwei) ... assignment of a value to an element of an object&lt;br /&gt;
* ($myfmat := $yourfmat) ... assignment of the content of an object from another&lt;br /&gt;
* ($x += 1) ... increment of a variable value&lt;br /&gt;
* ($myfmat[0 0] += 0.1) ... increment of an element of an object&lt;br /&gt;
* ($myfmat += $yourfmat) ... increment of an object by a value or an object (currently implemented for fmat only)&lt;br /&gt;
&lt;br /&gt;
FTM expressions provide the two assignment operators '=' and ':='.&lt;br /&gt;
While '=' assigns single values to variables and elements of objects, the ':=' operator applies to the content of FTM object operands.&lt;br /&gt;
&lt;br /&gt;
The operator ':=' copies the content of the right operand to the left operand.&lt;br /&gt;
If the operands are of the same class the result of the operation are two identical objects, otherwise the left operand will represent as complete as possible the content of the right operand.&lt;br /&gt;
The same effect can be obtained by a ''set'' message with a single argument.&lt;br /&gt;
&lt;br /&gt;
In addition to the increment operator '+=', the operators '-=', '*=', and '/=' are provided.&lt;br /&gt;
All four operators can be applied to variables and elements with primitive values as well as to objects (currently implemented for fmat only).&lt;br /&gt;
&lt;br /&gt;
Note that (constant) named values cannot appear as left values of the simple assignement operand '=' while all other assignment operators can be applied so far the named value is an FTM object. Named primitive values cannot be left values of any assignment.&lt;br /&gt;
&lt;br /&gt;
=== Function &amp;amp; Method Calls ===&lt;br /&gt;
&lt;br /&gt;
Functions and FTM object methods are called by prefix expressions within parenthesis such as:&lt;br /&gt;
* (random) ... call the function ''random'' returning a floating-point random value between 0 and 1&lt;br /&gt;
* (sin ($phi * 3.141593)) ... call the function ''sin'' with the result of the given multiplication&lt;br /&gt;
* (cat $1 + $2) ... concatenate the two arguments to a single symbol with '+' in the middle&lt;br /&gt;
* (new fmat 7 7) ... call the ''new''-function creating a new fmat with the given instantiation arguments&lt;br /&gt;
* (info functions) ... call the ''info'' system function printing a list of the available functions to the console&lt;br /&gt;
&lt;br /&gt;
* ($myfmat set 0 0 1. 0.5 0.25 0.125) ... call the method ''set'' of an fmat with the given arguments (returns the fmat itself)&lt;br /&gt;
* ($myfmat iget 1.5 2.2) ... call the method ''iget'' of an fmat with the given arguments (returns an interpolated value)&lt;br /&gt;
* ((new fmat 7 7) fill 7) ... call ''fill'' method on a newly created fmat&lt;br /&gt;
* ($model[coeffs] random) ... call the ''random'' method of an fmat stored as element ''coeffs'' in the dict bound to''model''&lt;br /&gt;
&lt;br /&gt;
If the first value within parenthesis is a symbol and the second (if any) is not an operator, the sub-expression is evaluated to the result of a function call interpreting the symbol as function name and the following (optional) values as function arguments.&lt;br /&gt;
Note that the first argument of a function cannot be an operator since an expression such as '(random + 42)' would be evaluated as infix expression.&lt;br /&gt;
&lt;br /&gt;
Similar to a function call, a method call of an FTM objects starts with the object followed by a symbol, the method name, and the optional arguments passed to the method.&lt;br /&gt;
&lt;br /&gt;
The syntax of function and method calls can be summarized as follows:&lt;br /&gt;
* '(' &amp;lt;function name&amp;gt; [&amp;lt;function arguments&amp;gt; ... ] ')'&lt;br /&gt;
* '(' &amp;lt;object reference&amp;gt; &amp;lt;method name&amp;gt; [&amp;lt;method arguments&amp;gt; ... ] ')'&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]] [[Category:Expressions]] [[Category:ftm.mess]] [[Category:FTM Documentation]]&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	<entry>
		<id>https://ftm2.ircam.fr/index.php?title=FTM%26Co&amp;diff=2781</id>
		<title>FTM&amp;Co</title>
		<link rel="alternate" type="text/html" href="https://ftm2.ircam.fr/index.php?title=FTM%26Co&amp;diff=2781"/>
				<updated>2010-07-05T12:54:34Z</updated>
		
		<summary type="html">&lt;p&gt;Tremblap: /* Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
FTM is an extension for [http://www.cycling74.com/ Max/MSP] providing a small and simple real-time object system and a set of optimized services.&lt;br /&gt;
&lt;br /&gt;
* [[About | Read more about FTM]]&lt;br /&gt;
* [[Download | Download FTM]]&lt;br /&gt;
* [http://listes.ircam.fr/wws/info/ftm Join the FTM mailing-list]&lt;br /&gt;
&lt;br /&gt;
* [[Credits]]&lt;br /&gt;
&lt;br /&gt;
== [[Documentation]] ==&lt;br /&gt;
* [[Documentation|User Manual, References and other Resources]]&lt;br /&gt;
* [[Description of Packages]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
&lt;br /&gt;
== [[Applications]] ==&lt;br /&gt;
* [http://imtr.ircam.fr/index.php/CataRT CataRT]&lt;br /&gt;
* [[Gesture Follower]]&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
* [http://listes.ircam.fr/wws/info/ftm FTM mailing-list]&lt;br /&gt;
* [[Projects using FTM]] -- ''here you can put a link to your research or artistic project and a short word on how you use FTM in it''&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
* [http://sourceforge.net/projects/ftm/ FTM @ SourceForge.net]&lt;/div&gt;</summary>
		<author><name>Tremblap</name></author>	</entry>

	</feed>