code for an art project.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Hanns Holger Rutz 0a76769fa6 info on table update; new ip <> 6 days ago
.github/workflows pi4j 1.4 has class file version > JDK 8 1 year ago
notes annot, notes <> 9 months ago
project new dynamic annotation system 7 months ago
scripts add scripts 1 year ago
src/main ... <> 2 weeks ago
workspaces/TransferResample.mllt transfer examples <> 10 months ago
.gitignore ... <> 4 months ago
LICENSE init 1 year ago info on table update; new ip <> 6 days ago
build.sbt new dynamic annotation system 7 months ago ... <> 4 months ago
kontakt-table.desktop all adjustments there <> 9 months ago
kontakt-window.desktop auto-start <> 1 year ago ... <> 4 months ago all adjustments there <> 9 months ago info on table update; new ip <> 6 days ago auto-start <> 1 year ago ça marche - pi automation 1 year ago

Build Status


This repository contains code for an ongoing art project. See Research Catalogue

(C)opyright 2021 by Hanns Holger Rutz. All rights reserved. This project is released under the GNU Affero General Public License v3+ and comes with absolutely no warranties. To contact the author, send an e-mail to contact at

The included font for the physical window rendering is Libre Franklin covered by the SIL Open Font License 1.1.


Builds with sbt against Scala 2.13. Create executable: sbt assembly

run on the observation Raspberry Pi

java -Xmx768m -jar kontakt.jar --init-delay 10 -V --user kontakt... --pass ...

Add --no-shutdown during testing.

run on the window Raspberry Pi

java -Xmx768m -cp kontakt.jar de.sciss.kontakt.Window --init-delay 10 -V --user kontakt... --pass ...

test runs


--pre-crop-right 1000 -i /data/projects/Kontakt/materials/snap_210409_154852.jpg -o /data/temp/_killme.jpg -V


-u kontakt... -p ... -i /data/temp/_killme.jpg



Window caches contents and photos in ~/.cache/kontakt.

transfer test

ffmpeg -i '/data/projects/Kontakt/image_transfer_rsmp/transfer-rsmp-%d.jpg' -r 25 '/data/projects/Kontakt/materials/transfer-rsmp.mp4'

ffmpeg -i '/data/projects/Kontakt/image_transfer_rsmp/transfer-rsmp-%d.jpg' -r 25 -filter:v "crop=1080:1080:180:180,fade=type=out:start_frame=2225:nb_frames=25" '/data/projects/Kontakt/materials/transfer-rsmp-cr.mp4'

fix wiring-pi

Important: Wiring-Pi is broken on the Pi 4. The pull up/down resistors cannot be configured. See -- one needs to replace the installed versions with an unofficial one!

sudo apt remove wiringpi -y
sudo apt install git-core gcc make
cd ~/Documents/devel/
git clone --branch master --single-branch wiringpi
cd wiringpi
sudo ./build


Instead of keeping "all" annotations in the source code in one resource file -- having to update the software with new annotations -- these are now pulled from the same Mastodon account, by polling private DMs "addressed to itself", using CW (spoiler) "annot". People can still DM the account, but the confirmation step is to toot the annotation from the Kontakt account to itself.

updating the table-top version

java -cp kontakt.jar de.sciss.kontakt.Window --user USER --pass PASS --verbose --init-delay 0 --shutdown-hour 0 --no-thresh-entries --no-view


  • v0.5.1; add 'evening' shutter time (14-Oct-2021)
  • v0.6.0; refactor Login; download new annotations from Mastodon DMs (04-Dec-2021)