2,076 changes: 2,076 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/classes/juce.Path.html

Large diffs are not rendered by default.

226 changes: 226 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/classes/juce.Point.html
@@ -0,0 +1,226 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>protoplug: Class juce.Point</title>
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<a href="http://osar.fr">
<div class=osarlogo> </div>
</a>
<br/>
<a href="http://osar.fr/protoplug">
<h1>protoplug</h1>
</a>
<span class="proto_subtitle">Lua API reference</span>

<ul>
<li><a href="../index.html">Index</a></li>
</ul>

<h2>Contents</h2>
<ul>
<li><a href="#Constructors">Constructors</a></li>
<li><a href="#Fields">Fields</a></li>
</ul>


<h2>Classes</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../classes/juce.AffineTransform.html">juce.AffineTransform</a></li>
<li><a href="../classes/juce.AudioFormatReader.html">juce.AudioFormatReader</a></li>
<li><a href="../classes/juce.Colour.html">juce.Colour</a></li>
<li><a href="../classes/juce.ColourGradient.html">juce.ColourGradient</a></li>
<li><a href="../classes/juce.Component.html">juce.Component</a></li>
<li><a href="../classes/juce.FillType.html">juce.FillType</a></li>
<li><a href="../classes/juce.Font.html">juce.Font</a></li>
<li><a href="../classes/juce.Graphics.html">juce.Graphics</a></li>
<li><a href="../classes/juce.Image.html">juce.Image</a></li>
<li><a href="../classes/juce.Justification.html">juce.Justification</a></li>
<li><a href="../classes/juce.LagrangeInterpolator.html">juce.LagrangeInterpolator</a></li>
<li><a href="../classes/juce.Line.html">juce.Line</a></li>
<li><a href="../classes/juce.Path.html">juce.Path</a></li>
<li><strong>juce.Point</strong></li>
<li><a href="../classes/juce.RectanglePlacement.html">juce.RectanglePlacement</a></li>
<li><a href="../classes/juce.Rectangle_float.html">juce.Rectangle_float</a></li>
<li><a href="../classes/juce.Rectangle_int.html">juce.Rectangle_int</a></li>
</ul>
<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../modules/plugin.html">plugin</a></li>
<li><a href="../modules/script.html">script</a></li>
<li><a href="../modules/midi.html">midi</a></li>
<li><a href="../modules/gui.html">gui</a></li>
<li><a href="../modules/polyGen.html">polyGen</a></li>
<li><a href="../modules/stereoFx.html">stereoFx</a></li>
</ul>
<h2>Examples</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../examples/classic-filter.lua.html">classic-filter.lua</a></li>
<li><a href="../examples/sine-organ.lua.html">sine-organ.lua</a></li>
<li><a href="../examples/midi-chordify.lua.html">midi-chordify.lua</a></li>
<li><a href="../examples/sinemouse-demo.lua.html">sinemouse-demo.lua</a></li>
<li><a href="../examples/soundfile-test.lua.html">soundfile-test.lua</a></li>
</ul>

</div>

<div id="content">

<h1>Class <code>juce.Point</code></h1>
<p>Point.</p>
<p> Is converted to a <a href="http://www.juce.com/api/classPoint.html">JUCE Point</a></p>


<h2><a href="#Constructors">Constructors</a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#juce.Point.Point"><span class="proto_prefix">juce</span>.Point (x, y)</a></td>
<td class="summary">Constuctor</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Point.Point"><span class="proto_prefix">juce</span>.Point (args)</a></td>
<td class="summary">Constuctor</td>
</tr>
</table>
<h2><a href="#Fields">Fields</a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#juce.Point.x"><span class="proto_prefix">juce.Point</span>.x</a></td>
<td class="summary">Point X position</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Point.y"><span class="proto_prefix">juce.Point</span>.y</a></td>
<td class="summary">Point Y position</td>
</tr>
</table>

<br/>
<br/>


<h2><a name="Constructors"></a>Constructors</h2>
<dl class="function">
<dt>
<a name = "juce.Point.Point"></a>
<strong><span class="proto_prefix">juce</span>.Point (x, y)</strong>
</dt>
<dd>
Constuctor

</ul>

<h3>Parameters:</h3>
<ul>
<li><span class="parameter">x</span>



</li>
<li><span class="parameter">y</span>



</li>
</ul>





</dd>
<dt>
<a name = "juce.Point.Point"></a>
<strong><span class="proto_prefix">juce</span>.Point (args)</strong>
</dt>
<dd>
Constuctor

</ul>

<h3>Parameters:</h3>
<ul>
<li><span class="parameter">args</span>


<ul>
<li><span class="parameter">x</span>



</li>
<li><span class="parameter">y</span>



</li>
</li></ul>
</ul>





</dd>
</dl>
<h2><a name="Fields"></a>Fields</h2>
<dl class="function">
<dt>
<a name = "juce.Point.x"></a>
<strong><span class="proto_prefix">juce.Point</span>.x</strong>
</dt>
<dd>
Point X position

</ul>






</dd>
<dt>
<a name = "juce.Point.y"></a>
<strong><span class="proto_prefix">juce.Point</span>.y</strong>
</dt>
<dd>
Point Y position

</ul>






</dd>
</dl>


</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.2</a></i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
@@ -0,0 +1,194 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>protoplug: Class juce.RectanglePlacement</title>
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<a href="http://osar.fr">
<div class=osarlogo> </div>
</a>
<br/>
<a href="http://osar.fr/protoplug">
<h1>protoplug</h1>
</a>
<span class="proto_subtitle">Lua API reference</span>

<ul>
<li><a href="../index.html">Index</a></li>
</ul>

<h2>Contents</h2>
<ul>
<li><a href="#Tables">Tables</a></li>
</ul>


<h2>Classes</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../classes/juce.AffineTransform.html">juce.AffineTransform</a></li>
<li><a href="../classes/juce.AudioFormatReader.html">juce.AudioFormatReader</a></li>
<li><a href="../classes/juce.Colour.html">juce.Colour</a></li>
<li><a href="../classes/juce.ColourGradient.html">juce.ColourGradient</a></li>
<li><a href="../classes/juce.Component.html">juce.Component</a></li>
<li><a href="../classes/juce.FillType.html">juce.FillType</a></li>
<li><a href="../classes/juce.Font.html">juce.Font</a></li>
<li><a href="../classes/juce.Graphics.html">juce.Graphics</a></li>
<li><a href="../classes/juce.Image.html">juce.Image</a></li>
<li><a href="../classes/juce.Justification.html">juce.Justification</a></li>
<li><a href="../classes/juce.LagrangeInterpolator.html">juce.LagrangeInterpolator</a></li>
<li><a href="../classes/juce.Line.html">juce.Line</a></li>
<li><a href="../classes/juce.Path.html">juce.Path</a></li>
<li><a href="../classes/juce.Point.html">juce.Point</a></li>
<li><strong>juce.RectanglePlacement</strong></li>
<li><a href="../classes/juce.Rectangle_float.html">juce.Rectangle_float</a></li>
<li><a href="../classes/juce.Rectangle_int.html">juce.Rectangle_int</a></li>
</ul>
<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../modules/plugin.html">plugin</a></li>
<li><a href="../modules/script.html">script</a></li>
<li><a href="../modules/midi.html">midi</a></li>
<li><a href="../modules/gui.html">gui</a></li>
<li><a href="../modules/polyGen.html">polyGen</a></li>
<li><a href="../modules/stereoFx.html">stereoFx</a></li>
</ul>
<h2>Examples</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../examples/classic-filter.lua.html">classic-filter.lua</a></li>
<li><a href="../examples/sine-organ.lua.html">sine-organ.lua</a></li>
<li><a href="../examples/midi-chordify.lua.html">midi-chordify.lua</a></li>
<li><a href="../examples/sinemouse-demo.lua.html">sinemouse-demo.lua</a></li>
<li><a href="../examples/soundfile-test.lua.html">soundfile-test.lua</a></li>
</ul>

</div>

<div id="content">

<h1>Class <code>juce.RectanglePlacement</code></h1>
<p>Rectangle Placement.</p>
<p> Is converted to a <a href="http://www.juce.com/api/RectanglePlacement.html">JUCE RectanglePlacement</a></p>


<h2><a href="#Tables">Tables</a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#juce.RectanglePlacement"><span class="proto_prefix">juce</span>.RectanglePlacement</a></td>
<td class="summary">Rectangle Placement Constants.</td>
</tr>
</table>

<br/>
<br/>


<h2><a name="Tables"></a>Tables</h2>
<dl class="function">
<dt>
<a name = "juce.RectanglePlacement"></a>
<strong><span class="proto_prefix">juce</span>.RectanglePlacement</strong>
</dt>
<dd>
Rectangle Placement Constants.

</ul>

<h3>Fields:</h3>
<ul>
<li><span class="parameter">xLeft</span>



</li>
<li><span class="parameter">xRight</span>



</li>
<li><span class="parameter">xMid</span>



</li>
<li><span class="parameter">yTop</span>



</li>
<li><span class="parameter">yBottom</span>



</li>
<li><span class="parameter">yMid</span>



</li>
<li><span class="parameter">stretchToFit</span>



</li>
<li><span class="parameter">fillDestination</span>



</li>
<li><span class="parameter">onlyReduceInSize</span>



</li>
<li><span class="parameter">onlyIncreaseInSize</span>



</li>
<li><span class="parameter">doNotResize</span>



</li>
<li><span class="parameter">centred</span>



</li>
</ul>





</dd>
</dl>


</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.2</a></i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
386 changes: 386 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/classes/juce.Rectangle_float.html
@@ -0,0 +1,386 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>protoplug: Class juce.Rectangle_float</title>
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<a href="http://osar.fr">
<div class=osarlogo> </div>
</a>
<br/>
<a href="http://osar.fr/protoplug">
<h1>protoplug</h1>
</a>
<span class="proto_subtitle">Lua API reference</span>

<ul>
<li><a href="../index.html">Index</a></li>
</ul>

<h2>Contents</h2>
<ul>
<li><a href="#Constructors">Constructors</a></li>
<li><a href="#Methods">Methods</a></li>
<li><a href="#Fields">Fields</a></li>
</ul>


<h2>Classes</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../classes/juce.AffineTransform.html">juce.AffineTransform</a></li>
<li><a href="../classes/juce.AudioFormatReader.html">juce.AudioFormatReader</a></li>
<li><a href="../classes/juce.Colour.html">juce.Colour</a></li>
<li><a href="../classes/juce.ColourGradient.html">juce.ColourGradient</a></li>
<li><a href="../classes/juce.Component.html">juce.Component</a></li>
<li><a href="../classes/juce.FillType.html">juce.FillType</a></li>
<li><a href="../classes/juce.Font.html">juce.Font</a></li>
<li><a href="../classes/juce.Graphics.html">juce.Graphics</a></li>
<li><a href="../classes/juce.Image.html">juce.Image</a></li>
<li><a href="../classes/juce.Justification.html">juce.Justification</a></li>
<li><a href="../classes/juce.LagrangeInterpolator.html">juce.LagrangeInterpolator</a></li>
<li><a href="../classes/juce.Line.html">juce.Line</a></li>
<li><a href="../classes/juce.Path.html">juce.Path</a></li>
<li><a href="../classes/juce.Point.html">juce.Point</a></li>
<li><a href="../classes/juce.RectanglePlacement.html">juce.RectanglePlacement</a></li>
<li><strong>juce.Rectangle_float</strong></li>
<li><a href="../classes/juce.Rectangle_int.html">juce.Rectangle_int</a></li>
</ul>
<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../modules/plugin.html">plugin</a></li>
<li><a href="../modules/script.html">script</a></li>
<li><a href="../modules/midi.html">midi</a></li>
<li><a href="../modules/gui.html">gui</a></li>
<li><a href="../modules/polyGen.html">polyGen</a></li>
<li><a href="../modules/stereoFx.html">stereoFx</a></li>
</ul>
<h2>Examples</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../examples/classic-filter.lua.html">classic-filter.lua</a></li>
<li><a href="../examples/sine-organ.lua.html">sine-organ.lua</a></li>
<li><a href="../examples/midi-chordify.lua.html">midi-chordify.lua</a></li>
<li><a href="../examples/sinemouse-demo.lua.html">sinemouse-demo.lua</a></li>
<li><a href="../examples/soundfile-test.lua.html">soundfile-test.lua</a></li>
</ul>

</div>

<div id="content">

<h1>Class <code>juce.Rectangle_float</code></h1>
<p>A floating-point (sub-pixel) rectangle.</p>
<p> Is converted to a <a href="http://www.juce.com/api/classRectangle.html">JUCE Rectangle</a></p>


<h2><a href="#Constructors">Constructors</a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_float.Rectangle_float"><span class="proto_prefix">juce</span>.Rectangle_float (x, y, w, h)</a></td>
<td class="summary">Constuctor with classical arguments.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_float.Rectangle_float"><span class="proto_prefix">juce</span>.Rectangle_float (args)</a></td>
<td class="summary">Constuctor with named arguments.</td>
</tr>
</table>
<h2><a href="#Methods">Methods</a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_float:toInt"><span class="proto_prefix">juce.Rectangle_float</span>:toInt ()</a></td>
<td class="summary">To int.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_float:contains"><span class="proto_prefix">juce.Rectangle_float</span>:contains (point)</a></td>
<td class="summary">Contains.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_float:getR"><span class="proto_prefix">juce.Rectangle_float</span>:getR ()</a></td>
<td class="summary">Get right.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_float:getB"><span class="proto_prefix">juce.Rectangle_float</span>:getB ()</a></td>
<td class="summary">Get bottom.</td>
</tr>
</table>
<h2><a href="#Fields">Fields</a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_float.x"><span class="proto_prefix">juce.Rectangle_float</span>.x</a></td>
<td class="summary">Left position</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_float.y"><span class="proto_prefix">juce.Rectangle_float</span>.y</a></td>
<td class="summary">Top position</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_float.w"><span class="proto_prefix">juce.Rectangle_float</span>.w</a></td>
<td class="summary">Width</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_float.h"><span class="proto_prefix">juce.Rectangle_float</span>.h</a></td>
<td class="summary">Height</td>
</tr>
</table>

<br/>
<br/>


<h2><a name="Constructors"></a>Constructors</h2>
<dl class="function">
<dt>
<a name = "juce.Rectangle_float.Rectangle_float"></a>
<strong><span class="proto_prefix">juce</span>.Rectangle_float (x, y, w, h)</strong>
</dt>
<dd>
Constuctor with classical arguments.

</ul>

<h3>Parameters:</h3>
<ul>
<li><span class="parameter">x</span>
left position
</li>
<li><span class="parameter">y</span>
top position
</li>
<li><span class="parameter">w</span>
width
</li>
<li><span class="parameter">h</span>
height
</li>
</ul>





</dd>
<dt>
<a name = "juce.Rectangle_float.Rectangle_float"></a>
<strong><span class="proto_prefix">juce</span>.Rectangle_float (args)</strong>
</dt>
<dd>
Constuctor with named arguments.
Every field is optional.

</ul>

<h3>Parameters:</h3>
<ul>
<li><span class="parameter">args</span>


<ul>
<li><span class="parameter">x</span>
left position
</li>
<li><span class="parameter">y</span>
top position
</li>
<li><span class="parameter">w</span>
width
</li>
<li><span class="parameter">h</span>
height
</li>
</li></ul>
</ul>





</dd>
</dl>
<h2><a name="Methods"></a>Methods</h2>
<dl class="function">
<dt>
<a name = "juce.Rectangle_float:toInt"></a>
<strong><span class="proto_prefix">juce.Rectangle_float</span>:toInt ()</strong>
</dt>
<dd>
To int.
Convert to a pixel-aligned rectangle

</ul>


<h3>Returns:</h3>
<ol>

<span class="types"><span class="type">juce.Rectangle_int</span></span>



</ol>




</dd>
<dt>
<a name = "juce.Rectangle_float:contains"></a>
<strong><span class="proto_prefix">juce.Rectangle_float</span>:contains (point)</strong>
</dt>
<dd>
Contains.

</ul>

<h3>Parameters:</h3>
<ul>
<li><span class="parameter">point</span>
<span class="types"><a class="type" href="../classes/juce.Point.html#">juce.Point</a></span>



</li>
</ul>

<h3>Returns:</h3>
<ol>

<span class="types"><span class="type">boolean</span></span>
whether the rectangle contains the point
</ol>




</dd>
<dt>
<a name = "juce.Rectangle_float:getR"></a>
<strong><span class="proto_prefix">juce.Rectangle_float</span>:getR ()</strong>
</dt>
<dd>
Get right.

</ul>


<h3>Returns:</h3>
<ol>

the rectangle's right position on the X axis
</ol>




</dd>
<dt>
<a name = "juce.Rectangle_float:getB"></a>
<strong><span class="proto_prefix">juce.Rectangle_float</span>:getB ()</strong>
</dt>
<dd>
Get bottom.

</ul>


<h3>Returns:</h3>
<ol>

the rectangle's bottom position on the Y axis
</ol>




</dd>
</dl>
<h2><a name="Fields"></a>Fields</h2>
<dl class="function">
<dt>
<a name = "juce.Rectangle_float.x"></a>
<strong><span class="proto_prefix">juce.Rectangle_float</span>.x</strong>
</dt>
<dd>
Left position

</ul>






</dd>
<dt>
<a name = "juce.Rectangle_float.y"></a>
<strong><span class="proto_prefix">juce.Rectangle_float</span>.y</strong>
</dt>
<dd>
Top position

</ul>






</dd>
<dt>
<a name = "juce.Rectangle_float.w"></a>
<strong><span class="proto_prefix">juce.Rectangle_float</span>.w</strong>
</dt>
<dd>
Width

</ul>






</dd>
<dt>
<a name = "juce.Rectangle_float.h"></a>
<strong><span class="proto_prefix">juce.Rectangle_float</span>.h</strong>
</dt>
<dd>
Height

</ul>






</dd>
</dl>


</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.2</a></i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
386 changes: 386 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/classes/juce.Rectangle_int.html
@@ -0,0 +1,386 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>protoplug: Class juce.Rectangle_int</title>
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<a href="http://osar.fr">
<div class=osarlogo> </div>
</a>
<br/>
<a href="http://osar.fr/protoplug">
<h1>protoplug</h1>
</a>
<span class="proto_subtitle">Lua API reference</span>

<ul>
<li><a href="../index.html">Index</a></li>
</ul>

<h2>Contents</h2>
<ul>
<li><a href="#Constructors">Constructors</a></li>
<li><a href="#Methods">Methods</a></li>
<li><a href="#Fields">Fields</a></li>
</ul>


<h2>Classes</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../classes/juce.AffineTransform.html">juce.AffineTransform</a></li>
<li><a href="../classes/juce.AudioFormatReader.html">juce.AudioFormatReader</a></li>
<li><a href="../classes/juce.Colour.html">juce.Colour</a></li>
<li><a href="../classes/juce.ColourGradient.html">juce.ColourGradient</a></li>
<li><a href="../classes/juce.Component.html">juce.Component</a></li>
<li><a href="../classes/juce.FillType.html">juce.FillType</a></li>
<li><a href="../classes/juce.Font.html">juce.Font</a></li>
<li><a href="../classes/juce.Graphics.html">juce.Graphics</a></li>
<li><a href="../classes/juce.Image.html">juce.Image</a></li>
<li><a href="../classes/juce.Justification.html">juce.Justification</a></li>
<li><a href="../classes/juce.LagrangeInterpolator.html">juce.LagrangeInterpolator</a></li>
<li><a href="../classes/juce.Line.html">juce.Line</a></li>
<li><a href="../classes/juce.Path.html">juce.Path</a></li>
<li><a href="../classes/juce.Point.html">juce.Point</a></li>
<li><a href="../classes/juce.RectanglePlacement.html">juce.RectanglePlacement</a></li>
<li><a href="../classes/juce.Rectangle_float.html">juce.Rectangle_float</a></li>
<li><strong>juce.Rectangle_int</strong></li>
</ul>
<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../modules/plugin.html">plugin</a></li>
<li><a href="../modules/script.html">script</a></li>
<li><a href="../modules/midi.html">midi</a></li>
<li><a href="../modules/gui.html">gui</a></li>
<li><a href="../modules/polyGen.html">polyGen</a></li>
<li><a href="../modules/stereoFx.html">stereoFx</a></li>
</ul>
<h2>Examples</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../examples/classic-filter.lua.html">classic-filter.lua</a></li>
<li><a href="../examples/sine-organ.lua.html">sine-organ.lua</a></li>
<li><a href="../examples/midi-chordify.lua.html">midi-chordify.lua</a></li>
<li><a href="../examples/sinemouse-demo.lua.html">sinemouse-demo.lua</a></li>
<li><a href="../examples/soundfile-test.lua.html">soundfile-test.lua</a></li>
</ul>

</div>

<div id="content">

<h1>Class <code>juce.Rectangle_int</code></h1>
<p>An integer (pixel-aligned) rectangle.</p>
<p> Is converted to a <a href="http://www.juce.com/api/classRectangle.html">JUCE Rectangle</a></p>


<h2><a href="#Constructors">Constructors</a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_int.Rectangle_int"><span class="proto_prefix">juce</span>.Rectangle_int (x, y, w, h)</a></td>
<td class="summary">Constuctor with classical arguments.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_int.Rectangle_int"><span class="proto_prefix">juce</span>.Rectangle_int (args)</a></td>
<td class="summary">Constuctor with named arguments.</td>
</tr>
</table>
<h2><a href="#Methods">Methods</a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_int:toFloat"><span class="proto_prefix">juce.Rectangle_int</span>:toFloat ()</a></td>
<td class="summary">To float.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_int:contains"><span class="proto_prefix">juce.Rectangle_int</span>:contains (point)</a></td>
<td class="summary">Contains.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_int:getR"><span class="proto_prefix">juce.Rectangle_int</span>:getR ()</a></td>
<td class="summary">Get right.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_int:getB"><span class="proto_prefix">juce.Rectangle_int</span>:getB ()</a></td>
<td class="summary">Get bottom.</td>
</tr>
</table>
<h2><a href="#Fields">Fields</a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_int.x"><span class="proto_prefix">juce.Rectangle_int</span>.x</a></td>
<td class="summary">Left position</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_int.y"><span class="proto_prefix">juce.Rectangle_int</span>.y</a></td>
<td class="summary">Top position</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_int.w"><span class="proto_prefix">juce.Rectangle_int</span>.w</a></td>
<td class="summary">Width</td>
</tr>
<tr>
<td class="name" nowrap><a href="#juce.Rectangle_int.h"><span class="proto_prefix">juce.Rectangle_int</span>.h</a></td>
<td class="summary">Height</td>
</tr>
</table>

<br/>
<br/>


<h2><a name="Constructors"></a>Constructors</h2>
<dl class="function">
<dt>
<a name = "juce.Rectangle_int.Rectangle_int"></a>
<strong><span class="proto_prefix">juce</span>.Rectangle_int (x, y, w, h)</strong>
</dt>
<dd>
Constuctor with classical arguments.

</ul>

<h3>Parameters:</h3>
<ul>
<li><span class="parameter">x</span>
left position
</li>
<li><span class="parameter">y</span>
top position
</li>
<li><span class="parameter">w</span>
width
</li>
<li><span class="parameter">h</span>
height
</li>
</ul>





</dd>
<dt>
<a name = "juce.Rectangle_int.Rectangle_int"></a>
<strong><span class="proto_prefix">juce</span>.Rectangle_int (args)</strong>
</dt>
<dd>
Constuctor with named arguments.
Every field is optional.

</ul>

<h3>Parameters:</h3>
<ul>
<li><span class="parameter">args</span>


<ul>
<li><span class="parameter">x</span>
left position
</li>
<li><span class="parameter">y</span>
top position
</li>
<li><span class="parameter">w</span>
width
</li>
<li><span class="parameter">h</span>
height
</li>
</li></ul>
</ul>





</dd>
</dl>
<h2><a name="Methods"></a>Methods</h2>
<dl class="function">
<dt>
<a name = "juce.Rectangle_int:toFloat"></a>
<strong><span class="proto_prefix">juce.Rectangle_int</span>:toFloat ()</strong>
</dt>
<dd>
To float.
Convert to a sub-pixel rectangle

</ul>


<h3>Returns:</h3>
<ol>

<span class="types"><span class="type">juce.Rectangle_float</span></span>



</ol>




</dd>
<dt>
<a name = "juce.Rectangle_int:contains"></a>
<strong><span class="proto_prefix">juce.Rectangle_int</span>:contains (point)</strong>
</dt>
<dd>
Contains.

</ul>

<h3>Parameters:</h3>
<ul>
<li><span class="parameter">point</span>
<span class="types"><a class="type" href="../classes/juce.Point.html#">juce.Point</a></span>



</li>
</ul>

<h3>Returns:</h3>
<ol>

<span class="types"><span class="type">boolean</span></span>
whether the rectangle contains the point
</ol>




</dd>
<dt>
<a name = "juce.Rectangle_int:getR"></a>
<strong><span class="proto_prefix">juce.Rectangle_int</span>:getR ()</strong>
</dt>
<dd>
Get right.

</ul>


<h3>Returns:</h3>
<ol>

the rectangle's right position on the X axis
</ol>




</dd>
<dt>
<a name = "juce.Rectangle_int:getB"></a>
<strong><span class="proto_prefix">juce.Rectangle_int</span>:getB ()</strong>
</dt>
<dd>
Get bottom.

</ul>


<h3>Returns:</h3>
<ol>

the rectangle's bottom position on the Y axis
</ol>




</dd>
</dl>
<h2><a name="Fields"></a>Fields</h2>
<dl class="function">
<dt>
<a name = "juce.Rectangle_int.x"></a>
<strong><span class="proto_prefix">juce.Rectangle_int</span>.x</strong>
</dt>
<dd>
Left position

</ul>






</dd>
<dt>
<a name = "juce.Rectangle_int.y"></a>
<strong><span class="proto_prefix">juce.Rectangle_int</span>.y</strong>
</dt>
<dd>
Top position

</ul>






</dd>
<dt>
<a name = "juce.Rectangle_int.w"></a>
<strong><span class="proto_prefix">juce.Rectangle_int</span>.w</strong>
</dt>
<dd>
Width

</ul>






</dd>
<dt>
<a name = "juce.Rectangle_int.h"></a>
<strong><span class="proto_prefix">juce.Rectangle_int</span>.h</strong>
</dt>
<dd>
Height

</ul>






</dd>
</dl>


</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.2</a></i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
168 changes: 168 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/examples/classic-filter.lua.html
@@ -0,0 +1,168 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>protoplug: Example classic-filter.lua</title>
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<a href="http://osar.fr">
<div class=osarlogo> </div>
</a>
<br/>
<a href="http://osar.fr/protoplug">
<h1>protoplug</h1>
</a>
<span class="proto_subtitle">Lua API reference</span>

<ul>
<li><a href="../index.html">Index</a></li>
</ul>



<h2>Examples</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><strong>classic-filter.lua</strong></li>
<li><a href="../examples/sine-organ.lua.html">sine-organ.lua</a></li>
<li><a href="../examples/midi-chordify.lua.html">midi-chordify.lua</a></li>
<li><a href="../examples/sinemouse-demo.lua.html">sinemouse-demo.lua</a></li>
<li><a href="../examples/soundfile-test.lua.html">soundfile-test.lua</a></li>
</ul>
<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../modules/plugin.html">plugin</a></li>
<li><a href="../modules/script.html">script</a></li>
<li><a href="../modules/midi.html">midi</a></li>
<li><a href="../modules/gui.html">gui</a></li>
<li><a href="../modules/polyGen.html">polyGen</a></li>
<li><a href="../modules/stereoFx.html">stereoFx</a></li>
</ul>
<h2>Classes</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../classes/juce.AffineTransform.html">juce.AffineTransform</a></li>
<li><a href="../classes/juce.AudioFormatReader.html">juce.AudioFormatReader</a></li>
<li><a href="../classes/juce.Colour.html">juce.Colour</a></li>
<li><a href="../classes/juce.ColourGradient.html">juce.ColourGradient</a></li>
<li><a href="../classes/juce.Component.html">juce.Component</a></li>
<li><a href="../classes/juce.FillType.html">juce.FillType</a></li>
<li><a href="../classes/juce.Font.html">juce.Font</a></li>
<li><a href="../classes/juce.Graphics.html">juce.Graphics</a></li>
<li><a href="../classes/juce.Image.html">juce.Image</a></li>
<li><a href="../classes/juce.Justification.html">juce.Justification</a></li>
<li><a href="../classes/juce.LagrangeInterpolator.html">juce.LagrangeInterpolator</a></li>
<li><a href="../classes/juce.Line.html">juce.Line</a></li>
<li><a href="../classes/juce.Path.html">juce.Path</a></li>
<li><a href="../classes/juce.Point.html">juce.Point</a></li>
<li><a href="../classes/juce.RectanglePlacement.html">juce.RectanglePlacement</a></li>
<li><a href="../classes/juce.Rectangle_float.html">juce.Rectangle_float</a></li>
<li><a href="../classes/juce.Rectangle_int.html">juce.Rectangle_int</a></li>
</ul>

</div>

<div id="content">

<pre>
<span class="comment">--[[
name: Classic Filter
description: &gt;
Straightforward application of RBJ's cookbook filters. Formulae by
Robert Bristow-Johnson, implementation from Worp by Ico Doornekamp.
author: osar.fr
--]]</span>

<span class="global">require</span> <span class="string">"include/protoplug"</span>
<span class="keyword">local</span> cbFilter = <span class="global">require</span> <span class="string">"include/pac/cookbook filters"</span>
<span class="keyword">local</span> filters = {}

stereoFx.init()

<span class="keyword">function</span> stereoFx.Channel:init()
<span class="comment">-- create per-channel fields (filters)
</span> self.filter = cbFilter
{
<span class="comment">-- initialize filters with current param values
</span> <span class="global">type</span> = params[<span class="number">1</span>].getValue();
f = params[<span class="number">2</span>].getValue()/<span class="number">2</span>;
gain = params[<span class="number">3</span>].getValue();
Q = params[<span class="number">4</span>].getValue();
}
<span class="global">table</span>.insert(filters, self.filter)
<span class="keyword">end</span>

<span class="keyword">function</span> stereoFx.Channel:processBlock(s, smax)
<span class="keyword">for</span> i = <span class="number">0</span>,smax <span class="keyword">do</span>
s[i] = self.filter.process(s[i])
<span class="keyword">end</span>
<span class="keyword">end</span>

<span class="keyword">local</span> <span class="keyword">function</span> updateFilters(args)
<span class="keyword">for</span> _, f <span class="keyword">in</span> <span class="global">pairs</span>(filters) <span class="keyword">do</span>
f.update(args)
<span class="keyword">end</span>
<span class="keyword">end</span>

params = plugin.manageParams {
<span class="comment">-- automatable VST/AU parameters
</span> <span class="comment">-- note the new 1.3 way of declaring them
</span> {
name = <span class="string">"Type"</span>;
<span class="global">type</span> = <span class="string">"list"</span>;
values = {<span class="string">"hp"</span>; <span class="string">"lp"</span>; <span class="string">"bp"</span>; <span class="string">"bs"</span>; <span class="string">"ls"</span>; <span class="string">"hs"</span>; <span class="string">"ap"</span>; <span class="string">"eq"</span>};
default = <span class="string">"hp"</span>;
changed = <span class="keyword">function</span>(val) updateFilters{<span class="global">type</span>=val} <span class="keyword">end</span>;
};
{
name = <span class="string">"Frequency"</span>;
min = <span class="number">10</span>;
max = <span class="number">20000</span>;
default = <span class="number">440</span>;
changed = <span class="keyword">function</span>(val) updateFilters{f=val} <span class="keyword">end</span>;
};
{
name = <span class="string">"Gain"</span>;
min = -<span class="number">30</span>;
max = <span class="number">30</span>;
default = <span class="number">0</span>;
changed = <span class="keyword">function</span>(val) updateFilters{gain=val} <span class="keyword">end</span>;
};
{
name = <span class="string">"Resonance"</span>;
min = <span class="number">0.1</span>;
max = <span class="number">30</span>;
default = <span class="number">1</span>;
changed = <span class="keyword">function</span>(val) updateFilters{Q=val} <span class="keyword">end</span>;
};
}

<span class="comment">-- Reset the plugin parameters like this :
</span><span class="comment">-- params.resetToDefaults()
</span></pre>


</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.2</a></i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
142 changes: 142 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/examples/midi-chordify.lua.html
@@ -0,0 +1,142 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>protoplug: Example midi-chordify.lua</title>
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<a href="http://osar.fr">
<div class=osarlogo> </div>
</a>
<br/>
<a href="http://osar.fr/protoplug">
<h1>protoplug</h1>
</a>
<span class="proto_subtitle">Lua API reference</span>

<ul>
<li><a href="../index.html">Index</a></li>
</ul>



<h2>Examples</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../examples/classic-filter.lua.html">classic-filter.lua</a></li>
<li><a href="../examples/sine-organ.lua.html">sine-organ.lua</a></li>
<li><strong>midi-chordify.lua</strong></li>
<li><a href="../examples/sinemouse-demo.lua.html">sinemouse-demo.lua</a></li>
<li><a href="../examples/soundfile-test.lua.html">soundfile-test.lua</a></li>
</ul>
<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../modules/plugin.html">plugin</a></li>
<li><a href="../modules/script.html">script</a></li>
<li><a href="../modules/midi.html">midi</a></li>
<li><a href="../modules/gui.html">gui</a></li>
<li><a href="../modules/polyGen.html">polyGen</a></li>
<li><a href="../modules/stereoFx.html">stereoFx</a></li>
</ul>
<h2>Classes</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../classes/juce.AffineTransform.html">juce.AffineTransform</a></li>
<li><a href="../classes/juce.AudioFormatReader.html">juce.AudioFormatReader</a></li>
<li><a href="../classes/juce.Colour.html">juce.Colour</a></li>
<li><a href="../classes/juce.ColourGradient.html">juce.ColourGradient</a></li>
<li><a href="../classes/juce.Component.html">juce.Component</a></li>
<li><a href="../classes/juce.FillType.html">juce.FillType</a></li>
<li><a href="../classes/juce.Font.html">juce.Font</a></li>
<li><a href="../classes/juce.Graphics.html">juce.Graphics</a></li>
<li><a href="../classes/juce.Image.html">juce.Image</a></li>
<li><a href="../classes/juce.Justification.html">juce.Justification</a></li>
<li><a href="../classes/juce.LagrangeInterpolator.html">juce.LagrangeInterpolator</a></li>
<li><a href="../classes/juce.Line.html">juce.Line</a></li>
<li><a href="../classes/juce.Path.html">juce.Path</a></li>
<li><a href="../classes/juce.Point.html">juce.Point</a></li>
<li><a href="../classes/juce.RectanglePlacement.html">juce.RectanglePlacement</a></li>
<li><a href="../classes/juce.Rectangle_float.html">juce.Rectangle_float</a></li>
<li><a href="../classes/juce.Rectangle_int.html">juce.Rectangle_int</a></li>
</ul>

</div>

<div id="content">

<pre>
<span class="comment">--[[
name: midi chordify
description: MIDI processor VST/AU. Notes go in, chords come out.
author: osar.fr
--]]</span>

<span class="global">require</span> <span class="string">"include/protoplug"</span>

<span class="comment">-- what kind of chord ?
</span><span class="keyword">local</span> chordStructure = {<span class="number">0</span>, <span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">11</span>}
<span class="keyword">local</span> blockEvents = {}

<span class="keyword">function</span> plugin.processBlock(samples, smax, midiBuf)
blockEvents = {}
<span class="comment">-- analyse midi buffer and prepare a chord for each note
</span> <span class="keyword">for</span> ev <span class="keyword">in</span> midiBuf:eachEvent() <span class="keyword">do</span>
<span class="keyword">if</span> ev:isNoteOn() <span class="keyword">then</span>
chordOn(ev)
<span class="keyword">elseif</span> ev:isNoteOff() <span class="keyword">then</span>
chordOff(ev)
<span class="keyword">end</span>
<span class="keyword">end</span>
<span class="comment">-- fill midi buffer with prepared notes
</span> midiBuf:clear()
<span class="keyword">if</span> #blockEvents&gt;<span class="number">0</span> <span class="keyword">then</span>
<span class="keyword">for</span> _,e <span class="keyword">in</span> <span class="global">ipairs</span>(blockEvents) <span class="keyword">do</span>
midiBuf:addEvent(e)
<span class="keyword">end</span>
<span class="keyword">end</span>
<span class="keyword">end</span>

<span class="keyword">function</span> chordOn(root)
<span class="keyword">for</span> _, offset <span class="keyword">in</span> <span class="global">ipairs</span>(chordStructure) <span class="keyword">do</span>
<span class="keyword">local</span> newEv = midi.Event.noteOn(
root:getChannel(),
root:getNote()+offset,
root:getVel())
<span class="global">table</span>.insert(blockEvents, newEv)
<span class="keyword">end</span>
<span class="keyword">end</span>

<span class="keyword">function</span> chordOff(root)
<span class="keyword">for</span> _, offset <span class="keyword">in</span> <span class="global">ipairs</span>(chordStructure) <span class="keyword">do</span>
<span class="keyword">local</span> newEv = midi.Event.noteOff(
root:getChannel(),
root:getNote()+offset)
<span class="global">table</span>.insert(blockEvents, newEv)
<span class="keyword">end</span>
<span class="keyword">end</span></pre>


</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.2</a></i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
138 changes: 138 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/examples/sine-organ.lua.html
@@ -0,0 +1,138 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>protoplug: Example sine-organ.lua</title>
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<a href="http://osar.fr">
<div class=osarlogo> </div>
</a>
<br/>
<a href="http://osar.fr/protoplug">
<h1>protoplug</h1>
</a>
<span class="proto_subtitle">Lua API reference</span>

<ul>
<li><a href="../index.html">Index</a></li>
</ul>



<h2>Examples</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../examples/classic-filter.lua.html">classic-filter.lua</a></li>
<li><strong>sine-organ.lua</strong></li>
<li><a href="../examples/midi-chordify.lua.html">midi-chordify.lua</a></li>
<li><a href="../examples/sinemouse-demo.lua.html">sinemouse-demo.lua</a></li>
<li><a href="../examples/soundfile-test.lua.html">soundfile-test.lua</a></li>
</ul>
<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../modules/plugin.html">plugin</a></li>
<li><a href="../modules/script.html">script</a></li>
<li><a href="../modules/midi.html">midi</a></li>
<li><a href="../modules/gui.html">gui</a></li>
<li><a href="../modules/polyGen.html">polyGen</a></li>
<li><a href="../modules/stereoFx.html">stereoFx</a></li>
</ul>
<h2>Classes</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../classes/juce.AffineTransform.html">juce.AffineTransform</a></li>
<li><a href="../classes/juce.AudioFormatReader.html">juce.AudioFormatReader</a></li>
<li><a href="../classes/juce.Colour.html">juce.Colour</a></li>
<li><a href="../classes/juce.ColourGradient.html">juce.ColourGradient</a></li>
<li><a href="../classes/juce.Component.html">juce.Component</a></li>
<li><a href="../classes/juce.FillType.html">juce.FillType</a></li>
<li><a href="../classes/juce.Font.html">juce.Font</a></li>
<li><a href="../classes/juce.Graphics.html">juce.Graphics</a></li>
<li><a href="../classes/juce.Image.html">juce.Image</a></li>
<li><a href="../classes/juce.Justification.html">juce.Justification</a></li>
<li><a href="../classes/juce.LagrangeInterpolator.html">juce.LagrangeInterpolator</a></li>
<li><a href="../classes/juce.Line.html">juce.Line</a></li>
<li><a href="../classes/juce.Path.html">juce.Path</a></li>
<li><a href="../classes/juce.Point.html">juce.Point</a></li>
<li><a href="../classes/juce.RectanglePlacement.html">juce.RectanglePlacement</a></li>
<li><a href="../classes/juce.Rectangle_float.html">juce.Rectangle_float</a></li>
<li><a href="../classes/juce.Rectangle_int.html">juce.Rectangle_int</a></li>
</ul>

</div>

<div id="content">

<pre>
<span class="comment">--[[
name: sine organ
description: A simple organ-like sinewave VST/AU.
author: osar.fr
--]]</span>

<span class="global">require</span> <span class="string">"include/protoplug"</span>

<span class="keyword">local</span> release = <span class="number">10000</span>
<span class="keyword">local</span> decayRate = <span class="number">1</span>/release

polyGen.initTracks(<span class="number">8</span>)

<span class="keyword">function</span> polyGen.VTrack:init()
<span class="comment">-- create per-track fields here
</span> self.phase = <span class="number">0</span>
self.releasePos = release
<span class="keyword">end</span>

<span class="keyword">function</span> polyGen.VTrack:addProcessBlock(samples, smax)
<span class="keyword">local</span> amp = <span class="number">1</span>
<span class="keyword">for</span> i = <span class="number">0</span>,smax <span class="keyword">do</span>
<span class="keyword">if</span> <span class="keyword">not</span> self.noteIsOn <span class="keyword">then</span>
<span class="comment">-- release is finished : idle track
</span> <span class="keyword">if</span> self.releasePos&gt;=release <span class="keyword">then</span> <span class="keyword">break</span> <span class="keyword">end</span>
<span class="comment">-- release is under way
</span> amp = <span class="number">1</span>-self.releasePos*decayRate
self.releasePos = self.releasePos+<span class="number">1</span>
<span class="keyword">end</span>
self.phase = self.phase + (self.noteFreq*<span class="global">math</span>.pi*<span class="number">2</span>)
<span class="comment">-- math.sin is slow but once per sample is no tragedy
</span> <span class="keyword">local</span> trackSample = <span class="global">math</span>.sin(self.phase)*amp*<span class="number">0.3</span>
samples[<span class="number">0</span>][i] = samples[<span class="number">0</span>][i] + trackSample <span class="comment">-- left
</span> samples[<span class="number">1</span>][i] = samples[<span class="number">1</span>][i] + trackSample <span class="comment">-- right
</span> <span class="keyword">end</span>
<span class="keyword">end</span>

<span class="keyword">function</span> polyGen.VTrack:noteOff(note, ev)
self.releasePos = <span class="number">0</span>
<span class="keyword">end</span>

<span class="keyword">function</span> polyGen.VTrack:noteOn(note, vel, ev)
<span class="comment">-- start the sinewave at 0 for a clickless attack
</span> self.phase = <span class="number">0</span>
<span class="keyword">end</span></pre>


</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.2</a></i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
140 changes: 140 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/examples/sinemouse-demo.lua.html
@@ -0,0 +1,140 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>protoplug: Example sinemouse-demo.lua</title>
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<a href="http://osar.fr">
<div class=osarlogo> </div>
</a>
<br/>
<a href="http://osar.fr/protoplug">
<h1>protoplug</h1>
</a>
<span class="proto_subtitle">Lua API reference</span>

<ul>
<li><a href="../index.html">Index</a></li>
</ul>



<h2>Examples</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../examples/classic-filter.lua.html">classic-filter.lua</a></li>
<li><a href="../examples/sine-organ.lua.html">sine-organ.lua</a></li>
<li><a href="../examples/midi-chordify.lua.html">midi-chordify.lua</a></li>
<li><strong>sinemouse-demo.lua</strong></li>
<li><a href="../examples/soundfile-test.lua.html">soundfile-test.lua</a></li>
</ul>
<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../modules/plugin.html">plugin</a></li>
<li><a href="../modules/script.html">script</a></li>
<li><a href="../modules/midi.html">midi</a></li>
<li><a href="../modules/gui.html">gui</a></li>
<li><a href="../modules/polyGen.html">polyGen</a></li>
<li><a href="../modules/stereoFx.html">stereoFx</a></li>
</ul>
<h2>Classes</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../classes/juce.AffineTransform.html">juce.AffineTransform</a></li>
<li><a href="../classes/juce.AudioFormatReader.html">juce.AudioFormatReader</a></li>
<li><a href="../classes/juce.Colour.html">juce.Colour</a></li>
<li><a href="../classes/juce.ColourGradient.html">juce.ColourGradient</a></li>
<li><a href="../classes/juce.Component.html">juce.Component</a></li>
<li><a href="../classes/juce.FillType.html">juce.FillType</a></li>
<li><a href="../classes/juce.Font.html">juce.Font</a></li>
<li><a href="../classes/juce.Graphics.html">juce.Graphics</a></li>
<li><a href="../classes/juce.Image.html">juce.Image</a></li>
<li><a href="../classes/juce.Justification.html">juce.Justification</a></li>
<li><a href="../classes/juce.LagrangeInterpolator.html">juce.LagrangeInterpolator</a></li>
<li><a href="../classes/juce.Line.html">juce.Line</a></li>
<li><a href="../classes/juce.Path.html">juce.Path</a></li>
<li><a href="../classes/juce.Point.html">juce.Point</a></li>
<li><a href="../classes/juce.RectanglePlacement.html">juce.RectanglePlacement</a></li>
<li><a href="../classes/juce.Rectangle_float.html">juce.Rectangle_float</a></li>
<li><a href="../classes/juce.Rectangle_int.html">juce.Rectangle_int</a></li>
</ul>

</div>

<div id="content">

<pre>
<span class="comment">--[[
name: sinemouse demo
description: &gt;
Custom GUI demonstration : Drag your mouse around in the
frame to control the sine wave's amplitude and frequency.
author: osar.fr
--]]</span>

<span class="global">require</span> <span class="string">"include/protoplug"</span>

<span class="keyword">local</span> freq,amp = <span class="number">440</span>, <span class="number">0</span>
<span class="keyword">local</span> delta, phase = <span class="number">0.06</span>, <span class="number">0</span>

<span class="keyword">function</span> plugin.processBlock(samples, smax)
<span class="keyword">for</span> i=<span class="number">0</span>,smax <span class="keyword">do</span>
<span class="keyword">local</span> s = <span class="global">math</span>.sin(phase)*amp
samples[<span class="number">0</span>][i] = s <span class="comment">-- left
</span> samples[<span class="number">1</span>][i] = s <span class="comment">-- right
</span> phase = phase + delta
<span class="keyword">end</span>
<span class="keyword">end</span>

<span class="keyword">local</span> J = juce
<span class="keyword">local</span> frame = J.Rectangle_int(<span class="number">20</span>,<span class="number">20</span>,<span class="number">400</span>,<span class="number">300</span>)
<span class="keyword">local</span> sideways = J.AffineTransform():rotated(<span class="global">math</span>.pi*<span class="number">0.5</span>)

<span class="keyword">function</span> gui.paint(g)
g:fillAll()
g:setColour(J.Colour.green)
g:drawRect(frame)
g:drawText(<span class="string">"Frequency"</span>, <span class="number">20</span>, <span class="number">320</span>, <span class="number">400</span>, <span class="number">20</span>, J.Justification.centred)
g:addTransform(sideways)
g:drawText(<span class="string">"amplitude"</span>, <span class="number">20</span>, -<span class="number">440</span>, <span class="number">300</span>, <span class="number">20</span>, J.Justification.centred)
<span class="keyword">end</span>

<span class="keyword">local</span> <span class="keyword">function</span> mouseHandler(event)
<span class="keyword">if</span> <span class="keyword">not</span> frame:contains(J.Point(event.x,event.y)) <span class="keyword">then</span>
<span class="keyword">return</span>
<span class="keyword">end</span>
freq = event.x + <span class="number">80</span>
amp = (<span class="number">320</span>-event.y)/<span class="number">300</span>
<span class="keyword">local</span> sr = plugin.isSampleRateKnown() <span class="keyword">and</span> plugin.getSampleRate() <span class="keyword">or</span> <span class="number">44100</span>
delta = <span class="number">2</span>*<span class="global">math</span>.pi*freq/sr
<span class="keyword">end</span>

gui.addHandler(<span class="string">"mouseDrag"</span>, mouseHandler)
gui.addHandler(<span class="string">"mouseDown"</span>, mouseHandler)</pre>


</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.2</a></i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
132 changes: 132 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/examples/soundfile-test.lua.html
@@ -0,0 +1,132 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>protoplug: Example soundfile-test.lua</title>
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<a href="http://osar.fr">
<div class=osarlogo> </div>
</a>
<br/>
<a href="http://osar.fr/protoplug">
<h1>protoplug</h1>
</a>
<span class="proto_subtitle">Lua API reference</span>

<ul>
<li><a href="../index.html">Index</a></li>
</ul>



<h2>Examples</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../examples/classic-filter.lua.html">classic-filter.lua</a></li>
<li><a href="../examples/sine-organ.lua.html">sine-organ.lua</a></li>
<li><a href="../examples/midi-chordify.lua.html">midi-chordify.lua</a></li>
<li><a href="../examples/sinemouse-demo.lua.html">sinemouse-demo.lua</a></li>
<li><strong>soundfile-test.lua</strong></li>
</ul>
<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../modules/plugin.html">plugin</a></li>
<li><a href="../modules/script.html">script</a></li>
<li><a href="../modules/midi.html">midi</a></li>
<li><a href="../modules/gui.html">gui</a></li>
<li><a href="../modules/polyGen.html">polyGen</a></li>
<li><a href="../modules/stereoFx.html">stereoFx</a></li>
</ul>
<h2>Classes</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../classes/juce.AffineTransform.html">juce.AffineTransform</a></li>
<li><a href="../classes/juce.AudioFormatReader.html">juce.AudioFormatReader</a></li>
<li><a href="../classes/juce.Colour.html">juce.Colour</a></li>
<li><a href="../classes/juce.ColourGradient.html">juce.ColourGradient</a></li>
<li><a href="../classes/juce.Component.html">juce.Component</a></li>
<li><a href="../classes/juce.FillType.html">juce.FillType</a></li>
<li><a href="../classes/juce.Font.html">juce.Font</a></li>
<li><a href="../classes/juce.Graphics.html">juce.Graphics</a></li>
<li><a href="../classes/juce.Image.html">juce.Image</a></li>
<li><a href="../classes/juce.Justification.html">juce.Justification</a></li>
<li><a href="../classes/juce.LagrangeInterpolator.html">juce.LagrangeInterpolator</a></li>
<li><a href="../classes/juce.Line.html">juce.Line</a></li>
<li><a href="../classes/juce.Path.html">juce.Path</a></li>
<li><a href="../classes/juce.Point.html">juce.Point</a></li>
<li><a href="../classes/juce.RectanglePlacement.html">juce.RectanglePlacement</a></li>
<li><a href="../classes/juce.Rectangle_float.html">juce.Rectangle_float</a></li>
<li><a href="../classes/juce.Rectangle_int.html">juce.Rectangle_int</a></li>
</ul>

</div>

<div id="content">

<pre>
<span class="comment">--[[
name: soundfile test
description: A simple demo that plays an audio file.
author: osar.fr
--]]</span>

<span class="global">require</span> <span class="string">"include/protoplug"</span>

<span class="keyword">local</span> path = <span class="string">"C:\\temp\\pluck44.wav"</span>
<span class="keyword">local</span> wave, len

<span class="comment">-- 'prepareToPlay' will be triggered when the host sample rate is known,
</span><span class="comment">-- so we can load sound files with automatic sample rate conversion:
</span>plugin.addHandler(<span class="string">'prepareToPlay'</span>, <span class="keyword">function</span>()
<span class="keyword">local</span> readr = juce.AudioFormatReader(path)
<span class="keyword">if</span> readr==<span class="keyword">nil</span> <span class="keyword">then</span> error (<span class="string">"can't open wave: "</span>..path) <span class="keyword">end</span>
wave, len = readr:readToFloat(<span class="number">2</span>) <span class="comment">-- require 2 channels
</span><span class="keyword">end</span>)

polyGen.initTracks(<span class="number">8</span>)

<span class="keyword">function</span> polyGen.VTrack:noteOn(note, vel, ev)
self.playing = <span class="keyword">true</span>
self.wavepos = <span class="number">0</span>
<span class="keyword">end</span>

<span class="keyword">function</span> polyGen.VTrack:noteOff(note, ev)
self.playing = <span class="keyword">false</span>
<span class="keyword">end</span>

<span class="keyword">function</span> polyGen.VTrack:addProcessBlock(samples, smax)
<span class="keyword">for</span> i = <span class="number">0</span>,smax <span class="keyword">do</span>
<span class="keyword">if</span> self.playing <span class="keyword">and</span> self.wavepos &lt; len <span class="keyword">then</span>
self.wavepos = self.wavepos + <span class="number">1</span>
samples[<span class="number">0</span>][i] = samples[<span class="number">0</span>][i] + wave[<span class="number">0</span>][self.wavepos] <span class="comment">-- left
</span> samples[<span class="number">1</span>][i] = samples[<span class="number">1</span>][i] + wave[<span class="number">1</span>][self.wavepos] <span class="comment">-- right
</span> <span class="keyword">end</span>
<span class="keyword">end</span>
<span class="keyword">end</span></pre>


</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.2</a></i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
212 changes: 212 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/index.html
@@ -0,0 +1,212 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>Protoplug Lua API Reference</title>
<link rel="stylesheet" href="ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<a href="http://osar.fr">
<div class=osarlogo> </div>
</a>
<br/>
<a href="http://osar.fr/protoplug">
<h1>protoplug</h1>
</a>
<span class="proto_subtitle">Lua API reference</span>




<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="modules/plugin.html">plugin</a></li>
<li><a href="modules/script.html">script</a></li>
<li><a href="modules/midi.html">midi</a></li>
<li><a href="modules/gui.html">gui</a></li>
<li><a href="modules/polyGen.html">polyGen</a></li>
<li><a href="modules/stereoFx.html">stereoFx</a></li>
</ul>
<h2>Classes</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="classes/juce.AffineTransform.html">juce.AffineTransform</a></li>
<li><a href="classes/juce.AudioFormatReader.html">juce.AudioFormatReader</a></li>
<li><a href="classes/juce.Colour.html">juce.Colour</a></li>
<li><a href="classes/juce.ColourGradient.html">juce.ColourGradient</a></li>
<li><a href="classes/juce.Component.html">juce.Component</a></li>
<li><a href="classes/juce.FillType.html">juce.FillType</a></li>
<li><a href="classes/juce.Font.html">juce.Font</a></li>
<li><a href="classes/juce.Graphics.html">juce.Graphics</a></li>
<li><a href="classes/juce.Image.html">juce.Image</a></li>
<li><a href="classes/juce.Justification.html">juce.Justification</a></li>
<li><a href="classes/juce.LagrangeInterpolator.html">juce.LagrangeInterpolator</a></li>
<li><a href="classes/juce.Line.html">juce.Line</a></li>
<li><a href="classes/juce.Path.html">juce.Path</a></li>
<li><a href="classes/juce.Point.html">juce.Point</a></li>
<li><a href="classes/juce.RectanglePlacement.html">juce.RectanglePlacement</a></li>
<li><a href="classes/juce.Rectangle_float.html">juce.Rectangle_float</a></li>
<li><a href="classes/juce.Rectangle_int.html">juce.Rectangle_int</a></li>
</ul>
<h2>Examples</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="examples/classic-filter.lua.html">classic-filter.lua</a></li>
<li><a href="examples/sine-organ.lua.html">sine-organ.lua</a></li>
<li><a href="examples/midi-chordify.lua.html">midi-chordify.lua</a></li>
<li><a href="examples/sinemouse-demo.lua.html">sinemouse-demo.lua</a></li>
<li><a href="examples/soundfile-test.lua.html">soundfile-test.lua</a></li>
</ul>

</div>

<div id="content">


<h2>Protoplug Lua API Reference</h2>

<h2>Modules</h2>
<table class="module_list">
<tr>
<td class="name" nowrap><a href="modules/plugin.html">plugin</a></td>
<td class="summary">Use <a href="modules/plugin.html#">plugin</a> to define the AU/VST audio plugin's behaviour.</td>
</tr>
<tr>
<td class="name" nowrap><a href="modules/script.html">script</a></td>
<td class="summary">Use <a href="modules/script.html#">script</a> to handle script events, libraries and files.</td>
</tr>
<tr>
<td class="name" nowrap><a href="modules/midi.html">midi</a></td>
<td class="summary"><a href="modules/midi.html#">midi</a> contains MIDI-related classes and functions.</td>
</tr>
<tr>
<td class="name" nowrap><a href="modules/gui.html">gui</a></td>
<td class="summary">Use <a href="modules/gui.html#">gui</a> to define your script's custom graphical user interface.</td>
</tr>
<tr>
<td class="name" nowrap><a href="modules/polyGen.html">polyGen</a></td>
<td class="summary">Use this module to create a polyphonic generator with virtual tracks.</td>
</tr>
<tr>
<td class="name" nowrap><a href="modules/stereoFx.html">stereoFx</a></td>
<td class="summary">Use this module to create a stereo effect.</td>
</tr>
</table>
<h2>Classes</h2>
<table class="module_list">
<tr>
<td class="name" nowrap><a href="classes/juce.AffineTransform.html">juce.AffineTransform</a></td>
<td class="summary">A geometric transformation.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.AudioFormatReader.html">juce.AudioFormatReader</a></td>
<td class="summary">Class to read audio files.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.Colour.html">juce.Colour</a></td>
<td class="summary">A simple colour class.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.ColourGradient.html">juce.ColourGradient</a></td>
<td class="summary">Colour Gradient.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.Component.html">juce.Component</a></td>
<td class="summary">JUCE Component.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.FillType.html">juce.FillType</a></td>
<td class="summary">Fill Type.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.Font.html">juce.Font</a></td>
<td class="summary">Font.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.Graphics.html">juce.Graphics</a></td>
<td class="summary">Graphics drawing target.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.Image.html">juce.Image</a></td>
<td class="summary">Image.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.Justification.html">juce.Justification</a></td>
<td class="summary">Justification.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.LagrangeInterpolator.html">juce.LagrangeInterpolator</a></td>
<td class="summary">Lagrange Interpolator.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.Line.html">juce.Line</a></td>
<td class="summary">Line.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.Path.html">juce.Path</a></td>
<td class="summary">Path.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.Point.html">juce.Point</a></td>
<td class="summary">Point.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.RectanglePlacement.html">juce.RectanglePlacement</a></td>
<td class="summary">Rectangle Placement.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.Rectangle_float.html">juce.Rectangle_float</a></td>
<td class="summary">A floating-point (sub-pixel) rectangle.</td>
</tr>
<tr>
<td class="name" nowrap><a href="classes/juce.Rectangle_int.html">juce.Rectangle_int</a></td>
<td class="summary">An integer (pixel-aligned) rectangle.</td>
</tr>
</table>
<h2>Examples</h2>
<table class="module_list">
<tr>
<td class="name" nowrap><a href="examples/classic-filter.lua.html">classic-filter.lua</a></td>
<td class="summary"></td>
</tr>
<tr>
<td class="name" nowrap><a href="examples/sine-organ.lua.html">sine-organ.lua</a></td>
<td class="summary"></td>
</tr>
<tr>
<td class="name" nowrap><a href="examples/midi-chordify.lua.html">midi-chordify.lua</a></td>
<td class="summary"></td>
</tr>
<tr>
<td class="name" nowrap><a href="examples/sinemouse-demo.lua.html">sinemouse-demo.lua</a></td>
<td class="summary"></td>
</tr>
<tr>
<td class="name" nowrap><a href="examples/soundfile-test.lua.html">soundfile-test.lua</a></td>
<td class="summary"></td>
</tr>
</table>

</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.2</a></i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
333 changes: 333 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/ldoc.css
@@ -0,0 +1,333 @@
/* BEGIN RESET
Copyright (c) 2010, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.com/yui/license.html
version: 2.8.2r1
*/
html {
color: #000;
background: #FFF;
}
body {
text-align: center;
}
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td {
margin: 0;
padding: 0;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
fieldset,img {
border: 0;
}
address,caption,cite,code,dfn,em,strong,th,var,optgroup {
font-style: inherit;
font-weight: inherit;
}
del,ins {
text-decoration: none;
}
li {
list-style: bullet;
margin-left: 20px;
}
caption,th {
text-align: left;
}
h1,h2,h3,h4,h5,h6 {
font-size: 100%;
font-weight: bold;
}
q:before,q:after {
content: '';
}
abbr,acronym {
border: 0;
font-variant: normal;
}
sup {
vertical-align: baseline;
}
sub {
vertical-align: baseline;
}
legend {
color: #000;
}
input,button,textarea,select,optgroup,option {
font-family: inherit;
font-size: inherit;
font-style: inherit;
font-weight: inherit;
}
input,button,textarea,select {*font-size:100%;
}
/* END RESET */

body {
margin-left: 1em;
margin-right: 1em;
font-family: arial, helvetica, geneva, sans-serif;
background-color: #ffffff; margin: 0px;
}

code, tt { font-family: monospace; }
span.parameter { font-family:monospace; }
span.parameter:after { content:":"; }
span.types:before { content:"("; }
span.types:after { content:")"; }
.type { font-weight: bold; font-style:italic }

body, p, td, th { font-size: .95em; line-height: 1.2em;}

p, ul { margin: 10px 0 0 0px;}

strong { font-weight: bold;}

em { font-style: italic;}

h1 {
font-size: 1.5em;
margin: 10px 0 20px 0;
}
h2, h3, h4 { margin: 15px 0 10px 0; }
h2 {
border-bottom: 2px solid #ccc;
font-size: 1.25em;
margin: 19px 0 12px;
}
h3 { font-size: 1.15em; }
h4 { font-size: 1.06em; }

a:link { font-weight: bold; color: #004080; text-decoration: none; }
a:visited { font-weight: bold; color: #006699; text-decoration: none; }
a:link:hover { text-decoration: underline; }

hr {
color:#cccccc;
background: #00007f;
height: 1px;
}

blockquote { margin-left: 3em; }

ul { list-style-type: disc; }

p.name {
font-family: Consolas, monaco, monospace;
padding-top: 1em;
}

pre.example {
background-color: rgb(245, 245, 245);
border: 1px solid silver;
padding: 10px;
margin: 10px 0 10px 0;
font-family: Consolas, monaco, monospace;
font-size: .85em;
}

pre {
background-color: rgb(245,245,255);
border: 1px solid #cccccc;
padding: 10px;
margin: 10px 0 10px 0;
overflow: auto;
font-family: Consolas, monaco, monospace;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
font-size: 14px;
}


table.index { border: 1px #00007f; }
table.index td { text-align: left; vertical-align: top; }

#container {
/*margin-left: 1em;
margin-right: 1em;
background-color: #f4f4ff;*/
display: inline-block;
margin: 0 auto;
text-align: left;
}

#product {
text-align: center;
border-bottom: 1px solid #cccccc;
background-color: #ffffff;
}

#product big {
font-size: 2em;
}

#main {
background-color:#FFFFFF;
/*border-left: 2px solid #cccccc;*/
}

#navigation {
float: left;
width: 14em;
vertical-align: top;
background-color:#FFFFFF;
overflow: visible;
}

#navigation h2 {
background-color:#FFFFFF;
font-size:1.1em;
color:#000000;
text-align: left;
padding:0.2em;
/*border-top:1px solid #dddddd;*/
border-bottom:1px solid #dddddd;
}

#navigation ul
{
font-size:1em;
list-style-type: none;
margin: 1px 1px 10px 1px;
}

#navigation li {
text-indent: -1em;
display: block;
margin: 3px 0px 0px 22px;
word-wrap: break-word;
}

#navigation li li a {
margin: 0px 3px 0px -1em;
}

#content {
margin-left: 14em;
padding: 1em;
width: 700px;
border-left: 2px solid #cccccc;
/*border-right: 2px solid #cccccc;*/
background-color: #ffffff;
}

#about {
clear: both;
padding: 5px;
border-top: 2px solid #cccccc;
background-color: #ffffff;
}

@media print {
body {
font: 12pt "Times New Roman", "TimeNR", Times, serif;
}
a { font-weight: bold; color: #004080; text-decoration: underline; }

#main {
background-color: #ffffff;
border-left: 0px;
}

#container {
margin-left: 2%;
margin-right: 2%;
background-color: #ffffff;
}

#content {
padding: 1em;
background-color: #ffffff;
}

#navigation {
display: none;
}
pre.example {
font-family: Consolas, monaco, monospace;
font-size: 10pt;
page-break-inside: avoid;
}
}

table.module_list {
border-width: 1px;
border-style: solid;
border-color: #cccccc;
border-collapse: collapse;
}
table.module_list td {
border-width: 1px;
padding: 3px;
border-style: solid;
border-color: #cccccc;
}
table.module_list td.name { background-color: #f4f4ff; ; min-width: 200px; }
table.module_list td.summary { width: 100%; }

table.function_list {
border-width: 1px;
border-style: solid;
border-color: #cccccc;
border-collapse: collapse;
}
table.function_list td {
border-width: 1px;
padding: 3px;
border-style: solid;
border-color: #cccccc;
}
table.function_list td.name { background-color: #f6f6ff; ; min-width: 200px; padding: 7px 5px; }
table.function_list td.summary { width: 100%; }

dl.table dt, dl.function dt {
background-color: #f4f4ff;
border-bottom: 1px solid #ccc;
border-left: 1px solid #ccc;
border-top: 1px solid #ccc;
padding: 0.7em 0 0.5em 1em;
}
dl.table dd, dl.function dd {padding-bottom: 1em; margin: 10px 0 0 20px;}
dl.table h3, dl.function h3 {font-size: .95em;}

ul.nowrap {
overflow:auto;
whitespace:nowrap;
}

/* stop sublists from having initial vertical space */
ul ul { margin-top: 0px; }
ol ul { margin-top: 0px; }
ol ol { margin-top: 0px; }
ul ol { margin-top: 0px; }

/* styles for prettification of source */
pre .comment { color: #558817; }
pre .constant { color: #a8660d; }
pre .escape { color: #844631; }
pre .keyword { color: #2239a8; font-weight: bold; }
pre .library { color: #0e7c6b; }
pre .marker { color: #512b1e; background: #fedc56; font-weight: bold; }
pre .string { color: #a8660d; }
pre .number { color: #f8660d; }
pre .operator { color: #2239a8; font-weight: bold; }
pre .preprocessor, pre .prepro { color: #a33243; }
pre .global { color: #800080; }
pre .prompt { color: #558817; }
pre .url { color: #272fc2; text-decoration: underline; }

.wrapman { display: inline-block; white-space: normal; min-width: 460px; }
.proto_subtitle {color: #888; position: relative; top: -12px;}
.function_list .proto_prefix {color: #789;}
.osarlogo {
display: block;
width: 132px;
height: 121px;
background: url("osar-121.png") no-repeat scroll 0 0 transparent;
margin: 0 auto;
}
677 changes: 677 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/modules/gui.html

Large diffs are not rendered by default.

865 changes: 865 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/modules/midi.html

Large diffs are not rendered by default.

792 changes: 792 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/modules/plugin.html

Large diffs are not rendered by default.

378 changes: 378 additions & 0 deletions ports/protoplug/ProtoplugFiles/doc/modules/polyGen.html
@@ -0,0 +1,378 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>protoplug: Module polyGen</title>
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<a href="http://osar.fr">
<div class=osarlogo> </div>
</a>
<br/>
<a href="http://osar.fr/protoplug">
<h1>protoplug</h1>
</a>
<span class="proto_subtitle">Lua API reference</span>

<ul>
<li><a href="../index.html">Index</a></li>
</ul>

<h2>Contents</h2>
<ul>
<li><a href="#Functions">Functions</a></li>
<li><a href="#Class_polyGen_VTrack">Class polyGen.VTrack </a></li>
</ul>


<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../modules/plugin.html">plugin</a></li>
<li><a href="../modules/script.html">script</a></li>
<li><a href="../modules/midi.html">midi</a></li>
<li><a href="../modules/gui.html">gui</a></li>
<li><strong>polyGen</strong></li>
<li><a href="../modules/stereoFx.html">stereoFx</a></li>
</ul>
<h2>Classes</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../classes/juce.AffineTransform.html">juce.AffineTransform</a></li>
<li><a href="../classes/juce.AudioFormatReader.html">juce.AudioFormatReader</a></li>
<li><a href="../classes/juce.Colour.html">juce.Colour</a></li>
<li><a href="../classes/juce.ColourGradient.html">juce.ColourGradient</a></li>
<li><a href="../classes/juce.Component.html">juce.Component</a></li>
<li><a href="../classes/juce.FillType.html">juce.FillType</a></li>
<li><a href="../classes/juce.Font.html">juce.Font</a></li>
<li><a href="../classes/juce.Graphics.html">juce.Graphics</a></li>
<li><a href="../classes/juce.Image.html">juce.Image</a></li>
<li><a href="../classes/juce.Justification.html">juce.Justification</a></li>
<li><a href="../classes/juce.LagrangeInterpolator.html">juce.LagrangeInterpolator</a></li>
<li><a href="../classes/juce.Line.html">juce.Line</a></li>
<li><a href="../classes/juce.Path.html">juce.Path</a></li>
<li><a href="../classes/juce.Point.html">juce.Point</a></li>
<li><a href="../classes/juce.RectanglePlacement.html">juce.RectanglePlacement</a></li>
<li><a href="../classes/juce.Rectangle_float.html">juce.Rectangle_float</a></li>
<li><a href="../classes/juce.Rectangle_int.html">juce.Rectangle_int</a></li>
</ul>
<h2>Examples</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../examples/classic-filter.lua.html">classic-filter.lua</a></li>
<li><a href="../examples/sine-organ.lua.html">sine-organ.lua</a></li>
<li><a href="../examples/midi-chordify.lua.html">midi-chordify.lua</a></li>
<li><a href="../examples/sinemouse-demo.lua.html">sinemouse-demo.lua</a></li>
<li><a href="../examples/soundfile-test.lua.html">soundfile-test.lua</a></li>
</ul>

</div>

<div id="content">

<h1>Module <code>polyGen</code></h1>
<p>Use this module to create a polyphonic generator with virtual tracks.</p>
<p>

<p> Example at <a href="../examples/sine-organ.lua.html#">sine-organ.lua</a>.</p>

<p> This module facilitates the creation of polyphonic instruments. It acts
as a layer that covers the <a href="../modules/plugin.html#processBlock">plugin.processBlock</a> function, receives MIDI
notes and dispatches them to virtual tracks. The <a href="../modules/polyGen.html#polyGen.VTrack">polyGen.VTrack</a> prototype
is exposed for you to define audio processing in a simple,
monophonic, per-note fashion. Initialize this module by calling <a href="../modules/polyGen.html#initTracks">polyGen.initTracks</a> .</p>

<p> The <a href="../modules/polyGen.html#">polyGen</a> global is available to every protoplug script after including the
main protoplug header :</p>
<pre><code>require "include/protoplug"
</code></pre>
</p>


<h2><a href="#Functions">Functions</a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#initTracks"><span class="proto_prefix">polyGen</span>.initTracks ([n=8])</a></td>
<td class="summary">Set up virtual tracks.</td>
</tr>
</table>
<h2><a href="#Class_polyGen_VTrack">Class polyGen.VTrack </a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#VTrack:addProcessBlock"><span class="proto_prefix">polyGen.VTrack</span>:addProcessBlock (samples, smax)</a></td>
<td class="summary">Override to additively process an audio block.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#VTrack:noteOn"><span class="proto_prefix">polyGen.VTrack</span>:noteOn (note, vel)</a></td>
<td class="summary">Override to recieve note on.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#VTrack:noteOff"><span class="proto_prefix">polyGen.VTrack</span>:noteOff (note)</a></td>
<td class="summary">Override to recieve note off.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#VTrack:init"><span class="proto_prefix">polyGen.VTrack</span>:init ()</a></td>
<td class="summary">Override to allow initialisation.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#VTrack.i"><span class="proto_prefix">polyGen.VTrack</span>.i</a></td>
<td class="summary">Track number.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#VTrack.note"><span class="proto_prefix">polyGen.VTrack</span>.note</a></td>
<td class="summary">Current MIDI note.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#VTrack.noteFreq"><span class="proto_prefix">polyGen.VTrack</span>.noteFreq</a></td>
<td class="summary">Current note frequency.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#VTrack.notePeriod"><span class="proto_prefix">polyGen.VTrack</span>.notePeriod</a></td>
<td class="summary">Current note period.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#VTrack.noteIsOn"><span class="proto_prefix">polyGen.VTrack</span>.noteIsOn</a></td>
<td class="summary">Note is on.</td>
</tr>
</table>

<br/>
<br/>


<h2><a name="Functions"></a>Functions</h2>
<dl class="function">
<dt>
<a name = "initTracks"></a>
<strong><span class="proto_prefix">polyGen</span>.initTracks ([n=8])</strong>
</dt>
<dd>
Set up virtual tracks.
This function must be called by any script that wishes to use this module.

</ul>

<h3>Parameters:</h3>
<ul>
<li><span class="parameter">n</span>
the number of virtual tracks to use (aka. voices or polyphony)
(<em>default</em> 8)
</li>
</ul>





</dd>
</dl>
<h2><a name="Class_polyGen_VTrack"></a>Class polyGen.VTrack </h2>

Virtual track. A monophonic voice that defines the instrument's sound.
<br><br>
<dl class="function">
<dt>
<a name = "VTrack:addProcessBlock"></a>
<strong><span class="proto_prefix">polyGen.VTrack</span>:addProcessBlock (samples, smax)</strong>
</dt>
<dd>
Override to additively process an audio block.
Define the output of a virtual track in this method.
Use <code>self.noteIsOn</code>, <code>self.noteFreq</code>, or any fields you defined to
determine current the state of the calling track.</p>

<p> This method is called successively on every track,
which should <em>add</em> their output to <code>samples</code>.

</ul>

<h3>Parameters:</h3>
<ul>
<li><span class="parameter">samples</span>
a C <code>float**</code> pointing to two channels of samples to add to.
</li>
<li><span class="parameter">smax</span>
the maximum sample index (nSamples - 1)
</li>
</ul>



<h3>See also:</h3>
<ul>
<a href="../examples/sine-organ.lua.html#">sine-organ.lua</a>
</ul>


</dd>
<dt>
<a name = "VTrack:noteOn"></a>
<strong><span class="proto_prefix">polyGen.VTrack</span>:noteOn (note, vel)</strong>
</dt>
<dd>
Override to recieve note on.
Override this method to handle a note getting dispatched to a virtual track.

</ul>

<h3>Parameters:</h3>
<ul>
<li><span class="parameter">note</span>
the MIDI note number (0-127)
</li>
<li><span class="parameter">vel</span>
the MIDI velocity (0-127)
</li>
</ul>





</dd>
<dt>
<a name = "VTrack:noteOff"></a>
<strong><span class="proto_prefix">polyGen.VTrack</span>:noteOff (note)</strong>
</dt>
<dd>
Override to recieve note off.
Override this method to handle a note off on a virtual track.

</ul>

<h3>Parameters:</h3>
<ul>
<li><span class="parameter">note</span>
a reminder of the MIDI note number
</li>
</ul>





</dd>
<dt>
<a name = "VTrack:init"></a>
<strong><span class="proto_prefix">polyGen.VTrack</span>:init ()</strong>
</dt>
<dd>
Override to allow initialisation.
Override this method to perform initialisation tasks on each track,
for example to create any per-track fields.

</ul>






</dd>
<dt>
<a name = "VTrack.i"></a>
<strong><span class="proto_prefix">polyGen.VTrack</span>.i</strong>
</dt>
<dd>
Track number.
Use <code>self.i</code> to check which virtual track is being called.

</ul>






</dd>
<dt>
<a name = "VTrack.note"></a>
<strong><span class="proto_prefix">polyGen.VTrack</span>.note</strong>
</dt>
<dd>
Current MIDI note.
The MIDI note number that is currently being played by this track,
or <code>-1</code> if in note off state.

</ul>






</dd>
<dt>
<a name = "VTrack.noteFreq"></a>
<strong><span class="proto_prefix">polyGen.VTrack</span>.noteFreq</strong>
</dt>
<dd>
Current note frequency.
The note frequency that is currently being played by this track.

</ul>






</dd>
<dt>
<a name = "VTrack.notePeriod"></a>
<strong><span class="proto_prefix">polyGen.VTrack</span>.notePeriod</strong>
</dt>
<dd>
Current note period.
<code>1/noteFreq</code>

</ul>






</dd>
<dt>
<a name = "VTrack.noteIsOn"></a>
<strong><span class="proto_prefix">polyGen.VTrack</span>.noteIsOn</strong>
</dt>
<dd>
Note is on.
Whether the track is playing a note (<code>boolean</code>).

</ul>






</dd>
</dl>


</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.2</a></i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>