<phyphox version="1.10">
    <title>Merry Christmas and Happy New Year 2021!</title>
    <category>New Year!</category>
    <description>Take your smartphone vertically and incline it a little. The garlands, the snowflakes and the salut are controlled by the acceleration sensor components x and z (© mIv 2020).</description>
    <icon format="string">NY!</icon>
    <color>green</color>
    <data-containers>
	<container size="101" static="false">z</container> <!-- chritmas tree -->
	<container size="101" static="false">left</container>
	<container size="101" static="false">right</container>
	<container size="51" static="false">h</container> <!-- 2 garlands (51) -->
	<container size="51" static="false">x1</container>
	<container size="51" static="false">x2</container>
	<container size="1" static="false">Ax</container>
	<container size="1" static="false">Az</container>
	<container size="1" static="false">sx</container>
	<container size="1" static="false">sz</container> 
	<container size="71" static="false">Sx</container> <!-- 71 snowflakes -->
	<container size="71" static="false">Sz</container>
	<container size="6" static="false">n5</container> <!-- star -->
	<container size="6" static="false">x5</container>
	<container size="6" static="false">y5</container>
	<container size="1" init="0.0" static="false">sound</container> <!-- salut -->
	<container size="1" init="0.0" static="false">salut</container>
	<container size="1" init="0.0" static="false">go</container>
	<container size="40" static="false">n40</container>
	<container size="40" static="false">x40</container>
	<container size="40" static="false">y40</container>
    </data-containers>
    <input>
        <sensor rate="0" average="false" type="accelerometer">
            <output component="x">Ax</output>
            <output component="z">Az</output>
        </sensor>
    </input>
    <output>
        <audio rate="48000" loop="false" normalize="true">
            <noise>
                <input parameter="amplitude" type="buffer" clear="false">sound</input>
                <input parameter="duration" type="value">0.6</input>
            </noise>
        </audio>
    </output>
    <analysis sleep="0" onUserInput="false">
        <ramp>
            <input as="start" type="value">0</input>
            <input as="stop" type="value">4</input>
            <input as="length" type="value">101</input>
            <output as="out">z</output>
        </ramp>
        <ramp>
            <input as="start" type="value">0</input>
            <input as="stop" type="value">4</input>
            <input as="length" type="value">51</input>
            <output as="out">h</output>
        </ramp>
        <formula formula="exp(-[1_])">
            <input as="in" clear="false">z</input>
            <output as="out">right</output>
        </formula>
        <multiply>
            <input as="factor" type="value">-1</input>
            <input as="factor" clear="false">right</input>
            <output as="product">left</output>
        </multiply> 
        <formula formula="exp(-[1_])*cos([1_]*2+[2])">
            <input as="in" clear="false">h</input>
            <input as="in" clear="false">Ax</input>
            <output as="out">x1</output>
        </formula> 
        <formula formula="-exp(-[1_])*sin([1_]*2-[2])">
            <input as="in" clear="false">h</input>
            <input as="in" clear="false">Az</input>
            <output as="out">x2</output>
        </formula>
        <formula formula="([1]*10-round([1]*10))*2">
            <input as="in" clear="false">Ax</input>
            <output as="out">sx</output>
        </formula>
        <formula formula="([1]*10-round([1]*10)+0.5)*4">
            <input as="in" clear="false">Az</input>
            <output as="out">sz</output>
        </formula>
        <append>
            <input clear="false">Sx</input>
            <input clear="true">sx</input>
            <output>Sx</output>
        </append> 
        <append>
            <input clear="false">Sz</input>
            <input clear="true">sz</input>
            <output>Sz</output>
        </append>
        <ramp>
            <input as="start" type="value">0</input>
            <input as="stop" type="value">5</input>
            <input as="length" type="value">6</input>
            <output as="out">n5</output>
        </ramp>
        <formula formula="(sin((4/5)*3.14159*[1_]))*0.12">
            <input as="in" clear="false">n5</input>
            <output as="out">x5</output>
        </formula>
        <formula formula="(cos((4/5)*3.14159*[1_])+0.379)*0.15+4.03">
            <input as="in" clear="false">n5</input>
            <output as="out">y5</output>
        </formula>
        <if less="false" equal="false" greater="true">
            <input as="a" clear="false">Az</input>
            <input as="b" type="value">8.0</input>
            <input as="true" type="value">0.8</input>
            <input as="false" type="value">0.0</input>
            <output>sound</output>
        </if>
        <if less="false" equal="false" greater="true">
            <input as="a" clear="false">Az</input>
            <input as="b" type="value">8.0</input>
            <input as="true" type="value">0.01</input>
            <output>go</output>
        </if>
        <add>
            <input clear="false">salut</input>
            <input clear="false">go</input>
            <output>salut</output>
        </add>
        <if less="false" equal="true" greater="true">
            <input as="a" clear="false">salut</input>
            <input as="b" type="value">0.75</input>
            <input as="true" type="value">0.0</input>
            <output>go</output>
        </if>
        <if less="false" equal="true" greater="true">
            <input as="a" clear="false">salut</input>
            <input as="b" type="value">0.75</input>
            <input as="true" type="value">0.0</input>
            <output>salut</output>
        </if>
        <ramp>
            <input as="start" type="value">0</input>
            <input as="stop" type="value">39</input>
            <input as="length" type="value">40</input>
            <output as="out">n40</output>
        </ramp>
        <formula formula="(sin((1/20)*3.14159*[1_]))*[2]-0.0">
            <input as="in" clear="false">n40</input>
            <input as="in" clear="false">salut</input>
            <output as="out">x40</output>
        </formula>
        <formula formula="(cos((1/20)*3.14159*[1_]))*[2]+3.0">
            <input as="in" clear="false">n40</input>
            <input as="in" clear="false">salut</input>
            <output as="out">y40</output>
        </formula>
    </analysis>
    <views>
        <view label="2021">
            <graph label="NY 2021" aspectRatio="0.65" style="dots" lineWidth="1" color="ff7e22" partialUpdate="true" history="1" labelX="" labelY="" labelZ="" unitX="" unitY="" unitZ="" logX="false" logY="false" logZ="false" xPrecision="1" yPrecision="0" zPrecision="3" scaleMinX="auto" scaleMaxX="auto" scaleMinY="auto" scaleMaxY="auto" scaleMinZ="auto" scaleMaxZ="auto" minX="0" maxX="0" minY="0" maxY="0" minZ="0" maxZ="0"  mapWidth="0" >
                <input axis="x" color="red" style="lines" lineWidth="3">x5</input>
                <input axis="y">y5</input>
                <input axis="x" color="red" lineWidth="2">x1</input>
                <input axis="y">h</input>
                <input axis="x" color="yellow" lineWidth="2">x2</input>
                <input axis="y">h</input>
                <input axis="x" color="00bb22" style="vbars">left</input>
                <input axis="y">z</input>
                <input axis="x" color="00bb22" style="vbars">right</input>
                <input axis="y">z</input>
                <input axis="x" color="white">Sx</input>
                <input axis="y">Sz</input>
                <input axis="x" color="ff7e22" lineWidth="2">x40</input>
                <input axis="y">y40</input>
            </graph>
        </view>
    </views>
    <export>
    </export>
</phyphox>