diff --git a/archiv/talk-mod-host-pisound-button/index.adoc b/archiv/talk-mod-host-pisound-button/index.adoc
new file mode 100644
index 0000000..c2c74ab
--- /dev/null
+++ b/archiv/talk-mod-host-pisound-button/index.adoc
@@ -0,0 +1,55 @@
+= mod-host vs Pisound button
+:customcss: presentation.css
+:source-highlighter: highlight.js
+:linkattrs:
+
+link:https://https://sonoj.org/[Sonoj Convention, window="_blank"]
+
+link:https://github.com/danielappelt[Daniel Appelt, window="_blank"] / 2023-09-30
+
+== Pisound & the button
+
+[%step]
+* link:https://blokas.io/pisound/[Pisound] is a sound card and MIDI interface for the Raspberry Pi
+* It comes with one link:https://github.com/BlokasLabs/pisound/blob/master/pisound-btn/pisound.conf[configurable button]
+* Bash scripts are used for button action (link:scripts/pisound-btn/toggle_wifi_hotspot.sh[example])
+
+== mod-host
+
+[%step]
+* link:https://github.com/moddevices/mod-host[mod-host] is an LV2 host for JACK, controllable via socket or command line
+* link:https://github.com/moddevices/mod-ui[mod-ui] is started together with mod-host in MODEP
+* mod-ui uses file socket to communicate with mod-host
+
+== Problem
+
+[%step]
+* Syncing mod-host as secondary via MIDI clock was unreliable
+* How to start/stop transport in mod-host as MIDI clock primary not using mod-ui?
+
+== Solution
+
+[%step]
+* Let Pisound button start/stop mod-host via web socket
+* link:https://github.com/vi/websocat[websocat] is like netcat, curl and socat for WebSockets
+* Example script to start/stop transport in mod-host
+
+== Code
+
+[source, bash]
+----
+#!/bin/sh
+
+. /usr/local/pisound/scripts/common/common.sh
+
+# Use websocket interface to mod-ui as the regular socket is exclusively used for
+# communication between mod-ui and mod-host.
+
+if [ -z $(echo -n '' | /usr/local/bin/websocat --text ws://127.0.0.1:80/websocket/ | grep 'transport 1') ]; then
+ # Start transport and blinking
+ echo 'transport-rolling 1' | /usr/local/bin/websocat ws://127.0.0.1:80/websocket/
+else
+ # Stop transport and blinking
+ echo 'transport-rolling 0' | /usr/local/bin/websocat ws://127.0.0.1:80/websocket/
+fi
+----
diff --git a/archiv/talk-mod-host-pisound-button/index.html b/archiv/talk-mod-host-pisound-button/index.html
new file mode 100644
index 0000000..95b6ac5
--- /dev/null
+++ b/archiv/talk-mod-host-pisound-button/index.html
@@ -0,0 +1,1098 @@
+
mod-ui uses file socket to communicate with mod-host
+
Problem
Syncing mod-host as secondary via MIDI clock was unreliable
How to start/stop transport in mod-host as MIDI clock primary not using mod-ui?
+
Solution
Let Pisound button start/stop mod-host via web socket
websocat is like netcat, curl and socat for WebSockets
Example script to start/stop transport in mod-host
+
Code
#!/bin/sh
+
+. /usr/local/pisound/scripts/common/common.sh
+
+# Use websocket interface to mod-ui as the regular socket is exclusively used for
+# communication between mod-ui and mod-host.
+
+if [ -z $(echo -n '' | /usr/local/bin/websocat --text ws://127.0.0.1:80/websocket/ | grep 'transport 1') ]; then
+ # Start transport and blinking
+ echo 'transport-rolling 1' | /usr/local/bin/websocat ws://127.0.0.1:80/websocket/
+else
+ # Stop transport and blinking
+ echo 'transport-rolling 0' | /usr/local/bin/websocat ws://127.0.0.1:80/websocket/
+fi
+
+
+
\ No newline at end of file
diff --git a/archiv/talk-mod-host-pisound-button/metadata.ini b/archiv/talk-mod-host-pisound-button/metadata.ini
new file mode 100644
index 0000000..ba0449b
--- /dev/null
+++ b/archiv/talk-mod-host-pisound-button/metadata.ini
@@ -0,0 +1,8 @@
+[Meta]
+#YYYY-MM
+Date = 2023-10
+
+#e.g. CC-by-sa, CC-by, All Rights Reserved
+License = CC-by-sa
+PrettyName = mod-host vs Pisound button
+Author = Daniel
diff --git a/archiv/talk-mod-host-pisound-button/node_modules/reveal.js/LICENSE b/archiv/talk-mod-host-pisound-button/node_modules/reveal.js/LICENSE
new file mode 100644
index 0000000..d15cf3b
--- /dev/null
+++ b/archiv/talk-mod-host-pisound-button/node_modules/reveal.js/LICENSE
@@ -0,0 +1,19 @@
+Copyright (C) 2020 Hakim El Hattab, http://hakim.se, and reveal.js contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/archiv/talk-mod-host-pisound-button/node_modules/reveal.js/README.md b/archiv/talk-mod-host-pisound-button/node_modules/reveal.js/README.md
new file mode 100644
index 0000000..5040ba2
--- /dev/null
+++ b/archiv/talk-mod-host-pisound-button/node_modules/reveal.js/README.md
@@ -0,0 +1,28 @@
+
+
+reveal.js is an open source HTML presentation framework. It enables anyone with a web browser to create fully featured and beautiful presentations for free. [Check out the live demo](https://revealjs.com/).
+
+The framework comes with a broad range of features including [nested slides](https://revealjs.com/vertical-slides/), [Markdown support](https://revealjs.com/markdown/), [Auto-Animate](https://revealjs.com/auto-animate/), [PDF export](https://revealjs.com/pdf-export/), [speaker notes](https://revealjs.com/speaker-view/), [LaTeX support](https://revealjs.com/math/), [syntax highlighted code](https://revealjs.com/code/) and much more.
+
+
+ Not a coder? Not a problem. There's a fully-featured visual editor for authoring these, try it out at https://slides.com.
+
+
+
+
+
Hidden Slides
+
+ This slide is visible in the source, but hidden when the presentation is viewed. You can show all hidden slides by setting the `showHiddenSlides` config option to `true`.
+
+ You can override background transitions per-slide.
+
+
<section data-background-transition="zoom">
+
+
+
+
+
Iframe Backgrounds
+
Since reveal.js runs on the web, you can easily embed other web content. Try interacting with the page in the background.
+
+
+
+
+
Marvelous List
+
+
No order here
+
Or here
+
Or here
+
Or here
+
+
+
+
+
Fantastic Ordered List
+
+
One is smaller than...
+
Two is smaller than...
+
Three!
+
+
+
+
+
Tabular Tables
+
+
+
+
Item
+
Value
+
Quantity
+
+
+
+
+
Apples
+
$1
+
7
+
+
+
Lemonade
+
$2
+
18
+
+
+
Bread
+
$3
+
2
+
+
+
+
+
+
+
Clever Quotes
+
+ These guys come in two forms, inline: The nice thing about standards is that there are so many to choose from and block:
+
+
+ “For years there has been a theory that millions of monkeys typing at random on millions of typewriters would
+ reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.”
+
+
+
+
+
Intergalactic Interconnections
+
+ You can link between slides internally,
+ like this.
+
+
+
+
+
Speaker View
+
There's a speaker view. It includes a timer, preview of the upcoming slide as well as your speaker notes.
+ Set data-state="something" on a slide and "something"
+ will be added as a class to the document element when the slide is open. This lets you
+ apply broader style changes, like switching the page background.
+
+
+
+
+
State Events
+
+ Additionally custom events can be triggered on a per slide basis by binding to the data-state name.
+