digraph pipeline {splines=true; fontname="monospace"; fontsize=10; labeljust="l"; node [shape="none", fontname="monospace", fontsize=12]; monoInput [label="mono Input", shape="doublecircle"]; liveBuffer [label="", image="liveBuffer.png"]; rotNorm [label="Rotation + Normalization", shape="invhouse"]; fixedBuffer [label="", image="fixedBuffer.png"]; instrumentMix [label="Mixer", shape="invhouse"]; monoOutput [label="mono Output", shape="circle", fillcolor="black"]; subgraph clusterLegend { label="Legend"; edge [arrowhead="box", arrowtail="curve", dir="both", fontname="monospace", fontcolor="red3", color="red3"]; audioSource -> audioTarget [label="audio flow"]; edge [arrowhead="normal", arrowtail="dot", dir="both", fontname="monospace", fontcolor="green4", color="green4"]; dataSource -> dataTarget [label="data flow", arrowhead="normal", arrowtail="dot", dir="both"]; computation [shape="invhouse"]; edge [style="dashed", arrowhead="none", arrowtail="none", dir="both", fontname="monospace", fontcolor="indigo", color="indigo"]; sourceElement -> targetElement [label="information"] } subgraph cluster_Looper { label="LooperTrack"; subgraph clusterLooperFX { label="LooperTrack Chain Effects"; looperFXDisto [label="Disto", shape="invhouse"]; looperFXFreeverb [label="Freeverb", shape="invhouse"]; looperFXFreqShift [label="FreqShift", shape="invhouse"]; looperFXWaveGuide [label="WaveGuide", shape="invhouse"]; } looperBuffer [label="", image="looperBuffer.png"]; looperMix [label="Mixer", shape="invhouse"]; } subgraph cluster_Particle { label="ParticleTrack"; subgraph cluster_particleFX { label="ParticleTrack Chain Effects"; particleFXDisto [label="Disto", shape="invhouse"]; particleFXFreeverb [label="Freeverb", shape="invhouse"]; particleFXFreqShift [label="FreqShift", shape="invhouse"]; particleFXWaveGuide [label="WaveGuide", shape="invhouse"]; } particleBuffer [label="", image="particleBuffer.png"]; particleMix [label="Mixer", shape="invhouse"]; } edge [arrowhead="box", arrowtail="curve", dir="both", fontname="monospace", fontcolor="red3", color="red3"]; monoInput -> liveBuffer; looperBuffer -> looperFXDisto -> looperFXFreeverb -> looperFXFreqShift -> looperFXWaveGuide -> looperMix; particleBuffer -> particleFXDisto -> particleFXFreeverb -> particleFXFreqShift -> particleFXWaveGuide -> particleMix; looperBuffer -> looperMix [label="Dry"]; particleBuffer -> particleMix [label="Dry"]; {looperMix particleMix} -> instrumentMix -> monoOutput; edge [arrowhead="normal", arrowtail="dot", dir="both", fontname="monospace", fontcolor="green4", color="green4"]; liveBuffer -> rotNorm -> fixedBuffer; edge [style="dashed", arrowhead="none", arrowtail="normal", dir="both", fontname="monospace", fontcolor="indigo", color="indigo"]; fixedBuffer -> {looperBuffer particleBuffer} [label="reference"]; }
