| 1234 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Do not edit this file with editors other than draw.io -->
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3181px" height="984px" viewBox="-0.5 -0.5 3181 984" content="<mxfile host="Electron" modified="2025-05-25T18:51:57.712Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.2.5 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="sKEQ9MzyeGyokRNOFSoS" version="24.2.5" type="device" pages="3" scale="1" border="0"> <diagram name="Class UML" id="xySWqu7LQrFbSxXOAWl4"> <mxGraphModel dx="6434" dy="2787" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="ciBtF9zO5i-EcabrgG4C-1" value="juce::dsp::ProcessorBase" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#A3A3A3;" parent="1" vertex="1"> <mxGeometry x="130" y="300" width="540" height="120" as="geometry" /> </mxCell> <mxCell id="ciBtF9zO5i-EcabrgG4C-2" value="[Private properties]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ciBtF9zO5i-EcabrgG4C-1" vertex="1"> <mxGeometry y="26" width="540" height="26" as="geometry" /> </mxCell> <mxCell id="ciBtF9zO5i-EcabrgG4C-3" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="ciBtF9zO5i-EcabrgG4C-1" vertex="1"> <mxGeometry y="52" width="540" height="8" as="geometry" /> </mxCell> <mxCell id="ciBtF9zO5i-EcabrgG4C-4" value="&lt;i&gt;+ reset() : void&lt;/i&gt;&lt;div&gt;&lt;i&gt;+ prepare(spec: const juce::dsp::ProcessSpec&amp;amp;): void&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;+ process(context: const juce::dsp::ProcessContextReplacing&amp;lt;float&amp;gt;&amp;amp;): void&lt;/i&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ciBtF9zO5i-EcabrgG4C-1" vertex="1"> <mxGeometry y="60" width="540" height="60" as="geometry" /> </mxCell> <mxCell id="ciBtF9zO5i-EcabrgG4C-5" value="" style="endArrow=block;endFill=0;endSize=12;html=1;rounded=0;entryX=0.47;entryY=0.996;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="ciBtF9zO5i-EcabrgG4C-4" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="210" y="630" as="sourcePoint" /> <mxPoint x="740" y="520" as="targetPoint" /> <Array as="points"> <mxPoint x="210" y="550" /> <mxPoint x="384" y="550" /> </Array> </mxGeometry> </mxCell> <mxCell id="ciBtF9zO5i-EcabrgG4C-6" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="380" y="550" as="sourcePoint" /> <mxPoint x="560" y="630" as="targetPoint" /> <Array as="points"> <mxPoint x="560" y="550" /> </Array> </mxGeometry> </mxCell> <mxCell id="ciBtF9zO5i-EcabrgG4C-7" value="CMLSChorus" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="414" y="630" width="280" height="250" as="geometry" /> </mxCell> <mxCell id="ciBtF9zO5i-EcabrgG4C-8" value="- dryWetProp: float&lt;div&gt;- amount: float&lt;/div&gt;&lt;div&gt;- delayLine1: juce::dsp::Chorus&amp;lt;float&amp;gt;&lt;/div&gt;&lt;div&gt;- delayLine2: juce::dsp::Chorus&amp;lt;float&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- dryWetMixer: juce::dsp::DryWetMixer&amp;lt;float&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- freqRange: juce::NormalisableRange&amp;lt;float&amp;gt;*&lt;/div&gt;&lt;div&gt;- freqRange: juce::NormalisableRange&amp;lt;float&amp;gt;*&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ciBtF9zO5i-EcabrgG4C-7" vertex="1"> <mxGeometry y="26" width="280" height="114" as="geometry" /> </mxCell> <mxCell id="ciBtF9zO5i-EcabrgG4C-9" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="ciBtF9zO5i-EcabrgG4C-7" vertex="1"> <mxGeometry y="140" width="280" height="8" as="geometry" /> </mxCell> <mxCell id="ciBtF9zO5i-EcabrgG4C-10" value="+ CMLSChorus()&lt;div&gt;+ ~CMLSChorus()&lt;/div&gt;&lt;div&gt;+ setDryWet(value: float): void&lt;/div&gt;&lt;div&gt;+ setAmount(value: float): void&lt;/div&gt;&lt;div&gt;+ getDryWet(): const float&lt;/div&gt;&lt;div&gt;+ getAmount(): const float&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ciBtF9zO5i-EcabrgG4C-7" vertex="1"> <mxGeometry y="148" width="280" height="102" as="geometry" /> </mxCell> <mxCell id="ciBtF9zO5i-EcabrgG4C-11" value="CMLSReverb" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="70" y="630" width="280" height="180" as="geometry" /> </mxCell> <mxCell id="ciBtF9zO5i-EcabrgG4C-12" value="- reverb: juce::Reverb&lt;div&gt;- reverbParams: juce::Reverb::Parameters&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ciBtF9zO5i-EcabrgG4C-11" vertex="1"> <mxGeometry y="26" width="280" height="44" as="geometry" /> </mxCell> <mxCell id="ciBtF9zO5i-EcabrgG4C-13" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="ciBtF9zO5i-EcabrgG4C-11" vertex="1"> <mxGeometry y="70" width="280" height="8" as="geometry" /> </mxCell> <mxCell id="ciBtF9zO5i-EcabrgG4C-14" value="+ CMLSReverb()&lt;div&gt;+ ~CMLSReverb()&lt;/div&gt;&lt;div&gt;+ setDryWet(value: float): void&lt;/div&gt;&lt;div&gt;+ setRoomSize(value: float): void&lt;/div&gt;&lt;div&gt;+ getDryWet() : const float&lt;/div&gt;&lt;div&gt;+ getRoomSize(): const float&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ciBtF9zO5i-EcabrgG4C-11" vertex="1"> <mxGeometry y="78" width="280" height="102" as="geometry" /> </mxCell> <mxCell id="mVzzysHvqAd526uorKCp-5" value="CMLSProjectAudioProcessor" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> <mxGeometry x="870" y="540" width="280" height="250" as="geometry" /> </mxCell> <mxCell id="mVzzysHvqAd526uorKCp-6" value="- reverb: CMLSReverb&lt;div&gt;- chorus: CMLSChorus&lt;/div&gt;&lt;div&gt;- eq: CMLSEqualizer&lt;/div&gt;&lt;div&gt;- distortion: CMLSDistortion&lt;/div&gt;&lt;div&gt;-delay: CMLSDelay&lt;/div&gt;&lt;div&gt;- chain: juce::dsp::ProcessorChain&lt;/div&gt;" style="text;strokeColor=#6c8ebf;fillColor=#dae8fc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="mVzzysHvqAd526uorKCp-5" vertex="1"> <mxGeometry y="26" width="280" height="114" as="geometry" /> </mxCell> <mxCell id="mVzzysHvqAd526uorKCp-7" value="" style="line;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="mVzzysHvqAd526uorKCp-5" vertex="1"> <mxGeometry y="140" width="280" height="8" as="geometry" /> </mxCell> <mxCell id="mVzzysHvqAd526uorKCp-8" value="&lt;div&gt;+prepareToPlay(sampleRate: double, samplesPerBlock: int): void&lt;/div&gt;&lt;div&gt;+ processBlock(buffer: juce::AudioBuffer&amp;lt;float&amp;gt;&amp;amp;, midiMessages: juce::MidiBuffer&amp;amp;): void&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=#6c8ebf;fillColor=#dae8fc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="mVzzysHvqAd526uorKCp-5" vertex="1"> <mxGeometry y="148" width="280" height="102" as="geometry" /> </mxCell> <mxCell id="mVzzysHvqAd526uorKCp-9" value="" style="endArrow=classic;html=1;rounded=0;exitX=1.001;exitY=0.061;exitDx=0;exitDy=0;entryX=-0.002;entryY=0.448;entryDx=0;entryDy=0;exitPerimeter=0;entryPerimeter=0;" parent="1" source="ciBtF9zO5i-EcabrgG4C-8" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="694" y="623.5000000000002" as="sourcePoint" /> <mxPoint x="869.44" y="580.6320000000001" as="targetPoint" /> <Array as="points"> <mxPoint x="740" y="663" /> <mxPoint x="740" y="580" /> </Array> </mxGeometry> </mxCell> <mxCell id="mVzzysHvqAd526uorKCp-10" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.996;exitY=0.097;exitDx=0;exitDy=0;entryX=0;entryY=0.256;entryDx=0;entryDy=0;exitPerimeter=0;entryPerimeter=0;" parent="1" source="ciBtF9zO5i-EcabrgG4C-11" edge="1" target="mVzzysHvqAd526uorKCp-6"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="700" y="666" as="sourcePoint" /> <mxPoint x="800" y="624" as="targetPoint" /> <Array as="points"> <mxPoint x="390" y="647" /> <mxPoint x="390" y="890" /> <mxPoint x="760" y="890" /> <mxPoint x="760" y="666" /> <mxPoint x="760" y="594" /> </Array> </mxGeometry> </mxCell> <mxCell id="apmRL3pJtbGQKjnVbZVX-1" value="CMLSDelay" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="-320" y="630" width="320" height="350" as="geometry" /> </mxCell> <mxCell id="apmRL3pJtbGQKjnVbZVX-2" value="- dryWetProp: float&lt;div&gt;- amount: float&lt;/div&gt;&lt;div&gt;- delayLength: float&lt;/div&gt;&lt;div&gt;- feedback: float&lt;/div&gt;&lt;div&gt;- maximumDelaySamples: int&lt;/div&gt;&lt;div&gt;- mixer: juce::dsp::DryWetMixer&amp;lt;float&amp;gt;&lt;/div&gt;&lt;div&gt;- delayLine:&amp;nbsp;&lt;span style=&quot;background-color: initial;&quot;&gt;juce::dsp::DelayLine&amp;lt;float,&lt;br&gt;juce::dsp::DelayLineInterpolationTypes::Linear&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;delayLine2:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;juce::dsp::DelayLine&amp;lt;float, juce::dsp::DelayLineInterpolationTypes::Linear&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- delayRange: juce::NormalisableRange&amp;lt;float&amp;gt;*&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- delaySmoothing:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;juce::SmoothedValue&amp;lt;float,&lt;br&gt;juce::ValueSmoothingTypes::Linear&amp;gt;*&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- lastDelayInSamples: int&lt;/span&gt;&lt;/div&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;/p&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="apmRL3pJtbGQKjnVbZVX-1" vertex="1"> <mxGeometry y="26" width="320" height="214" as="geometry" /> </mxCell> <mxCell id="apmRL3pJtbGQKjnVbZVX-3" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="apmRL3pJtbGQKjnVbZVX-1" vertex="1"> <mxGeometry y="240" width="320" height="8" as="geometry" /> </mxCell> <mxCell id="apmRL3pJtbGQKjnVbZVX-4" value="+ CMLSDelay()&lt;div&gt;+ ~CMLSDelay()&lt;/div&gt;&lt;div&gt;+ setDryWet(value: float): void&lt;/div&gt;&lt;div&gt;+ setAmount(value: float): void&lt;/div&gt;&lt;div&gt;+ getDryWet(): const float&lt;/div&gt;&lt;div&gt;+ getAmount(): const float&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="apmRL3pJtbGQKjnVbZVX-1" vertex="1"> <mxGeometry y="248" width="320" height="102" as="geometry" /> </mxCell> <mxCell id="apmRL3pJtbGQKjnVbZVX-5" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.002;entryY=0.397;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="mVzzysHvqAd526uorKCp-6" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint y="643" as="sourcePoint" /> <mxPoint x="431" y="620" as="targetPoint" /> <Array as="points"> <mxPoint x="21" y="643" /> <mxPoint x="21" y="930" /> <mxPoint x="360" y="930" /> <mxPoint x="770" y="930" /> <mxPoint x="770" y="610" /> </Array> </mxGeometry> </mxCell> <mxCell id="apmRL3pJtbGQKjnVbZVX-6" value="" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="apmRL3pJtbGQKjnVbZVX-1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="210" y="550" as="sourcePoint" /> <mxPoint x="390" y="630" as="targetPoint" /> <Array as="points"> <mxPoint x="-160" y="550" /> </Array> </mxGeometry> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-1" value="CMLSDistortion" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> <mxGeometry x="-710" y="630" width="320" height="180" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-2" value="- drive: float&lt;div&gt;- mix: float&lt;/div&gt;&lt;div&gt;- inputGain: juce::dsp::Gain&amp;lt;float&amp;gt;&lt;/div&gt;&lt;div&gt;- outputGain: juce::dsp::Gain&amp;lt;float&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-1"> <mxGeometry y="26" width="320" height="74" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-3" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-1"> <mxGeometry y="100" width="320" height="8" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-4" value="+ CMLSDistortion()&lt;div&gt;+ ~CMLSDistortion()&lt;/div&gt;&lt;div&gt;+ setDive(value: float): void&lt;/div&gt;&lt;div&gt;+ setMix(value: float): void&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-1"> <mxGeometry y="108" width="320" height="72" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-5" value="CMLSEqualizer" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> <mxGeometry x="-1340" y="630" width="580" height="190" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-6" value="- sampleRate: double&lt;div&gt;- lowBand:&amp;nbsp;&lt;span style=&quot;background-color: initial;&quot;&gt;juce::dsp::ProcessorDuplicator&amp;lt;juce::dsp::IIR::Filter&amp;lt;float&amp;gt;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;&amp;nbsp; juce::dsp::IIR::Coefficients&amp;lt;float&amp;gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- highBand:&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;juce::dsp::ProcessorDuplicator&amp;lt;juce::dsp::IIR::Filter&amp;lt;float&amp;gt;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;&amp;nbsp;&amp;nbsp;juce::dsp::IIR::Coefficients&amp;lt;float&amp;gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-5"> <mxGeometry y="26" width="580" height="84" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-7" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-5"> <mxGeometry y="110" width="580" height="8" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-8" value="+ CMLSEqualizer()&lt;div&gt;+ ~CMLSEqualizer()&lt;/div&gt;&lt;div&gt;+ setEqLowGain(value: float): void&lt;/div&gt;&lt;div&gt;+ setEqHighGain(value: float): void&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-5"> <mxGeometry y="118" width="580" height="72" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-9" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="-390" y="648" as="sourcePoint" /> <mxPoint x="870" y="630" as="targetPoint" /> <Array as="points"> <mxPoint x="-369" y="648" /> <mxPoint x="-370" y="990" /> <mxPoint x="800" y="990" /> <mxPoint x="800" y="630" /> </Array> </mxGeometry> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-10" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.001;entryY=0.737;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="mVzzysHvqAd526uorKCp-6"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="-760" y="648" as="sourcePoint" /> <mxPoint x="850" y="650" as="targetPoint" /> <Array as="points"> <mxPoint x="-739" y="648" /> <mxPoint x="-740" y="1000" /> <mxPoint x="830" y="1000" /> <mxPoint x="830" y="650" /> </Array> </mxGeometry> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-13" value="juce::AudioProcessor" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#A3A3A3;" vertex="1" parent="1"> <mxGeometry x="905" y="300" width="210" height="90" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-14" value="[Private properties]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-13"> <mxGeometry y="26" width="210" height="26" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-15" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-13"> <mxGeometry y="52" width="210" height="8" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-16" value="[Public methods]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-13"> <mxGeometry y="60" width="210" height="30" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-17" value="" style="endArrow=block;endFill=0;endSize=12;html=1;rounded=0;entryX=0.47;entryY=0.996;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="1001" y="540" as="sourcePoint" /> <mxPoint x="1001" y="390" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-18" value="CMLSProjectAudioProcessorEditor" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> <mxGeometry x="1170" y="540" width="370" height="150" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-40" value="" style="endArrow=classic;html=1;rounded=0;entryX=-0.002;entryY=0.43;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="7jMpkemeNbuTtvH5HA3Z-18" target="7jMpkemeNbuTtvH5HA3Z-19"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="-20" y="45" as="sourcePoint" /> <mxPoint x="30" y="-5" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-19" value="- audioProcessor: CMLSAudioProcessor&amp;amp;&lt;div&gt;- oscReceiver: OSCReceiverWrapper&lt;/div&gt;" style="text;strokeColor=#6c8ebf;fillColor=#dae8fc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-18"> <mxGeometry y="26" width="370" height="44" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-20" value="" style="line;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-18"> <mxGeometry y="70" width="370" height="8" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-21" value="+ CMLSAudioProcessorEditor(p: CMLSProjectAudioProcessor&amp;amp;)&lt;div&gt;+ ~&lt;span style=&quot;background-color: initial;&quot;&gt;CMLSAudioProcessorEditor()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;+ paint(g: juce::Graphics&amp;amp;): void&lt;/div&gt;&lt;div&gt;+ resized(): void&lt;/div&gt;" style="text;strokeColor=#6c8ebf;fillColor=#dae8fc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-18"> <mxGeometry y="78" width="370" height="72" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-22" value="juce::AudioProcessorEditor" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#A3A3A3;" vertex="1" parent="1"> <mxGeometry x="1250" y="300" width="210" height="90" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-23" value="[Private properties]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-22"> <mxGeometry y="26" width="210" height="26" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-24" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-22"> <mxGeometry y="52" width="210" height="8" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-25" value="[Public methods]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-22"> <mxGeometry y="60" width="210" height="30" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-26" value="" style="endArrow=block;endFill=0;endSize=12;html=1;rounded=0;entryX=0.47;entryY=0.996;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="1354.47" y="540" as="sourcePoint" /> <mxPoint x="1354.47" y="390" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-27" value="APVTSListeners" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> <mxGeometry x="870" y="820" width="360" height="260" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-28" value="&lt;div&gt;- equalizerProcessor: CMLSEqualizer*&lt;/div&gt;&lt;div&gt;- distortionProcessor: CMLSDistortion*&lt;/div&gt;&lt;div&gt;- chorusProcessor: CMLSChorus*&lt;/div&gt;&lt;div&gt;- delayProcessor: CMLSDelay*&lt;/div&gt;&lt;div&gt;- reverbProcessor: CMLSReverb*&lt;/div&gt;" style="text;strokeColor=#9673a6;fillColor=#e1d5e7;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-27"> <mxGeometry y="26" width="360" height="84" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-29" value="" style="line;strokeWidth=1;fillColor=#e1d5e7;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=#9673a6;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-27"> <mxGeometry y="110" width="360" height="8" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-30" value="&lt;div&gt;+&amp;nbsp;&lt;span style=&quot;text-align: center; background-color: initial;&quot;&gt;APVTSListeners()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;+ ~&lt;span style=&quot;background-color: initial; text-align: center;&quot;&gt;APVTSListeners()&lt;/span&gt;&lt;span style=&quot;text-align: center; background-color: initial;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial; text-align: center;&quot;&gt;+ setEqualizerProcessor(equalizer: CMLSEqualizer*): void&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial; text-align: center;&quot;&gt;+ setDistortionProcessor(distortion: CMLSDistortion*): void&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial; text-align: center;&quot;&gt;+ setChorusProcessor(chorus: CMLSChorus*): void&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial; text-align: center;&quot;&gt;+ setDelayProcessor(delay: CMLSDelay*): void&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial; text-align: center;&quot;&gt;+ setReverbProcessor(reverb: CMLSReverb*): void&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial; text-align: center;&quot;&gt;+ parameterChanged(parameterID: const juce::String&amp;amp;, newValue: float)&lt;/span&gt;&lt;/div&gt;" style="text;strokeColor=#9673a6;fillColor=#e1d5e7;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-27"> <mxGeometry y="118" width="360" height="142" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-31" value="OSCReceiverWrapper" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> <mxGeometry x="1250" y="820" width="360" height="290" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-32" value="- currentPreset: Preset&lt;div&gt;- x: float&lt;/div&gt;&lt;div&gt;- y: float&lt;/div&gt;&lt;div&gt;- aspectX: float&lt;/div&gt;&lt;div&gt;- aspectY: float&lt;/div&gt;&lt;div&gt;- pressure: float&lt;/div&gt;&lt;div&gt;- thickness: float&lt;/div&gt;&lt;div&gt;- apvts: juce::AudioProcessorValueTreeState*&lt;/div&gt;&lt;div&gt;- eqGainRange: juce::NormalisableRange&amp;lt;float&amp;gt;*&lt;/div&gt;&lt;div&gt;- distortionDriveRange: juce::NormalisableRange&amp;lt;float&amp;gt;*&lt;/div&gt;" style="text;strokeColor=#9673a6;fillColor=#e1d5e7;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-31"> <mxGeometry y="26" width="360" height="154" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-33" value="" style="line;strokeWidth=1;fillColor=#e1d5e7;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=#9673a6;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-31"> <mxGeometry y="180" width="360" height="8" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-34" value="&lt;div&gt;+&amp;nbsp;&lt;span style=&quot;text-align: center; background-color: initial;&quot;&gt;OscReceiverWrapper(port: int, apvts: juce::AudioProcessorValueTreeState*)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;+ ~&lt;span style=&quot;text-align: center;&quot;&gt;OscReceiverWrapper&lt;/span&gt;&lt;span style=&quot;background-color: initial; text-align: center;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;text-align: center; background-color: initial;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;&quot;&gt;+ oscMessageReceived(message: const juce::OscMessage&amp;amp;)&lt;/div&gt;&lt;div style=&quot;&quot;&gt;+ oscConnectionError()&lt;/div&gt;&lt;div style=&quot;&quot;&gt;+ processMessage()&lt;/div&gt;" style="text;strokeColor=#9673a6;fillColor=#e1d5e7;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-31"> <mxGeometry y="188" width="360" height="102" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-35" value="juce::AudioProcessorValueTreeState::Listener" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#A3A3A3;" vertex="1" parent="1"> <mxGeometry x="890" y="1160" width="280" height="90" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-36" value="[Private properties]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-35"> <mxGeometry y="26" width="280" height="26" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-37" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-35"> <mxGeometry y="52" width="280" height="8" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-38" value="[Public methods]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-35"> <mxGeometry y="60" width="280" height="30" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-39" value="" style="endArrow=block;endFill=0;endSize=12;html=1;rounded=0;entryX=0.47;entryY=0.996;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="7jMpkemeNbuTtvH5HA3Z-35"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="1029.44" y="1230" as="sourcePoint" /> <mxPoint x="1029.44" y="1080" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-41" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.704;entryY=0.994;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="7jMpkemeNbuTtvH5HA3Z-31" target="7jMpkemeNbuTtvH5HA3Z-21"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="1360" y="850" as="sourcePoint" /> <mxPoint x="1410" y="800" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-42" value="juce::OSCReceiver" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#A3A3A3;" vertex="1" parent="1"> <mxGeometry x="1330" y="1190" width="210" height="90" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-43" value="[Private properties]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-42"> <mxGeometry y="26" width="210" height="26" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-44" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-42"> <mxGeometry y="52" width="210" height="8" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-45" value="[Public methods]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-42"> <mxGeometry y="60" width="210" height="30" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-47" value="" style="endArrow=block;endFill=0;endSize=12;html=1;rounded=0;entryX=0.47;entryY=0.996;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="1440.56" y="1190" as="sourcePoint" /> <mxPoint x="1440" y="1110" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-48" value="&amp;lt;&amp;lt;Enum&amp;gt;&amp;gt; Preset&amp;nbsp;" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#A3A3A3;" vertex="1" parent="1"> <mxGeometry x="1630" y="820" width="210" height="158" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-49" value="NONE&lt;div&gt;PENCIL&lt;/div&gt;&lt;div&gt;CRAYON&lt;/div&gt;&lt;div&gt;FOUNTAINPEN&lt;/div&gt;&lt;div&gt;PEN&lt;/div&gt;&lt;div&gt;MARKER&lt;/div&gt;&lt;div&gt;MONOLINE&lt;/div&gt;&lt;div&gt;WATERCOLOR&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-48"> <mxGeometry y="26" width="210" height="124" as="geometry" /> </mxCell> <mxCell id="7jMpkemeNbuTtvH5HA3Z-50" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="7jMpkemeNbuTtvH5HA3Z-48"> <mxGeometry y="150" width="210" height="8" as="geometry" /> </mxCell> </root> </mxGraphModel> </diagram> <diagram id="MQpbXMmXcBGidsoBPrCH" name="JUCE UI Idea"> <mxGraphModel dx="1434" dy="2005" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="B0cvQGNzCC_ej6mDpY5H-4" value="" style="html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;shadow=0;dashed=0;strokeWidth=1;shape=mxgraph.ios7.misc.iphone;strokeColor=#c0c0c0;" parent="1" vertex="1"> <mxGeometry x="750" y="-480" width="230" height="480" as="geometry" /> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-2" value="" style="html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;shadow=0;dashed=0;strokeWidth=1;shape=mxgraph.ios7.misc.ipad10inch;strokeColor=#c0c0c0;rotation=-90;" parent="1" vertex="1"> <mxGeometry x="142" y="-583" width="488" height="693" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-1" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="10" y="60" width="750" height="480" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-2" value="" style="rounded=0;whiteSpace=wrap;html=1;rotation=-90;" parent="1" vertex="1"> <mxGeometry x="225.78" y="-126.26" width="322.82" height="725.37" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-4" value="Oscillator #1" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="30" y="120" width="170" height="60" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-5" value="Oscillator #2" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="210" y="120" width="170" height="60" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-6" value="ADSR #1" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="30" y="190" width="170" height="60" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-7" value="LFO #1" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="210" y="190" width="170" height="60" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-8" value="LFO #2" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="30" y="260" width="170" height="60" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-9" value="Filter #1" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="30" y="330" width="170" height="60" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-10" value="&lt;b&gt;&lt;font style=&quot;font-size: 17px;&quot;&gt;Generators&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="50" y="80" width="60" height="30" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-11" value="" style="rounded=0;whiteSpace=wrap;html=1;rotation=-90;" parent="1" vertex="1"> <mxGeometry x="328.13" y="111.88" width="117.5" height="723.75" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-12" value="Distortion" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="30" y="460" width="170" height="60" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-13" value="EQ" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="210" y="460" width="170" height="60" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-14" value="Chorus" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="389.5" y="460" width="170" height="60" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-15" value="Reverb" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="570" y="460" width="170" height="60" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-16" value="&lt;b&gt;&lt;font style=&quot;font-size: 17px;&quot;&gt;Effects&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="30" y="425" width="60" height="30" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-17" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;dashed=1;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="30" y="560" as="sourcePoint" /> <mxPoint x="740" y="560" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-18" value="" style="html=1;verticalLabelPosition=bottom;align=center;labelBackgroundColor=#ffffff;verticalAlign=top;strokeWidth=2;strokeColor=#0080F0;shadow=0;dashed=0;shape=mxgraph.ios7.icons.paint;" parent="1" vertex="1"> <mxGeometry x="359.5" y="-237.75" width="30" height="25.5" as="geometry" /> </mxCell> <mxCell id="LmIpvP3O6Kqlahn2wl8g-19" value="&lt;font color=&quot;#7ea6e0&quot;&gt;Painting surface (result)&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="300" y="-267.75" width="150" height="30" as="geometry" /> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-5" value="" style="html=1;verticalLabelPosition=bottom;align=center;labelBackgroundColor=#ffffff;verticalAlign=top;strokeWidth=2;strokeColor=#0080F0;shadow=0;dashed=0;shape=mxgraph.ios7.icons.paint;" parent="1" vertex="1"> <mxGeometry x="849.5" y="-234.25" width="30" height="25.5" as="geometry" /> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-6" value="&lt;font color=&quot;#7ea6e0&quot;&gt;Painting surface (result)&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="790" y="-264.25" width="150" height="30" as="geometry" /> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-7" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="777" y="498.76" as="sourcePoint" /> <mxPoint x="880" y="499" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-8" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="890" y="410" width="310" height="205" as="geometry" /> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-9" value="&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;Reverb&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="900" y="425" width="60" height="30" as="geometry" /> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-10" value="" style="html=1;whiteSpace=wrap;shape=isoCube2;backgroundOutline=1;isoAngle=15;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> <mxGeometry x="970" y="443.55" width="140" height="155.56" as="geometry" /> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-11" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;dashed=1;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="1110" y="580" as="sourcePoint" /> <mxPoint x="1050" y="610" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-12" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="777" y="178.76" as="sourcePoint" /> <mxPoint x="880" y="179" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-13" value="" style="rounded=1;whiteSpace=wrap;html=1;gradientColor=none;gradientDirection=east;fillColor=#FFF2CC;" parent="1" vertex="1"> <mxGeometry x="890" y="90" width="310" height="205" as="geometry" /> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-14" value="&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;Oscillator&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="910" y="110" width="60" height="30" as="geometry" /> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-17" value="" style="pointerEvents=1;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;shape=mxgraph.electrical.waveforms.sine_wave;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1"> <mxGeometry x="905" y="170" width="90" height="66.18" as="geometry" /> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-18" value="" style="pointerEvents=1;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;shape=mxgraph.electrical.waveforms.sine_wave;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1"> <mxGeometry x="995" y="170" width="90" height="66.18" as="geometry" /> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-19" value="" style="pointerEvents=1;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;shape=mxgraph.electrical.waveforms.sine_wave;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1"> <mxGeometry x="1085" y="170" width="90" height="66.18" as="geometry" /> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-20" value="(Oscilloscope-like)" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="980" y="250" width="120" height="30" as="geometry" /> </mxCell> <mxCell id="B0cvQGNzCC_ej6mDpY5H-21" value="Changes size based on array room size and depth" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="895" y="620" width="290" height="30" as="geometry" /> </mxCell> <mxCell id="bGHWTSYe80ISOE1XwNZ2-2" value="A little bit more creative...." style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="10" y="740" width="160" height="30" as="geometry" /> </mxCell> <mxCell id="bGHWTSYe80ISOE1XwNZ2-3" value="" style="rounded=0;whiteSpace=wrap;html=1;movable=0;resizable=0;rotatable=0;deletable=0;editable=0;locked=1;connectable=0;" parent="1" vertex="1"> <mxGeometry x="20" y="780" width="750" height="480" as="geometry" /> </mxCell> <mxCell id="bGHWTSYe80ISOE1XwNZ2-4" value="Oscillator #1" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;size=25;" parent="1" vertex="1"> <mxGeometry x="35" y="800" width="125" height="110" as="geometry" /> </mxCell> <mxCell id="bGHWTSYe80ISOE1XwNZ2-22" value="ADSR #1" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;size=25;" parent="1" vertex="1"> <mxGeometry x="142" y="860" width="125" height="110" as="geometry" /> </mxCell> <mxCell id="bGHWTSYe80ISOE1XwNZ2-23" value="Oscillator #2" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;size=25;" parent="1" vertex="1"> <mxGeometry x="35" y="920" width="125" height="110" as="geometry" /> </mxCell> <mxCell id="bGHWTSYe80ISOE1XwNZ2-24" value="LFO #1" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;size=25;" parent="1" vertex="1"> <mxGeometry x="250" y="800" width="125" height="110" as="geometry" /> </mxCell> <mxCell id="bGHWTSYe80ISOE1XwNZ2-25" value="" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;size=25;" parent="1" vertex="1"> <mxGeometry x="250" y="920" width="125" height="110" as="geometry" /> </mxCell> <mxCell id="bGHWTSYe80ISOE1XwNZ2-30" value="Filter #1" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;size=25;" parent="1" vertex="1"> <mxGeometry x="358" y="860" width="125" height="110" as="geometry" /> </mxCell> <mxCell id="bGHWTSYe80ISOE1XwNZ2-31" value="Distortion" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;size=25;" parent="1" vertex="1"> <mxGeometry x="466" y="800" width="125" height="110" as="geometry" /> </mxCell> <mxCell id="bGHWTSYe80ISOE1XwNZ2-32" value="EQ" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;size=25;" parent="1" vertex="1"> <mxGeometry x="466" y="920" width="125" height="110" as="geometry" /> </mxCell> <mxCell id="bGHWTSYe80ISOE1XwNZ2-33" value="Chorus" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;size=25;" parent="1" vertex="1"> <mxGeometry x="574" y="860" width="125" height="110" as="geometry" /> </mxCell> <mxCell id="bGHWTSYe80ISOE1XwNZ2-34" value="ADSR #2" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;size=25;" parent="1" vertex="1"> <mxGeometry x="142" y="980" width="125" height="110" as="geometry" /> </mxCell> <mxCell id="bGHWTSYe80ISOE1XwNZ2-35" value="" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;size=25;" parent="1" vertex="1"> <mxGeometry x="359.5" y="980" width="125" height="110" as="geometry" /> </mxCell> <mxCell id="bGHWTSYe80ISOE1XwNZ2-36" value="Reverb" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;size=25;" parent="1" vertex="1"> <mxGeometry x="574" y="980" width="125" height="110" as="geometry" /> </mxCell> </root> </mxGraphModel> </diagram> <diagram id="Vuxr3e3k3dsrQK8o3KIu" name="OSC Communication"> <mxGraphModel dx="1434" dy="836" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> </root> </mxGraphModel> </diagram> </mxfile> " style="background-color: rgb(255, 255, 255);"><defs/><rect fill="#ffffff" width="100%" height="100%" x="0" y="0"/><g><g><path d="M 1470 26 L 1470 0 L 2010 0 L 2010 26" fill="rgb(255, 255, 255)" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="all"/><path d="M 1470 26 L 1470 120 L 2010 120 L 2010 26" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="none"/><path d="M 1470 26 L 2010 26" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 538px; height: 1px; padding-top: 7px; margin-left: 1471px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">juce::dsp::ProcessorBase</div></div></div></foreignObject><text x="1740" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">juce::dsp::ProcessorBase</text></switch></g></g><g><rect x="1470" y="26" width="540" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 530px; height: 1px; padding-top: 33px; margin-left: 1476px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 22px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">[Private properties]</div></div></div></foreignObject><text x="1476" y="45" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">[Private properties]</text></switch></g></g><g><path d="M 1470 56 L 2010 56" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="1470" y="60" width="540" height="60" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 530px; height: 1px; padding-top: 67px; margin-left: 1476px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 56px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><i>+ reset() : void</i><div><i>+ prepare(spec: const juce::dsp::ProcessSpec&): void</i></div><div><i>+ process(context: const juce::dsp::ProcessContextReplacing<float>&): void</i></div></div></div></div></foreignObject><text x="1476" y="79" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">+ reset() : void...</text></switch></g></g><g><path d="M 1550 330 L 1550 250 L 1724 250 L 1723.82 133.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1723.8 120.88 L 1730.32 133.87 L 1717.32 133.89 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 1720 250 L 1900 250 L 1900 330" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g><g><path d="M 1754 356 L 1754 330 L 2034 330 L 2034 356" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1754 356 L 1754 580 L 2034 580 L 2034 356" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1754 356 L 2034 356" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 337px; margin-left: 1755px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">CMLSChorus</div></div></div></foreignObject><text x="1894" y="349" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">CMLSChorus</text></switch></g></g><g><rect x="1754" y="356" width="280" height="114" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 270px; height: 1px; padding-top: 363px; margin-left: 1760px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 110px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">- dryWetProp: float<div>- amount: float</div><div>- delayLine1: juce::dsp::Chorus<float></div><div>- delayLine2: juce::dsp::Chorus<float><br /></div><div>- dryWetMixer: juce::dsp::DryWetMixer<float><br /></div><div>- freqRange: juce::NormalisableRange<float>*</div><div>- freqRange: juce::NormalisableRange<float>*<br /></div></div></div></div></foreignObject><text x="1760" y="375" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">- dryWetProp: float...</text></switch></g></g><g><path d="M 1754 474 L 2034 474" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="1754" y="478" width="280" height="102" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 270px; height: 1px; padding-top: 485px; margin-left: 1760px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 98px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">+ CMLSChorus()<div>+ ~CMLSChorus()</div><div>+ setDryWet(value: float): void</div><div>+ setAmount(value: float): void</div><div>+ getDryWet(): const float</div><div>+ getAmount(): const float</div><div><br /></div></div></div></div></foreignObject><text x="1760" y="497" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">+ CMLSChorus()...</text></switch></g></g><g><path d="M 1410 356 L 1410 330 L 1690 330 L 1690 356" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1410 356 L 1410 510 L 1690 510 L 1690 356" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1410 356 L 1690 356" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 337px; margin-left: 1411px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">CMLSReverb</div></div></div></foreignObject><text x="1550" y="349" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">CMLSReverb</text></switch></g></g><g><rect x="1410" y="356" width="280" height="44" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 270px; height: 1px; padding-top: 363px; margin-left: 1416px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 40px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">- reverb: juce::Reverb<div>- reverbParams: juce::Reverb::Parameters</div></div></div></div></foreignObject><text x="1416" y="375" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">- reverb: juce::Reverb...</text></switch></g></g><g><path d="M 1410 404 L 1690 404" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="1410" y="408" width="280" height="102" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 270px; height: 1px; padding-top: 415px; margin-left: 1416px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 98px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">+ CMLSReverb()<div>+ ~CMLSReverb()</div><div>+ setDryWet(value: float): void</div><div>+ setRoomSize(value: float): void</div><div>+ getDryWet() : const float</div><div>+ getRoomSize(): const float</div><div><br /></div></div></div></div></foreignObject><text x="1416" y="427" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">+ CMLSReverb()...</text></switch></g></g><g><path d="M 2210 266 L 2210 240 L 2490 240 L 2490 266" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><path d="M 2210 266 L 2210 490 L 2490 490 L 2490 266" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 2210 266 L 2490 266" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 247px; margin-left: 2211px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">CMLSProjectAudioProcessor</div></div></div></foreignObject><text x="2350" y="259" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">CMLSProjectAudioProcessor</text></switch></g></g><g><rect x="2210" y="266" width="280" height="114" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 270px; height: 1px; padding-top: 273px; margin-left: 2216px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 110px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">- reverb: CMLSReverb<div>- chorus: CMLSChorus</div><div>- eq: CMLSEqualizer</div><div>- distortion: CMLSDistortion</div><div>-delay: CMLSDelay</div><div>- chain: juce::dsp::ProcessorChain</div></div></div></div></foreignObject><text x="2216" y="285" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">- reverb: CMLSReverb...</text></switch></g></g><g><path d="M 2210 384 L 2490 384" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="2210" y="388" width="280" height="102" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 270px; height: 1px; padding-top: 395px; margin-left: 2216px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 98px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>+prepareToPlay(sampleRate: double, samplesPerBlock: int): void</div><div>+ processBlock(buffer: juce::AudioBuffer<float>&, midiMessages: juce::MidiBuffer&): void</div><div><br /></div></div></div></div></foreignObject><text x="2216" y="407" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">+prepareToPlay(sampleRate: double, samplesPer...</text></switch></g></g><g><path d="M 2034.28 362.95 L 2080 363 L 2080 280 L 2203.07 280.6" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2208.32 280.63 L 2201.31 284.09 L 2203.07 280.6 L 2201.34 277.09 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 1688.88 347.46 L 1730 347 L 1730 590 L 2100 590 L 2100 366 L 2100 294 L 2203.63 295.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2208.88 295.17 L 2201.84 298.6 L 2203.63 295.12 L 2201.92 291.6 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 1020 356 L 1020 330 L 1340 330 L 1340 356" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1020 356 L 1020 680 L 1340 680 L 1340 356" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1020 356 L 1340 356" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 318px; height: 1px; padding-top: 337px; margin-left: 1021px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">CMLSDelay</div></div></div></foreignObject><text x="1180" y="349" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">CMLSDelay</text></switch></g></g><g><rect x="1020" y="356" width="320" height="214" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 310px; height: 1px; padding-top: 363px; margin-left: 1026px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 210px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">- dryWetProp: float<div>- amount: float</div><div>- delayLength: float</div><div>- feedback: float</div><div>- maximumDelaySamples: int</div><div>- mixer: juce::dsp::DryWetMixer<float></div><div>- delayLine: <span style="background-color: initial;">juce::dsp::DelayLine<float,<br />juce::dsp::DelayLineInterpolationTypes::Linear></span></div><div><span style="background-color: initial;">- </span><span style="background-color: initial;">delayLine2: </span><span style="background-color: initial;">juce::dsp::DelayLine<float, juce::dsp::DelayLineInterpolationTypes::Linear></span></div><div><span style="background-color: initial;">- delayRange: juce::NormalisableRange<float>*</span></div><div><span style="background-color: initial;">- delaySmoothing: </span><span style="background-color: initial;">juce::SmoothedValue<float,<br />juce::ValueSmoothingTypes::Linear>*</span></div><div><span style="background-color: initial;">- lastDelayInSamples: int</span></div><p class="MsoNormal"></p></div></div></div></foreignObject><text x="1026" y="375" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">- dryWetProp: float...</text></switch></g></g><g><path d="M 1020 574 L 1340 574" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="1020" y="578" width="320" height="102" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 310px; height: 1px; padding-top: 585px; margin-left: 1026px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 98px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">+ CMLSDelay()<div>+ ~CMLSDelay()</div><div>+ setDryWet(value: float): void</div><div>+ setAmount(value: float): void</div><div>+ getDryWet(): const float</div><div>+ getAmount(): const float</div></div></div></div></foreignObject><text x="1026" y="597" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">+ CMLSDelay()...</text></switch></g></g><g><path d="M 1340 343 L 1361 343 L 1361 630 L 1700 630 L 2110 630 L 2110 310 L 2204.19 311.18" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2209.44 311.24 L 2202.4 314.66 L 2204.19 311.18 L 2202.49 307.66 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 1550 250 L 1180 250 L 1180 330" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g><g><path d="M 630 356 L 630 330 L 950 330 L 950 356" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 630 356 L 630 510 L 950 510 L 950 356" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 630 356 L 950 356" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 318px; height: 1px; padding-top: 337px; margin-left: 631px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">CMLSDistortion</div></div></div></foreignObject><text x="790" y="349" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">CMLSDistortion</text></switch></g></g><g><rect x="630" y="356" width="320" height="74" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 310px; height: 1px; padding-top: 363px; margin-left: 636px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 70px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">- drive: float<div>- mix: float</div><div>- inputGain: juce::dsp::Gain<float></div><div>- outputGain: juce::dsp::Gain<float></div><div><br /></div></div></div></div></foreignObject><text x="636" y="375" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">- drive: float...</text></switch></g></g><g><path d="M 630 434 L 950 434" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="630" y="438" width="320" height="72" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 310px; height: 1px; padding-top: 445px; margin-left: 636px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 68px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">+ CMLSDistortion()<div>+ ~CMLSDistortion()</div><div>+ setDive(value: float): void</div><div>+ setMix(value: float): void</div></div></div></div></foreignObject><text x="636" y="457" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">+ CMLSDistortion()...</text></switch></g></g><g><path d="M 0 356 L 0 330 L 580 330 L 580 356" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 0 356 L 0 520 L 580 520 L 580 356" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 356 L 580 356" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 578px; height: 1px; padding-top: 337px; margin-left: 1px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">CMLSEqualizer</div></div></div></foreignObject><text x="290" y="349" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">CMLSEqualizer</text></switch></g></g><g><rect x="0" y="356" width="580" height="84" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 570px; height: 1px; padding-top: 363px; margin-left: 6px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 80px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">- sampleRate: double<div>- lowBand: <span style="background-color: initial;">juce::dsp::ProcessorDuplicator<juce::dsp::IIR::Filter<float>,</span></div><div><span style="background-color: initial;"><span style="white-space: pre;"> </span><span style="white-space: pre;"> </span> juce::dsp::IIR::Coefficients<float>></span></div><div><span style="background-color: initial;">- highBand:</span><span style="background-color: initial;"> </span><span style="background-color: initial;">juce::dsp::ProcessorDuplicator<juce::dsp::IIR::Filter<float>,</span></div><div><span style="background-color: initial;"><span style="white-space: pre;"> </span><span style="white-space: pre;"> </span> juce::dsp::IIR::Coefficients<float>></span></div><div><br /></div></div></div></div></foreignObject><text x="6" y="375" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">- sampleRate: double...</text></switch></g></g><g><path d="M 0 444 L 580 444" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="0" y="448" width="580" height="72" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 570px; height: 1px; padding-top: 455px; margin-left: 6px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 68px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">+ CMLSEqualizer()<div>+ ~CMLSEqualizer()</div><div>+ setEqLowGain(value: float): void</div><div>+ setEqHighGain(value: float): void</div></div></div></div></foreignObject><text x="6" y="467" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">+ CMLSEqualizer()...</text></switch></g></g><g><path d="M 950 348 L 971 348 L 970 690 L 2140 690 L 2140 330 L 2203.63 330" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2208.88 330 L 2201.88 333.5 L 2203.63 330 L 2201.88 326.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 580 348 L 601 348 L 600 700 L 2170 700 L 2170 350 L 2203.91 350.02" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2209.16 350.02 L 2202.16 353.51 L 2203.91 350.02 L 2202.16 346.51 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 2245 26 L 2245 0 L 2455 0 L 2455 26" fill="rgb(255, 255, 255)" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="all"/><path d="M 2245 26 L 2245 90 L 2455 90 L 2455 26" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="none"/><path d="M 2245 26 L 2455 26" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 7px; margin-left: 2246px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">juce::AudioProcessor</div></div></div></foreignObject><text x="2350" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">juce::AudioProcessor</text></switch></g></g><g><rect x="2245" y="26" width="210" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 200px; height: 1px; padding-top: 33px; margin-left: 2251px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 22px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">[Private properties]</div></div></div></foreignObject><text x="2251" y="45" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">[Private properties]</text></switch></g></g><g><path d="M 2245 56 L 2455 56" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="2245" y="60" width="210" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 200px; height: 1px; padding-top: 67px; margin-left: 2251px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">[Public methods]</div></div></div></foreignObject><text x="2251" y="79" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">[Public methods]</text></switch></g></g><g><path d="M 2341 240 L 2341 104.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2341 91.12 L 2347.5 104.12 L 2334.5 104.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 2510 266 L 2510 240 L 2880 240 L 2880 266" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><path d="M 2510 266 L 2510 390 L 2880 390 L 2880 266" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 2510 266 L 2880 266" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 368px; height: 1px; padding-top: 247px; margin-left: 2511px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">CMLSProjectAudioProcessorEditor</div></div></div></foreignObject><text x="2695" y="259" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">CMLSProjectAudioProcessorEditor</text></switch></g></g><g><path d="M 2490 285 L 2502.89 284.95" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2508.14 284.92 L 2501.16 288.45 L 2502.89 284.95 L 2501.13 281.45 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="2510" y="266" width="370" height="44" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 360px; height: 1px; padding-top: 273px; margin-left: 2516px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 40px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">- audioProcessor: CMLSAudioProcessor&<div>- oscReceiver: OSCReceiverWrapper</div></div></div></div></foreignObject><text x="2516" y="285" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">- audioProcessor: CMLSAudioProcessor&...</text></switch></g></g><g><path d="M 2510 314 L 2880 314" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="2510" y="318" width="370" height="72" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 360px; height: 1px; padding-top: 325px; margin-left: 2516px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 68px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">+ CMLSAudioProcessorEditor(p: CMLSProjectAudioProcessor&)<div>+ ~<span style="background-color: initial;">CMLSAudioProcessorEditor()</span></div><div>+ paint(g: juce::Graphics&): void</div><div>+ resized(): void</div></div></div></div></foreignObject><text x="2516" y="337" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">+ CMLSAudioProcessorEditor(p: CMLSProjectAudioProcessor&)...</text></switch></g></g><g><path d="M 2590 26 L 2590 0 L 2800 0 L 2800 26" fill="rgb(255, 255, 255)" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="all"/><path d="M 2590 26 L 2590 90 L 2800 90 L 2800 26" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="none"/><path d="M 2590 26 L 2800 26" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 7px; margin-left: 2591px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">juce::AudioProcessorEditor</div></div></div></foreignObject><text x="2695" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">juce::AudioProcessorEditor</text></switch></g></g><g><rect x="2590" y="26" width="210" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 200px; height: 1px; padding-top: 33px; margin-left: 2596px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 22px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">[Private properties]</div></div></div></foreignObject><text x="2596" y="45" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">[Private properties]</text></switch></g></g><g><path d="M 2590 56 L 2800 56" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="2590" y="60" width="210" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 200px; height: 1px; padding-top: 67px; margin-left: 2596px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">[Public methods]</div></div></div></foreignObject><text x="2596" y="79" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">[Public methods]</text></switch></g></g><g><path d="M 2694.47 240 L 2694.47 104.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2694.47 91.12 L 2700.97 104.12 L 2687.97 104.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 2210 546 L 2210 520 L 2570 520 L 2570 546" fill="#e1d5e7" stroke="#9673a6" stroke-miterlimit="10" pointer-events="all"/><path d="M 2210 546 L 2210 780 L 2570 780 L 2570 546" fill="none" stroke="#9673a6" stroke-miterlimit="10" pointer-events="none"/><path d="M 2210 546 L 2570 546" fill="none" stroke="#9673a6" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 358px; height: 1px; padding-top: 527px; margin-left: 2211px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">APVTSListeners</div></div></div></foreignObject><text x="2390" y="539" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">APVTSListeners</text></switch></g></g><g><rect x="2210" y="546" width="360" height="84" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 350px; height: 1px; padding-top: 553px; margin-left: 2216px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 80px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>- equalizerProcessor: CMLSEqualizer*</div><div>- distortionProcessor: CMLSDistortion*</div><div>- chorusProcessor: CMLSChorus*</div><div>- delayProcessor: CMLSDelay*</div><div>- reverbProcessor: CMLSReverb*</div></div></div></div></foreignObject><text x="2216" y="565" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">- equalizerProcessor: CMLSEqualizer*...</text></switch></g></g><g><path d="M 2210 634 L 2570 634" fill="none" stroke="#9673a6" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="2210" y="638" width="360" height="142" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 350px; height: 1px; padding-top: 645px; margin-left: 2216px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 138px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>+ <span style="text-align: center; background-color: initial;">APVTSListeners()</span></div><div>+ ~<span style="background-color: initial; text-align: center;">APVTSListeners()</span><span style="text-align: center; background-color: initial;"><br /></span></div><div><span style="background-color: initial; text-align: center;">+ setEqualizerProcessor(equalizer: CMLSEqualizer*): void</span></div><div><span style="background-color: initial; text-align: center;">+ setDistortionProcessor(distortion: CMLSDistortion*): void</span></div><div><span style="background-color: initial; text-align: center;">+ setChorusProcessor(chorus: CMLSChorus*): void</span></div><div><span style="background-color: initial; text-align: center;">+ setDelayProcessor(delay: CMLSDelay*): void</span></div><div><span style="background-color: initial; text-align: center;">+ setReverbProcessor(reverb: CMLSReverb*): void</span></div><div><span style="background-color: initial; text-align: center;">+ parameterChanged(parameterID: const juce::String&, newValue: float)</span></div></div></div></div></foreignObject><text x="2216" y="657" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">+ APVTSListeners()...</text></switch></g></g><g><path d="M 2590 546 L 2590 520 L 2950 520 L 2950 546" fill="#e1d5e7" stroke="#9673a6" stroke-miterlimit="10" pointer-events="all"/><path d="M 2590 546 L 2590 810 L 2950 810 L 2950 546" fill="none" stroke="#9673a6" stroke-miterlimit="10" pointer-events="none"/><path d="M 2590 546 L 2950 546" fill="none" stroke="#9673a6" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 358px; height: 1px; padding-top: 527px; margin-left: 2591px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">OSCReceiverWrapper</div></div></div></foreignObject><text x="2770" y="539" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">OSCReceiverWrapper</text></switch></g></g><g><rect x="2590" y="546" width="360" height="154" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 350px; height: 1px; padding-top: 553px; margin-left: 2596px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 150px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">- currentPreset: Preset<div>- x: float</div><div>- y: float</div><div>- aspectX: float</div><div>- aspectY: float</div><div>- pressure: float</div><div>- thickness: float</div><div>- apvts: juce::AudioProcessorValueTreeState*</div><div>- eqGainRange: juce::NormalisableRange<float>*</div><div>- distortionDriveRange: juce::NormalisableRange<float>*</div></div></div></div></foreignObject><text x="2596" y="565" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">- currentPreset: Preset...</text></switch></g></g><g><path d="M 2590 704 L 2950 704" fill="none" stroke="#9673a6" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="2590" y="708" width="360" height="102" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 350px; height: 1px; padding-top: 715px; margin-left: 2596px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 98px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>+ <span style="text-align: center; background-color: initial;">OscReceiverWrapper(port: int, apvts: juce::AudioProcessorValueTreeState*)</span></div><div>+ ~<span style="text-align: center;">OscReceiverWrapper</span><span style="background-color: initial; text-align: center;">()</span><span style="text-align: center; background-color: initial;"><br /></span></div><div style="">+ oscMessageReceived(message: const juce::OscMessage&)</div><div style="">+ oscConnectionError()</div><div style="">+ processMessage()</div></div></div></div></foreignObject><text x="2596" y="727" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">+ OscReceiverWrapper(port: int, apvts: juce::AudioProcessor...</text></switch></g></g><g><path d="M 2230 886 L 2230 860 L 2510 860 L 2510 886" fill="rgb(255, 255, 255)" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="all"/><path d="M 2230 886 L 2230 950 L 2510 950 L 2510 886" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="none"/><path d="M 2230 886 L 2510 886" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 867px; margin-left: 2231px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">juce::AudioProcessorValueTreeState::Listener</div></div></div></foreignObject><text x="2370" y="879" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">juce::AudioProcessorValueTreeState::Listener</text></switch></g></g><g><rect x="2230" y="886" width="280" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 270px; height: 1px; padding-top: 893px; margin-left: 2236px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 22px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">[Private properties]</div></div></div></foreignObject><text x="2236" y="905" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">[Private properties]</text></switch></g></g><g><path d="M 2230 916 L 2510 916" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="2230" y="920" width="280" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 270px; height: 1px; padding-top: 927px; margin-left: 2236px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">[Public methods]</div></div></div></foreignObject><text x="2236" y="939" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">[Public methods]</text></switch></g></g><g><path d="M 2370 860 L 2369.54 794.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2369.45 781.12 L 2376.04 794.07 L 2363.04 794.16 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 2770 520 L 2770.46 395.94" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2770.48 390.69 L 2773.95 397.7 L 2770.46 395.94 L 2766.95 397.67 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 2670 916 L 2670 890 L 2880 890 L 2880 916" fill="rgb(255, 255, 255)" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="all"/><path d="M 2670 916 L 2670 980 L 2880 980 L 2880 916" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="none"/><path d="M 2670 916 L 2880 916" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 897px; margin-left: 2671px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">juce::OSCReceiver</div></div></div></foreignObject><text x="2775" y="909" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">juce::OSCReceiver</text></switch></g></g><g><rect x="2670" y="916" width="210" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 200px; height: 1px; padding-top: 923px; margin-left: 2676px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 22px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">[Private properties]</div></div></div></foreignObject><text x="2676" y="935" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">[Private properties]</text></switch></g></g><g><path d="M 2670 946 L 2880 946" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="2670" y="950" width="210" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 200px; height: 1px; padding-top: 957px; margin-left: 2676px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">[Public methods]</div></div></div></foreignObject><text x="2676" y="969" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">[Public methods]</text></switch></g></g><g><path d="M 2780.56 890 L 2780.1 824.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2780.01 811.12 L 2786.6 824.07 L 2773.6 824.16 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 2970 546 L 2970 520 L 3180 520 L 3180 546" fill="rgb(255, 255, 255)" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="all"/><path d="M 2970 546 L 2970 678 L 3180 678 L 3180 546" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="none"/><path d="M 2970 546 L 3180 546" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 527px; margin-left: 2971px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><<Enum>> Preset </div></div></div></foreignObject><text x="3075" y="539" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold"><<Enum>> Preset </text></switch></g></g><g><rect x="2970" y="546" width="210" height="124" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 200px; height: 1px; padding-top: 553px; margin-left: 2976px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 120px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">NONE<div>PENCIL</div><div>CRAYON</div><div>FOUNTAINPEN</div><div>PEN</div><div>MARKER</div><div>MONOLINE</div><div>WATERCOLOR</div></div></div></div></foreignObject><text x="2976" y="565" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">NONE...</text></switch></g></g><g><path d="M 2970 674 L 3180 674" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="all"/></g></g></svg>
|