<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<syntona version="0.5.18">
<module bundle="core" id="0" name="top0" type="patch">
<view height="0" width="0" xpos="20" ypos="20"/>
<modules>
<module bundle="jsyn" id="0" name="segEnv" type="segEnv">
<view height="108" width="96" xpos="372" ypos="39"/>
<envelope immediate="true">
<frames>
<frame dur="0.5" value="1.0"/>
<frame dur="0.3540895782670379" value="0.16228070175438597"/>
<frame dur="0.22027985174978248" value="0.2"/>
<frame dur="0.2219262786424554" value="0.6359649122807017"/>
<frame dur="0.2883617825373801" value="0.8"/>
<frame dur="0.5" value="0.0"/>
</frames>
<loops>
<loop begin="1" end="5" name="sustain"/>
<loop begin="-1" end="-1" name="release"/>
</loops>
</envelope>
<jack name="on"/>
<jack name="off"/>
<jack name="queue"/>
<jack name="output"/>
</module>
<module bundle="jsyn" id="1" name="sawOsDPW" type="sawOsDPW">
<view height="88" width="96" xpos="652" ypos="111"/>
<jack max="8000.0" min="40.0" name="frequency" value="440.0" valueAdded="false"/>
<jack max="1.0" min="0.0" name="amplitude" value="1.0" valueAdded="false"/>
<jack name="output"/>
</module>
<module bundle="jsyn" id="2" name="monoRdr" type="monoRdr">
<view height="108" width="96" xpos="512" ypos="110"/>
<jack name="dataQueue"/>
<jack max="1.0" min="0.0" name="amplitude" value="1.0" valueAdded="false"/>
<jack max="1.0" min="0.0" name="rate" value="3.52402" valueAdded="false"/>
<jack name="output"/>
</module>
<module bundle="jsyn" id="3" name="lineOut" type="lineOut">
<view height="68" width="96" xpos="784" ypos="163"/>
<jack max="1.0" min="0.0" name="input0" value="0.0" valueAdded="false"/>
<jack max="1.0" min="0.0" name="input1" value="0.0" valueAdded="false"/>
</module>
<module bundle="core" id="4" name="knob" type="knob">
<view height="60" width="68" xpos="395" ypos="184"/>
<jack max="100.0" min="0.0" name="kick" value="0.0"/>
<jack max="100.0" min="0.0" name="in" value="3.52402"/>
<jack name="out"/>
</module>
<module bundle="core" id="5" name="kick" type="kick">
<view height="24" width="42" xpos="316" ypos="56"/>
<jack name="out"/>
</module>
<module bundle="core" id="6" name="comment" type="comment">
<view height="294" width="250" xpos="41" ypos="39"/>
<text>Click ON button on segEnv.

The segEnv is an envelope with multiple segments. You can edit the breakpoints, and set ON and OFF loops in the popup editor.

Kicking ON will play the attack and then the ON loop. Or it will just play the whole envelope if there are no loops.

Kicking OFF will exit the ON loop and finish or play the OFF loop.

Kicking QUEUE will play the entire envelope regardless of loops.</text>
</module>
<module bundle="core" id="7" name="comment2" type="comment">
<view height="102" width="250" xpos="402" ypos="273"/>
<text>The monoRdr reads the envelope data and outputs interpolated values. You can vary the rate of playback. At audio rates you can generate an audible signal.</text>
</module>
<module bundle="core" id="8" name="comment3" type="comment">
<view height="70" width="250" xpos="647" ypos="36"/>
<text>An envelope is often used to control amplitude. But can be used to control any audio port.</text>
</module>
<module bundle="jsyn" id="9" name="segEnv2" type="segEnv">
<view height="108" width="96" xpos="254" ypos="345"/>
<envelope immediate="true">
<frames>
<frame dur="0.5135463910868813" value="1.0"/>
<frame dur="0.5998688685142913" value="0.19298245614035087"/>
<frame dur="0.40987105788247313" value="0.17982456140350878"/>
<frame dur="0.1841265599607882" value="0.3157894736842105"/>
<frame dur="0.3040598274901045" value="0.013157894736842105"/>
<frame dur="0.24948498665854757" value="0.9473684210526315"/>
<frame dur="0.4288023208193783" value="0.6622807017543859"/>
<frame dur="0.2219262786424554" value="0.6359649122807017"/>
<frame dur="0.2883617825373801" value="0.8"/>
<frame dur="0.5" value="0.0"/>
</frames>
<loops>
<loop begin="1" end="9" name="sustain"/>
<loop begin="-1" end="-1" name="release"/>
</loops>
</envelope>
<jack name="on"/>
<jack name="off"/>
<jack name="queue"/>
<jack name="output"/>
</module>
<module bundle="jsyn" id="10" name="monoRdr2" type="monoRdr">
<view height="108" width="96" xpos="386" ypos="410"/>
<jack name="dataQueue"/>
<jack max="1.0" min="0.0" name="amplitude" value="1.0" valueAdded="false"/>
<jack max="1.0" min="0.0" name="rate" value="315.04816" valueAdded="false"/>
<jack name="output"/>
</module>
<module bundle="core" id="11" name="knob2" type="knob">
<view height="60" width="68" xpos="275" ypos="488"/>
<jack max="100.0" min="0.0" name="kick" value="0.0"/>
<jack max="1000.0" min="100.0" name="in" value="315.04816"/>
<jack name="out"/>
</module>
<module bundle="jsyn" id="12" name="scope" type="scope">
<view height="200" width="400" xpos="787" ypos="298"/>
<jack max="1.0" min="0.0" name="input" value="0.0" valueAdded="false"/>
</module>
<module bundle="jsyn" id="13" name="aminus" type="a-">
<view height="88" width="96" xpos="571" ypos="403"/>
<jack max="1.0" min="0.0" name="inputA" value="0.0" valueAdded="false"/>
<jack max="1.0" min="0.0" name="inputB" value="0.4670782" valueAdded="false"/>
<jack name="output"/>
</module>
</modules>
<connections>
<output id="0" jack="output">
<input id="2" jack="dataQueue"/>
</output>
<output id="1" jack="output">
<input id="3" jack="input0"/>
</output>
<output id="2" jack="output">
<input id="1" jack="amplitude"/>
</output>
<output id="4" jack="out">
<input id="2" jack="rate"/>
</output>
<output id="5" jack="out">
<input id="0" jack="on"/>
</output>
<output id="9" jack="output">
<input id="10" jack="dataQueue"/>
</output>
<output id="10" jack="output">
<input id="13" jack="inputA"/>
</output>
<output id="11" jack="out">
<input id="10" jack="rate"/>
</output>
<output id="13" jack="output">
<input id="12" jack="input"/>
<input id="3" jack="input1"/>
</output>
</connections>
</module>
</syntona>
