mirror of
https://github.com/RGBCube/serenity
synced 2025-05-15 03:54:58 +00:00

This uses UML conventions but just contains the necessary info to get started with LibDSP development.
4 lines
No EOL
50 KiB
XML
4 lines
No EOL
50 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- Do not edit this file with editors other than diagrams.net -->
|
|
<!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="1051px" height="853px" viewBox="-0.5 -0.5 1051 853" content="<mxfile host="app.diagrams.net" modified="2022-05-14T10:09:11.623Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" etag="0ssGZdW2Dw8UpAhAyTj3" version="17.5.0" type="device"><diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">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</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><path d="M 40 70 L 40 330 L 157.76 332.36" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 145.75 338.62 L 158.88 332.38 L 146.01 325.62" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><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 center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 268px; margin-left: 40px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="40" y="271" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 0 26 L 0 0 L 160 0 L 160 26" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 0 26 L 0 70 L 160 70 L 160 26" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 26 L 160 26" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="79.5" y="17.5">Keyboard</text></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: 150px; height: 1px; padding-top: 33px; 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: 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: none; white-space: normal; overflow-wrap: normal;">MIDI & virtual keyboard input</div></div></div></foreignObject><text x="6" y="45" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">MIDI & virtual keyboard i...</text></switch></g><path d="M 320 26 L 320 0 L 480 0 L 480 26" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 320 26 L 320 70 L 480 70 L 480 26" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 320 26 L 480 26" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="399.5" y="17.5">Transport</text></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: 150px; height: 1px; padding-top: 33px; margin-left: 326px;"><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: none; white-space: normal; overflow-wrap: normal;">Global timing, loop control<br />(everyone uses this)</div></div></div></foreignObject><text x="326" y="45" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Global timing, loop contr...</text></switch></g><path d="M 160 186 L 160 160 L 320 160 L 320 186" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 160 186 L 160 230 L 320 230 L 320 186" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 160 186 L 320 186" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><rect fill="rgb(255, 255, 255)" stroke="none" x="199" y="168" width="83" height="15" stroke-width="0"/><text x="239.5" y="177.5">TrackManager</text></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: 150px; height: 1px; padding-top: 193px; margin-left: 166px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " 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: none; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">Inter-Track signal routing</div></div></div></foreignObject><text x="166" y="205" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Inter-Track signal routing</text></switch></g><path d="M 400 85.99 L 400 120 L 240 120 L 240 157.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 400 70.99 L 404.41 78.49 L 400 85.99 L 395.59 78.49 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 233.5 145.88 L 240 158.88 L 246.5 145.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><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-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 87px; margin-left: 412px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">1</div></div></div></foreignObject><text x="412" y="87" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">1</text></switch></g><path d="M 160 325 L 160 299 L 320 299 L 320 325" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 160 325 L 160 369 L 320 369 L 320 325" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 160 325 L 320 325" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="239.5" y="316.5">Track</text></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: 150px; height: 1px; padding-top: 332px; margin-left: 166px;"><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: none; white-space: normal; overflow-wrap: normal;">aka. Channel</div></div></div></foreignObject><text x="166" y="344" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">aka. Channel</text></switch></g><path d="M 240 283.01 L 240 232.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 240 298.01 L 235.59 290.51 L 240 283.01 L 244.41 290.51 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 246.5 244.12 L 240 231.12 L 233.5 244.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><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: 1px; height: 1px; padding-top: 276px; margin-left: 252px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">0..n</div></div></div></foreignObject><text x="252" y="287" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">0..n</text></switch></g><path d="M 160 441.5 L 240 439 L 240 387.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 240 370.12 L 248.5 387.12 L 231.5 387.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 435 L 0 409 L 160 409 L 160 435" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 435 L 0 479 L 160 479 L 160 435" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 435 L 160 435" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="79.5" y="426.5">NoteTrack</text></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: 150px; height: 1px; padding-top: 442px; 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: 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: none; white-space: normal; overflow-wrap: normal;">Tracks with MIDI/Note data</div></div></div></foreignObject><text x="6" y="454" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Tracks with MIDI/Note data</text></switch></g><path d="M 320 435 L 320 409 L 480 409 L 480 435" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 320 435 L 320 479 L 480 479 L 480 435" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 320 435 L 480 435" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="399.5" y="426.5">AudioTrack</text></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: 150px; height: 1px; padding-top: 442px; margin-left: 326px;"><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: none; white-space: normal; overflow-wrap: normal;">Tracks with audio/sample data</div></div></div></foreignObject><text x="326" y="454" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Tracks with audio/sample...</text></switch></g><path d="M 320 441.5 L 240 439 L 240 387.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 240 370.12 L 248.5 387.12 L 231.5 387.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 80 85.99 L 80 120 L 240 120 L 240 157.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 80 70.99 L 84.41 78.49 L 80 85.99 L 75.59 78.49 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 233.5 145.88 L 240 158.88 L 246.5 145.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><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-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 87px; margin-left: 92px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">1</div></div></div></foreignObject><text x="92" y="87" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">1</text></switch></g><path d="M 160 565 L 160 539 L 320 539 L 320 565" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 160 565 L 160 619 L 320 619 L 320 565" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 160 565 L 320 565" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="239.5" y="556.5">Clip</text></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: 150px; height: 1px; padding-top: 572px; margin-left: 166px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 50px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">One contiguous region of track data which the user interacts with</div></div></div></foreignObject><text x="166" y="584" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">One contiguous region of...</text></switch></g><path d="M 0 665 L 0 639 L 160 639 L 160 665" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 665 L 0 709 L 160 709 L 160 665" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 665 L 160 665" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="79.5" y="656.5">NoteClip</text></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: 150px; height: 1px; padding-top: 672px; 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: 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: none; white-space: normal; overflow-wrap: normal;">A bunch of MIDI notes</div></div></div></foreignObject><text x="6" y="684" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">A bunch of MIDI notes</text></switch></g><path d="M 320 665 L 320 639 L 480 639 L 480 665" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 320 665 L 320 709 L 480 709 L 480 665" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 320 665 L 480 665" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="399.5" y="656.5">AudioClip</text></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: 150px; height: 1px; padding-top: 672px; margin-left: 326px;"><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: none; white-space: normal; overflow-wrap: normal;">A piece of audio</div></div></div></foreignObject><text x="326" y="684" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">A piece of audio</text></switch></g><path d="M 160 671.5 L 240 669 L 240 637.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 240 620.12 L 248.5 637.12 L 231.5 637.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 320 671.5 L 240 669 L 240 637.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 240 620.12 L 248.5 637.12 L 231.5 637.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 80 623.01 L 80 481.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 80 638.01 L 75.59 630.51 L 80 623.01 L 84.41 630.51 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 86.5 493.12 L 80 480.12 L 73.5 493.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><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: 1px; height: 1px; padding-top: 616px; margin-left: 92px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">0..n</div></div></div></foreignObject><text x="92" y="627" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">0..n</text></switch></g><path d="M 400 623.01 L 400 481.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 400 638.01 L 395.59 630.51 L 400 623.01 L 404.41 630.51 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 406.5 493.12 L 400 480.12 L 393.5 493.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><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: 1px; height: 1px; padding-top: 616px; margin-left: 412px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">0..n</div></div></div></foreignObject><text x="412" y="627" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">0..n</text></switch></g><path d="M 0 805 L 0 779 L 160 779 L 160 805" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 805 L 0 849 L 160 849 L 160 805" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 805 L 160 805" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="79.5" y="796.5">RollNote</text></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: 150px; height: 1px; padding-top: 812px; 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: 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: none; white-space: normal; overflow-wrap: normal;">A MIDI note</div></div></div></foreignObject><text x="6" y="824" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">A MIDI note</text></switch></g><path d="M 320 809 L 320 779 L 480 779 L 480 809" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 320 809 L 320 849 L 480 849 L 480 809" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 320 809 L 480 809" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="399.5" y="796.5">Sample</text></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: 150px; height: 1px; padding-top: 816px; margin-left: 326px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 36px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">(from LibAudio)</div></div></div></foreignObject><text x="326" y="828" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">(from LibAudio)</text></switch></g><path d="M 400 763.01 L 400 711.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 400 778.01 L 395.59 770.51 L 400 763.01 L 404.41 770.51 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 406.5 723.12 L 400 710.12 L 393.5 723.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><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: 1px; height: 1px; padding-top: 756px; margin-left: 412px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">0..n</div></div></div></foreignObject><text x="412" y="767" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">0..n</text></switch></g><path d="M 80 763.01 L 80 711.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 80 778.01 L 75.59 770.51 L 80 763.01 L 84.41 770.51 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 86.5 723.12 L 80 710.12 L 73.5 723.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><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: 1px; height: 1px; padding-top: 756px; margin-left: 92px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">0..n</div></div></div></foreignObject><text x="92" y="767" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">0..n</text></switch></g><path d="M 700 325 L 700 299 L 860 299 L 860 325" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 700 325 L 700 369 L 860 369 L 860 325" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 700 325 L 860 325" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="779.5" y="316.5">Processor</text></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: 150px; height: 1px; padding-top: 332px; margin-left: 706px;"><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: none; white-space: normal; overflow-wrap: normal;">(digital signal) processing of audio and notes</div></div></div></foreignObject><text x="706" y="344" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">(digital signal) processi...</text></switch></g><path d="M 684.01 334 L 322.24 334" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 699.01 334 L 691.51 338.41 L 684.01 334 L 691.51 329.59 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 334.12 327.5 L 321.12 334 L 334.12 340.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><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: 1px; height: 1px; padding-top: 311px; margin-left: 672px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">0..n</div></div></div></foreignObject><text x="672" y="322" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">0..n</text></switch></g><path d="M 540 435 L 540 409 L 700 409 L 700 435" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 540 435 L 540 479 L 700 479 L 700 435" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 540 435 L 700 435" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="619.5" y="426.5">EffectProcessor</text></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: 150px; height: 1px; padding-top: 442px; margin-left: 546px;"><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: none; white-space: normal; overflow-wrap: normal;">Audio in, audio out</div></div></div></foreignObject><text x="546" y="454" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Audio in, audio out</text></switch></g><path d="M 860 435 L 860 409 L 1020 409 L 1020 435" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 860 435 L 860 479 L 1020 479 L 1020 435" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 860 435 L 1020 435" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="939.5" y="426.5">SynthesizerProcessor</text></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: 150px; height: 1px; padding-top: 442px; margin-left: 866px;"><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: none; white-space: normal; overflow-wrap: normal;">Notes in, audio out</div></div></div></foreignObject><text x="866" y="454" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Notes in, audio out</text></switch></g><path d="M 860 442 L 780 440 L 780 387.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 370.12 L 788.5 387.12 L 771.5 387.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 700 442 L 780 440 L 780 387.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 370.12 L 788.5 387.12 L 771.5 387.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 540 546 L 540 520 L 700 520 L 700 546" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 540 546 L 540 590 L 700 590 L 700 546" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 540 546 L 700 546" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="619.5" y="537.5">Delay, EQ, Amp, ...</text></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: 150px; height: 1px; padding-top: 553px; margin-left: 546px;"><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: none; white-space: normal; overflow-wrap: normal;">Your effect here!</div></div></div></foreignObject><text x="546" y="565" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Your effect here!</text></switch></g><path d="M 620 520 L 620 497.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 620 480.12 L 628.5 497.12 L 611.5 497.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 860 546 L 860 520 L 1020 520 L 1020 546" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 860 546 L 860 590 L 1020 590 L 1020 546" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 860 546 L 1020 546" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="939.5" y="537.5">FM, Analog, Wavetable, ...</text></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: 150px; height: 1px; padding-top: 553px; margin-left: 866px;"><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: none; white-space: normal; overflow-wrap: normal;">Your synth here!</div></div></div></foreignObject><text x="866" y="565" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Your synth here!</text></switch></g><path d="M 940 520 L 940 497.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 940 480.12 L 948.5 497.12 L 931.5 497.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 700 186 L 700 160 L 860 160 L 860 186" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 700 186 L 700 240 L 860 240 L 860 186" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 700 186 L 860 186" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="779.5" y="177.5">ProcessorParameter</text></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: 150px; height: 1px; padding-top: 193px; margin-left: 706px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 50px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Unified access to processor parameters, notification about changes etc.</div></div></div></foreignObject><text x="706" y="205" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Unified access to process...</text></switch></g><path d="M 780 255.99 L 780 296.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 240.99 L 784.41 248.49 L 780 255.99 L 775.59 248.49 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 773.5 284.88 L 780 297.88 L 786.5 284.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><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: 1px; height: 1px; padding-top: 257px; margin-left: 792px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">0..n</div></div></div></foreignObject><text x="792" y="268" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">0..n</text></switch></g><path d="M 520 66 L 520 40 L 680 40 L 680 66" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 520 66 L 520 120 L 680 120 L 680 66" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 520 66 L 680 66" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="599.5" y="57.5">ProcessorRangeParameter</text></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: 150px; height: 1px; padding-top: 73px; margin-left: 526px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 50px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">fixed-point parameter with minimum, maximum, and possibly logarithmic scaling</div></div></div></foreignObject><text x="526" y="85" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">fixed-point parameter wit...</text></switch></g><path d="M 660 120 L 704.92 149.95" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 719.07 159.38 L 700.21 157.02 L 709.64 142.88 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 700 66 L 700 40 L 860 40 L 860 66" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 700 66 L 700 120 L 860 120 L 860 66" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 700 66 L 860 66" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="779.5" y="57.5">ProcessorEnumParameter</text></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: 150px; height: 1px; padding-top: 73px; margin-left: 706px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 50px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">parameter with enum value</div></div></div></foreignObject><text x="706" y="85" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">parameter with enum value</text></switch></g><path d="M 880 66 L 880 40 L 1050 40 L 1050 66" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 880 66 L 880 120 L 1050 120 L 1050 66" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 880 66 L 1050 66" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="964.5" y="57.5">ProcessorBooleanParameter</text></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: 160px; height: 1px; padding-top: 73px; margin-left: 886px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 50px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">flag-like parameter</div></div></div></foreignObject><text x="886" y="85" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">flag-like parameter</text></switch></g><path d="M 780 120 L 780 141.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 158.88 L 771.5 141.88 L 788.5 141.88 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 903.33 120 L 856.87 150.14" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 842.6 159.39 L 852.24 143.01 L 861.49 157.27 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> |