Created
November 19, 2020 16:27
-
-
Save urswilke/d49ccbf043bf2452f5bb9197e014d196 to your computer and use it in GitHub Desktop.
graphviz file
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
digraph workflow { | |
ranksep=.5; | |
graph [ | |
fontname = "helvetica", | |
#splines=ortho, | |
concentrate=true | |
]; | |
node [ | |
fontname = "helvetica", | |
style = "rounded,filled,radial", | |
gradientangle=60, | |
#fillcolor="#dddddd99:#7777772f", | |
# gradients dont work on observable...: | |
fillcolor="#dddddd99", | |
penwidth=4, | |
color = "#ffffff55", | |
width = 2.5 | |
]; | |
edge [ | |
fontname = "helvetica", | |
penwidth=3, | |
color="#37373766" | |
]; | |
penwidth=5; | |
style=rounded | |
subgraph cluster_arduino { | |
label = < <B>arduino</B> >; | |
bgcolor = "#a8feff"; | |
color = "#3e979d"; | |
fontcolor = "#3e979d"; | |
fontsize = 30; | |
Thermometers -> mc; | |
sketch -> mc; | |
Thermometers [shape=box]; | |
sketch [ | |
label = "send_temp.ino", | |
shape=box, | |
URL="https://gitlab.com/urswilke/chaos_machine_code/-/tree/master/arduino/send_temp/send_temp.ino", | |
tooltip = "arduino sketch to read multiple DS18B20 thermometers and then print the information to the serial connection" | |
]; | |
{rank=same; mc; sketch} | |
} | |
sc -> python; | |
subgraph cluster_main { | |
label = < <B>python</B> >; | |
bgcolor = "#fffb4b"; | |
color = "#4f93ba"; | |
fontcolor = "#4f93ba"; | |
fontsize = 30; | |
penwidth=5; | |
#graph[style=dotted]; | |
"functions.py" [ | |
shape=box, | |
tooltip = "functions that are imported in the temperatures_to_midi notebook", | |
URL = "https://gitlab.com/urswilke/chaos_machine_code/-/tree/master/python/functions.py" | |
] | |
python [ | |
shape=box, | |
tooltip = "python real-time loop to | |
* read serial string, extract temperatures | |
* calculate temperature differences | |
* translate differences to midi notes according to a specified musical scale | |
* send the note events to a midi port in real time | |
During the loop the data is recorded in lists and when it has finished the data is written to a midi and csv files. ", | |
label = "temperatures_to_midi.ipynb", | |
URL = "https://gitlab.com/urswilke/chaos_machine_code/-/tree/master/python/temperatures_to_midi.ipynb" | |
]; | |
"functions.py" -> python | |
mc [ | |
shape=box, | |
label="micro-controller", | |
tooltip="the micro-controller is connected to the PC via USB", | |
]; | |
{rank = same; "functions.py" python} | |
} | |
# subgraph cluster_main_to_R_connectors { | |
# label = "main workflow"; | |
# } | |
subgraph cluster_fluidsynth { | |
label = <<B>fluidsynth </B>>; | |
fontsize = 30; | |
bgcolor = "#ffd030"; | |
color = "#f07531"; | |
fontcolor = "#f07531"; | |
penwidth=5; | |
sf2 [shape = cylinder, label = "sound\nfont"]; | |
fluidsynth [ | |
shape=box, | |
tooltip = "* Fluidsynth can be easily started via the GUI QSynth.\n* An sf2 soundfont file has to be used.\n* A midi port can be synthesized in real time, or\n* A midi file can be rendered to an audio file." | |
]; | |
sf2 -> fluidsynth; | |
{rank=same; fluidsynth sf2} | |
} | |
mp -> fluidsynth; | |
mc -> sc [ | |
arrowhead=none, | |
tooltip = "setup serial connection in arduino", | |
URL = "https://gitlab.com/urswilke/chaos_machine_code/-/tree/master/arduino/send_temp/send_temp.ino#L24" | |
]; | |
python -> mp [arrowhead=none]; | |
sc [ | |
label="serial\nconnection", | |
color=grey, | |
shape=diamond, | |
tooltip = "The serial string sent from the arduino is of the following format: | |
S: 1, ID: 40255662332332138251, T: 23.12; S: 2, ID: 402552102282332138209, T: 23.25; S: 3, ID: 402551932392332138119, T: 22.75; S: 4, ID: 4025514153413227192, T: 23.38; S: 5, ID: 402552272422332138169, T: 23.12", | |
URL = "https://gitlab.com/urswilke/chaos_machine_code/-/tree/master/python/recorded_data/serial_string.txt" | |
]; | |
mp [ | |
label = "midi\nport", | |
shape=diamond, | |
color=grey, | |
tooltip = "The midi port to fluidsynth is set up by the python code in temperatures_to_midi.ipynb", | |
URL = "https://gitlab.com/urswilke/chaos_machine_code/-/tree/master/python/temperatures_to_midi.ipynb#Setup_fluidsynth_connection" | |
]; | |
#mc -> sc -> python -> mp -> fluidsynth[ style = invis, weight= 10 ]; | |
fluidsynth -> speakers | |
subgraph cluster_speaker { | |
label = < <B>speaker</B> >; | |
fontsize = 30; | |
# bgcolor="#FFD700:#CCA600"; | |
# gradients dont work on observable...: | |
bgcolor="#CCA600"; | |
speakers [label="🔊🎶"]; | |
} | |
mc -> sc [ weight = 100, style=invis] | |
sc -> python [ | |
weight = 100, | |
style=invis, | |
tooltip = "setup serial connection in arduino", | |
URL = "https://gitlab.com/urswilke/chaos_machine_code/-/tree/master/python/temperatures_to_midi.ipynb#Arduino" | |
] | |
python -> mp [ weight = 100, style=invis] | |
mp -> fluidsynth [ weight = 100, style=invis] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment