Skip to content

Instantly share code, notes, and snippets.

@steveroush
Created May 18, 2020 02:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save steveroush/686ac93dd5708f11252b498faf204f5e to your computer and use it in GitHub Desktop.
Save steveroush/686ac93dd5708f11252b498faf204f5e to your computer and use it in GitHub Desktop.
digraph G {
/* based on work by Kaspar Bumke */
graph [comment="based on work by Kaspar Bumke "]
graph [inputscale="72" layout="neato" rankdir=RL layers="visible:invisible:OFF_layer:TRIG_START_layer:RECORD_layer:TRIG_STOP_layer:PLAY_layer:OVERDUB_layer:MULTIPLY_layer:INSERT_layer:REPLACE_layer:DELAY_layer:MUTE_layer:SCRATCH_layer:ONESHOT_layer:SUBSTITUTE_layer:PAUSED_layer:UNDO_ALL_layer:TRIGGER_PLAY_layer:UNDO_layer:REDO_layer:REDO_ALL_layer:OFF_MUTE_layer" size="9,9!" outputorder="nodesfirst"]
subgraph cluster1 {
node [style="filled" fillcolor="white" fontname=Times]
node [id=":\N:"]; // set the ID field in the SVG output, used by the SVG postprocessor
UNDO_ALL [shape=diamond layer="all" pos="0, 35!"]
OFF_MUTE [ layer="all" pos="70, -35!"]
OFF [ layer="all" pos="-70, -35!"]
TRIG_START [shape=hexagon layer="all" pos="-2.14306, 350.0!"]
RECORD [ layer="all" pos="119.707050164, 328.892417275!"]
TRIG_STOP [shape=hexagon layer="all" pos="224.97566339, 268.115555092!"]
PLAY [ layer="all" pos="303.108891325, 175.0!"]
OVERDUB [ layer="all" pos="344.682713554, 60.7768621834!"]
MULTIPLY [ layer="all" pos="344.682713554, -60.7768621834!"]
INSERT [ layer="all" pos="303.108891325, -175.0!"]
REPLACE [ layer="all" pos="224.97566339, -268.115555092!"]
DELAY [ layer="all" pos="119.707050164, -328.892417275!"]
MUTE [ layer="all" pos="6.42918335757, -350.0!"]
SCRATCH [ layer="all" pos="-119.707050164, -328.892417275!"]
ONESHOT [shape=hexagon layer="all" pos="-224.97566339, -268.115555092!"]
SUBSTITUTE [ layer="all" pos="-303.108891325, -175.0!"]
PAUSED [ layer="all" pos="-344.682713554, -60.7768621834!"]
TRIGGER_PLAY [shape=hexagon layer="all" pos="-344.682713554, 60.7768621834!"]
UNDO [shape=diamond layer="all" pos="-303.108891325, 175.0!"]
REDO [shape=diamond layer="all" pos="-224.97566339, 268.115555092!"]
REDO_ALL [shape=diamond layer="all" pos="-119.707050164, 328.892417275!"]
edge [fontcolor=grey]
edge[layer="OFF_layer"]
OFF -> RECORD [headlabel="record"]
OFF -> TRIG_START [headlabel="record" style=dashed label="if trig threshold > 0"]
OFF -> DELAY [headlabel="delay"]
OFF -> REDO [headlabel="redo"]
OFF -> REDO_ALL [headlabel="redo all"]
OFF -> OFF [headlabel="delay" tailport="w" headport="_" style=dashed color=red fontcolor=red label="doesn't work first time pressed"]
OFF -> OFF_MUTE [headlabel="pause" color=red fontcolor=red ]
OFF -> OFF_MUTE [headlabel="mute" ]
//OFF -> SCRATCH [headlabel="scratch" color=red fontcolor=red]
edge[layer="OFF_MUTE_layer"]
OFF_MUTE -> RECORD [headlabel="record"]
OFF_MUTE -> TRIG_START [headlabel="record" style=dashed label="if trig threshold > 0"]
OFF_MUTE -> DELAY [headlabel="delay"]
OFF_MUTE -> REDO [headlabel="redo"]
OFF_MUTE -> REDO_ALL [headlabel="redo all"]
OFF_MUTE -> OFF [headlabel="mute"]
OFF_MUTE -> OFF [headlabel="pause" color=red fontcolor=red]
OFF_MUTE -> OFF_MUTE [headlabel="delay" style=dashed color=red fontcolor=red label="doesn't work first time pressed"]
//OFF_MUTE -> SCRATCH [headlabel="scratch" color=red fontcolor=red]
edge[layer="REDO_layer"]
REDO -> PLAY [style=dotted]
REDO -> MUTE [style=dotted]
REDO -> OFF [style=dotted]
REDO -> OFF_MUTE [style=dotted]
edge[layer="UNDO_layer"]
UNDO -> UNDO_ALL [style=dotted]
UNDO -> PLAY [style=dotted weight=10]
UNDO -> MUTE [style=dotted]
edge[layer="UNDO_ALL_layer"]
UNDO_ALL -> OFF [style=dotted]
UNDO_ALL -> OFF_MUTE [style=dotted]
edge[layer="RECORD_layer"]
RECORD -> UNDO [headlabel="undo"]
RECORD -> UNDO_ALL [headlabel="undo all"]
RECORD -> OVERDUB [headlabel="overdub" color=orange fontcolor=orange label="clicks"]
RECORD -> MULTIPLY [headlabel="multiply" color=orange fontcolor=orange label="clicks"]
RECORD -> SUBSTITUTE [headlabel="substitute"]
RECORD -> INSERT [headlabel="insert"]
RECORD -> REPLACE [headlabel="replace"]
RECORD -> MUTE [headlabel="mute"]
RECORD -> PLAY [headlabel="record" weight=10]
RECORD -> PAUSED [headlabel="pause"]
RECORD -> TRIG_STOP [headlabel="record" style=dashed]
edge[layer="PLAY_layer"]
PLAY -> ONESHOT [headlabel="once"]
PLAY -> MUTE [headlabel="mute"]
PLAY -> OVERDUB [headlabel="overdub" weight=10]
PLAY -> RECORD [headlabel="record"]
PLAY -> SUBSTITUTE [headlabel="substitute"]
PLAY -> INSERT [headlabel="insert"]
PLAY -> REPLACE [headlabel="replace"]
PLAY -> UNDO_ALL [headlabel="undo all"]
PLAY -> UNDO [headlabel="undo"]
PLAY -> DELAY [headlabel="delay"]
PLAY -> TRIGGER_PLAY [headlabel="trig"]
PLAY -> SCRATCH [headlabel="scratch"]
PLAY -> PAUSED [headlabel="pause"]
PLAY -> PLAY [headlabel="delay" style=dashed color=red fontcolor=red label="doesn't work first time pressed"]
edge[layer="MUTE_layer"]
MUTE -> ONESHOT [headlabel="once" color=orange fontcolor=orange label="won't unmute when playback is synced"]
MUTE -> PLAY [headlabel="mute"]
MUTE -> OVERDUB [headlabel="overdub" weight=10]
MUTE -> RECORD [headlabel="record"]
MUTE -> SUBSTITUTE [headlabel="substitute"]
MUTE -> ONESHOT [headlabel="insert" color=red fontcolor=red label="should go into insert"]
MUTE -> REPLACE [headlabel="replace"]
MUTE -> UNDO_ALL [headlabel="undo all"]
MUTE -> UNDO [headlabel="undo"]
MUTE -> DELAY [headlabel="delay"]
MUTE -> TRIGGER_PLAY [headlabel="trig"]
MUTE -> SCRATCH [headlabel="scratch"]
MUTE -> PAUSED [headlabel="pause"]
MUTE -> MUTE [headlabel="delay" tailport="se" headport="_" style=dashed color=red fontcolor=red label="doesn't work first time pressed"]
edge[layer="PAUSED_layer"]
PAUSED -> TRIGGER_PLAY [headlabel="trig"]
PAUSED -> PLAY [headlabel="pause"]
PAUSED -> MUTE [headlabel="mute" color=red fontcolor=red label="shouldn't start rolling..."]
edge[layer="DELAY_layer"]
DELAY -> UNDO [headlabel="undo" color=orange fontcolor=orange label="doesn't undo before second press"]
DELAY -> UNDO_ALL [headlabel="undo all" color=orange fontcolor=orange label="goes into playing state according to slgui"]
DELAY -> RECORD [headlabel="record"]
DELAY -> TRIG_START [headlabel="record" style=dashed]
DELAY -> MUTE [headlabel="mute"]
DELAY -> TRIG_START [headlabel="replace\/insert\/substitute\/multiply" style=dashed color=orange fontcolor=orange label="problematic when synced to the same loop"]
DELAY -> REPLACE [headlabel="replace"]
DELAY -> INSERT [headlabel="insert" ]
DELAY -> SUBSTITUTE [headlabel="substitute"]
DELAY -> MULTIPLY [headlabel="multiply" ]
edge[layer="SCRATCH_layer"]
SCRATCH -> PLAY [headlabel="scratch"]
SCRATCH -> OVERDUB [headlabel="overdbub"]
SCRATCH -> SUBSTITUTE [headlabel="substitute"]
SCRATCH -> INSERT [headlabel="insert"]
SCRATCH -> REPLACE [headlabel="replace"]
SCRATCH -> MULTIPLY [headlabel="multiply"]
SCRATCH -> PAUSED [headlabel="pause"]
edge[layer="OVERDUB_layer"]
OVERDUB -> PLAY [headlabel="overdub"]
OVERDUB -> RECORD [headlabel="record"]
OVERDUB -> UNDO [headlabel="undo"]
OVERDUB -> UNDO_ALL [headlabel="undo all"]
OVERDUB -> MUTE [headlabel="mute"]
OVERDUB -> TRIG_START [headlabel="replace\/insert\/substitute\/multiply" style=dashed]
OVERDUB -> TRIG_STOP [headlabel="overdub" style=dashed]
OVERDUB -> REPLACE [headlabel="replace"]
OVERDUB -> INSERT [headlabel="insert" ]
OVERDUB -> SUBSTITUTE [headlabel="substitute"]
OVERDUB -> MULTIPLY [headlabel="multiply" ]
OVERDUB -> TRIGGER_PLAY [headlabel="trig" ]
edge[layer="REPLACE_layer"]
REPLACE -> PLAY [headlabel="replace"]
REPLACE -> UNDO [headlabel="undo"]
REPLACE -> UNDO_ALL [headlabel="undo all"]
REPLACE -> MUTE [headlabel="mute"]
REPLACE -> TRIG_STOP [headlabel="replace" style=dashed]
REPLACE -> RECORD [headlabel="record"]
REPLACE -> TRIG_START [headlabel="overdub\/insert\/substitute\/multiply" style=dashed]
REPLACE -> OVERDUB [headlabel="overdub"]
REPLACE -> INSERT [headlabel="insert" ]
REPLACE -> SUBSTITUTE [headlabel="substitute"]
REPLACE -> MULTIPLY [headlabel="multiply" ]
REPLACE -> TRIGGER_PLAY [headlabel="trig" ]
edge[layer="SUBSTITUTE_layer"]
SUBSTITUTE -> PLAY [headlabel="substitute"]
SUBSTITUTE -> UNDO [headlabel="undo"]
SUBSTITUTE -> UNDO_ALL [headlabel="undo all"]
SUBSTITUTE -> MUTE [headlabel="mute"]
SUBSTITUTE -> TRIG_STOP [headlabel="replace" style=dashed]
SUBSTITUTE -> RECORD [headlabel="record"]
SUBSTITUTE -> TRIG_START [headlabel="overdub\/insert\/replace\/multiply" style=dashed]
SUBSTITUTE -> OVERDUB [headlabel="overdub"]
SUBSTITUTE -> INSERT [headlabel="insert" ]
SUBSTITUTE -> REPLACE [headlabel="replace"]
SUBSTITUTE -> MULTIPLY [headlabel="multiply" ]
SUBSTITUTE -> TRIGGER_PLAY [headlabel="trig" ]
edge[layer="MULTIPLY_layer"]
MULTIPLY -> PLAY [headlabel="multiply"]
MULTIPLY -> UNDO [headlabel="undo"]
MULTIPLY -> UNDO_ALL [headlabel="undo all"]
MULTIPLY -> MUTE [headlabel="mute"]
MULTIPLY -> TRIG_STOP [headlabel="replace" style=dashed]
MULTIPLY -> RECORD [headlabel="record"]
MULTIPLY -> TRIG_START [headlabel="overdub\/insert\/replace\/substitute" style=dashed]
MULTIPLY -> OVERDUB [headlabel="overdub"]
MULTIPLY -> INSERT [headlabel="insert" ]
MULTIPLY -> REPLACE [headlabel="replace"]
MULTIPLY -> SUBSTITUTE [headlabel="substitute" ]
MULTIPLY -> TRIGGER_PLAY [headlabel="trig" ]
edge[layer="INSERT_layer"]
INSERT -> PLAY [headlabel="insert"]
INSERT -> UNDO [headlabel="undo"]
INSERT -> UNDO_ALL [headlabel="undo all"]
INSERT -> MUTE [headlabel="mute"]
INSERT -> TRIG_STOP [headlabel="insert" style=dashed]
INSERT -> RECORD [headlabel="record"]
INSERT -> TRIG_START [headlabel="overdub\/multiply\/replace\/substitute" style=dashed]
INSERT -> OVERDUB [headlabel="overdub"]
INSERT -> MULTIPLY [headlabel="multiply" ]
INSERT -> REPLACE [headlabel="replace"]
INSERT -> SUBSTITUTE [headlabel="substitute" ]
INSERT -> TRIGGER_PLAY [headlabel="trig" ]
edge[layer="TRIG_START_layer"]
TRIG_START -> RECORD [style=dotted]
TRIG_START -> OVERDUB [style=dotted]
TRIG_START -> MULTIPLY [style=dotted]
TRIG_START -> SUBSTITUTE [style=dotted]
TRIG_START -> INSERT [style=dotted]
TRIG_START -> REPLACE [style=dotted]
edge[layer="TRIG_STOP_layer"]
TRIG_STOP -> PLAY [style=dotted]
edge[layer="TRIGGER_PLAY_layer"]
TRIGGER_PLAY -> PLAY [style=dotted]
edge[layer="ONESHOT_layer"]
ONESHOT -> MUTE [style=dotted]
ONESHOT -> ONESHOT [headlabel="insert" color=red fontcolor=red]
ONESHOT -> ONESHOT [headlabel="once"]
ONESHOT -> RECORD [headlabel="record"]
ONESHOT -> UNDO [headlabel="undo"]
ONESHOT -> UNDO_ALL [headlabel="undo all"]
ONESHOT -> TRIG_START [headlabel="replace\/insert\/substitute\/multiply" style=dashed]
ONESHOT -> OVERDUB [headlabel="overdub"]
ONESHOT -> REPLACE [headlabel="replace"]
ONESHOT -> INSERT [headlabel="insert" ]
ONESHOT -> SUBSTITUTE [headlabel="substitute"]
ONESHOT -> MULTIPLY [headlabel="multiply" ]
ONESHOT -> TRIGGER_PLAY [headlabel="pause\/mute" color=red fontcolor=red]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment