diff --git a/foss4g-2019/__init__.py b/foss4g-2019/__init__.py
new file mode 100644
index 0000000..75ab35c
--- /dev/null
+++ b/foss4g-2019/__init__.py
@@ -0,0 +1,173 @@
+#!/usr/bin/python3
+
+import subprocess
+import os.path
+from renderlib import *
+from easing import *
+import svg.path
+
+# URL to Schedule-XML
+scheduleUrl = 'https://talks.2019.foss4g.org/bucharest/schedule/export/schedule.xml'
+
+# For (really) too long titles
+titlemap = {
+ #
+}
+
+
+def introFrames(args):
+ #1 Sec Background
+ frames = 1*fps
+ for i in range(0,frames):
+ yield(
+ ('text', 'style', 'opacity', 0),
+ ('image1105', 'style', 'opacity', 1),
+ )
+
+ #2 Sec FadeIn Text
+ frames = 2*fps
+ for i in range(0,frames):
+ yield(
+ ('text', 'style', 'opacity', "%.4f" % easeInCubic(i,0,1,frames)),
+ ('image1105', 'style', 'opacity', 1),
+ )
+
+ #4 Sec Everything
+ frames = 4*fps
+ for i in range(0,frames):
+ yield(
+ ('text', 'style', 'opacity', 1),
+ ('image1105', 'style', 'opacity', 1),
+ )
+
+
+def outroFrames(args):
+ # 5 Sec everything
+ frames = 5*fps
+ for i in range(0,frames):
+ yield(
+ ('layer1', 'style', 'opacity', 1),
+ ('layer2', 'style', 'opacity', 1),
+ )
+
+def pauseFrames(params):
+
+ # 2 sec Fadein Text1
+ frames = 2*fps
+ for i in range(0, frames):
+ yield (
+ ('text1', 'style', 'opacity', "%.4f" % easeOutCubic(i, 0, 1, frames)),
+ ('text2', 'style', 'opacity', 0)
+ )
+
+ # 2 sec Text1
+ frames = 2*fps
+ for i in range(0, frames):
+ yield (
+ ('text1', 'style', 'opacity', 1),
+ ('text2', 'style', 'opacity', 0)
+ )
+
+ # 2 sec Fadeout Text1
+ frames = 2*fps
+ for i in range(0, frames):
+ yield (
+ ('text1', 'style', 'opacity', "%.4f" % (1-easeOutCubic(i, 0, 1, frames))),
+ ('text2', 'style', 'opacity', 0)
+ )
+
+ # 2 sec blank
+ frames = 2*fps
+ for i in range(0, frames):
+ yield (
+ ('text1', 'style', 'opacity', 0),
+ ('text2', 'style', 'opacity', 0)
+ )
+
+ # 2 sec Fadein Text2
+ frames = 2*fps
+ for i in range(0, frames):
+ yield (
+ ('text2', 'style', 'opacity', "%.4f" % easeOutCubic(i, 0, 1, frames)),
+ ('text1', 'style', 'opacity', 0)
+ )
+
+
+ # 2 sec Text2
+ frames = 2*fps
+ for i in range(0, frames):
+ yield (
+ ('text2', 'style', 'opacity', 1),
+ ('text1', 'style', 'opacity', 0)
+ )
+
+ # 2 sec Fadeout Text2
+ frames = 2*fps
+ for i in range(0, frames):
+ yield (
+ ('text2', 'style', 'opacity', "%.4f" % (1-easeOutCubic(i, 0, 1, frames))),
+ ('text1', 'style', 'opacity', 0)
+ )
+
+ # 2 sec blank
+ frames = 2*fps
+ for i in range(0, frames):
+ yield (
+ ('text1', 'style', 'opacity', 0),
+ ('text2', 'style', 'opacity', 0)
+ )
+
+def debug():
+ render('intro.svg',
+ '../intro.ts',
+ introFrames,
+ {
+ '$id': 2404,
+ '$title': 'Linux Container im High Performance Computing',
+ '$subtitle': 'Vom Wal zur Singularität und weiter',
+ '$personnames': 'Holger Gantikow'
+ }
+ )
+
+ render('outro.svg',
+ '../outro.ts',
+ outroFrames
+ )
+
+
+def tasks(queue, args, idlist, skiplist):
+ # iterate over all events extracted from the schedule xml-export
+ for event in events(scheduleUrl):
+ if event['room'] not in ('Plenary (National Theatre)', 'Ronda Ballroom', 'Fortuna West', 'Fortuna East', 'Rapsodia Ballroom', 'Opera Room', 'Opereta Room', 'Simfonia','Menuet','Hora Room','Coral Room'):
+ print("skipping room %s (%s)" % (event['room'], event['title']))
+ continue
+
+ if (event['id'] in idlist or not idlist) and not 'intro' in skiplist:
+ # generate a task description and put them into the queue
+ queue.put(Rendertask(
+ infile = 'intro.svg',
+ outfile = str(event['id'])+".ts",
+ sequence = introFrames,
+ parameters = {
+ '$id': event['id'],
+ '$title': event['title'],
+# '$subtitle': event['subtitle'],
+ '$personnames': event['personnames']
+ }
+ ))
+
+ if not 'outro' in skiplist:
+ # place a task for the outro into the queue
+ queue.put(Rendertask(
+ infile = 'outro.svg',
+ outfile = 'outro.ts',
+ sequence = outroFrames
+ ))
+
+ if not 'pause' in skiplist:
+ # place a task for the pause into the queue
+ queue.put(Rendertask(
+ infile = 'pause.svg',
+ outfile = 'pause.ts',
+ sequence = pauseFrames
+ ))
diff --git a/foss4g-2019/artwork/Icon b/foss4g-2019/artwork/Icon
new file mode 100644
index 0000000..e69de29
diff --git a/foss4g-2019/artwork/backdrop_bucharest.png b/foss4g-2019/artwork/backdrop_bucharest.png
new file mode 100755
index 0000000..f3efd3b
Binary files /dev/null and b/foss4g-2019/artwork/backdrop_bucharest.png differ
diff --git a/foss4g-2019/artwork/intro.svg b/foss4g-2019/artwork/intro.svg
new file mode 100755
index 0000000..9650ccd
--- /dev/null
+++ b/foss4g-2019/artwork/intro.svg
@@ -0,0 +1,187 @@
+
+
+
+
diff --git a/foss4g-2019/artwork/intro_background_bucharest.png b/foss4g-2019/artwork/intro_background_bucharest.png
new file mode 100755
index 0000000..2045ffa
Binary files /dev/null and b/foss4g-2019/artwork/intro_background_bucharest.png differ
diff --git a/foss4g-2019/artwork/other_files/BACKDROP/BACKDROP Bucharest.png b/foss4g-2019/artwork/other_files/BACKDROP/BACKDROP Bucharest.png
new file mode 100755
index 0000000..f3efd3b
Binary files /dev/null and b/foss4g-2019/artwork/other_files/BACKDROP/BACKDROP Bucharest.png differ
diff --git a/foss4g-2019/artwork/other_files/BACKDROP/BACKDROP LAYERS.psd b/foss4g-2019/artwork/other_files/BACKDROP/BACKDROP LAYERS.psd
new file mode 100755
index 0000000..428ed8d
Binary files /dev/null and b/foss4g-2019/artwork/other_files/BACKDROP/BACKDROP LAYERS.psd differ
diff --git a/foss4g-2019/artwork/other_files/BACKDROP/BACKGROUND Bucharest.png b/foss4g-2019/artwork/other_files/BACKDROP/BACKGROUND Bucharest.png
new file mode 100755
index 0000000..834c137
Binary files /dev/null and b/foss4g-2019/artwork/other_files/BACKDROP/BACKGROUND Bucharest.png differ
diff --git a/foss4g-2019/artwork/other_files/BACKDROP/Icon b/foss4g-2019/artwork/other_files/BACKDROP/Icon
new file mode 100644
index 0000000..e69de29
diff --git a/foss4g-2019/artwork/other_files/BACKDROP/LOGO FOSS4G.png b/foss4g-2019/artwork/other_files/BACKDROP/LOGO FOSS4G.png
new file mode 100755
index 0000000..509b3cc
Binary files /dev/null and b/foss4g-2019/artwork/other_files/BACKDROP/LOGO FOSS4G.png differ
diff --git a/foss4g-2019/artwork/other_files/BACKDROP/backdrop semple.png b/foss4g-2019/artwork/other_files/BACKDROP/backdrop semple.png
new file mode 100755
index 0000000..80aa59f
Binary files /dev/null and b/foss4g-2019/artwork/other_files/BACKDROP/backdrop semple.png differ
diff --git a/foss4g-2019/artwork/other_files/INTRO/INTRO FOSS4G 2019 semple with TEXT.png b/foss4g-2019/artwork/other_files/INTRO/INTRO FOSS4G 2019 semple with TEXT.png
new file mode 100755
index 0000000..690e6db
Binary files /dev/null and b/foss4g-2019/artwork/other_files/INTRO/INTRO FOSS4G 2019 semple with TEXT.png differ
diff --git a/foss4g-2019/artwork/other_files/INTRO/INTRO FOSS4G 2019 semple.png b/foss4g-2019/artwork/other_files/INTRO/INTRO FOSS4G 2019 semple.png
new file mode 100755
index 0000000..2045ffa
Binary files /dev/null and b/foss4g-2019/artwork/other_files/INTRO/INTRO FOSS4G 2019 semple.png differ
diff --git a/foss4g-2019/artwork/other_files/INTRO/INTRO FOSS4G 2019.psd b/foss4g-2019/artwork/other_files/INTRO/INTRO FOSS4G 2019.psd
new file mode 100755
index 0000000..7ad3aab
Binary files /dev/null and b/foss4g-2019/artwork/other_files/INTRO/INTRO FOSS4G 2019.psd differ
diff --git a/foss4g-2019/artwork/other_files/INTRO/Icon b/foss4g-2019/artwork/other_files/INTRO/Icon
new file mode 100644
index 0000000..e69de29
diff --git a/foss4g-2019/artwork/other_files/OUTRO/Icon b/foss4g-2019/artwork/other_files/OUTRO/Icon
new file mode 100644
index 0000000..e69de29
diff --git a/foss4g-2019/artwork/other_files/OUTRO/outro BACKGROUND Bucharest.png b/foss4g-2019/artwork/other_files/OUTRO/outro BACKGROUND Bucharest.png
new file mode 100755
index 0000000..9999bed
Binary files /dev/null and b/foss4g-2019/artwork/other_files/OUTRO/outro BACKGROUND Bucharest.png differ
diff --git a/foss4g-2019/artwork/other_files/OUTRO/outro C3VOC.png b/foss4g-2019/artwork/other_files/OUTRO/outro C3VOC.png
new file mode 100755
index 0000000..d3ca371
Binary files /dev/null and b/foss4g-2019/artwork/other_files/OUTRO/outro C3VOC.png differ
diff --git a/foss4g-2019/artwork/other_files/OUTRO/outro DEUTSCHLAND.png b/foss4g-2019/artwork/other_files/OUTRO/outro DEUTSCHLAND.png
new file mode 100755
index 0000000..616322d
Binary files /dev/null and b/foss4g-2019/artwork/other_files/OUTRO/outro DEUTSCHLAND.png differ
diff --git a/foss4g-2019/artwork/other_files/OUTRO/outro FOSS4G.png b/foss4g-2019/artwork/other_files/OUTRO/outro FOSS4G.png
new file mode 100755
index 0000000..aece7a8
Binary files /dev/null and b/foss4g-2019/artwork/other_files/OUTRO/outro FOSS4G.png differ
diff --git a/foss4g-2019/artwork/other_files/OUTRO/outro video FOSS4G leyers.psd b/foss4g-2019/artwork/other_files/OUTRO/outro video FOSS4G leyers.psd
new file mode 100755
index 0000000..133f1a1
Binary files /dev/null and b/foss4g-2019/artwork/other_files/OUTRO/outro video FOSS4G leyers.psd differ
diff --git a/foss4g-2019/artwork/outro BACKGROUND Bucharest.png b/foss4g-2019/artwork/outro BACKGROUND Bucharest.png
new file mode 100755
index 0000000..9999bed
Binary files /dev/null and b/foss4g-2019/artwork/outro BACKGROUND Bucharest.png differ
diff --git a/foss4g-2019/artwork/outro C3VOC.png b/foss4g-2019/artwork/outro C3VOC.png
new file mode 100755
index 0000000..d3ca371
Binary files /dev/null and b/foss4g-2019/artwork/outro C3VOC.png differ
diff --git a/foss4g-2019/artwork/outro DEUTSCHLAND.png b/foss4g-2019/artwork/outro DEUTSCHLAND.png
new file mode 100755
index 0000000..616322d
Binary files /dev/null and b/foss4g-2019/artwork/outro DEUTSCHLAND.png differ
diff --git a/foss4g-2019/artwork/outro FOSS4G.png b/foss4g-2019/artwork/outro FOSS4G.png
new file mode 100755
index 0000000..aece7a8
Binary files /dev/null and b/foss4g-2019/artwork/outro FOSS4G.png differ
diff --git a/foss4g-2019/artwork/outro.svg b/foss4g-2019/artwork/outro.svg
new file mode 100755
index 0000000..1bb38b4
--- /dev/null
+++ b/foss4g-2019/artwork/outro.svg
@@ -0,0 +1,185 @@
+
+
+
+
diff --git a/foss4g-2019/artwork/pause.svg b/foss4g-2019/artwork/pause.svg
new file mode 100755
index 0000000..5ca454a
--- /dev/null
+++ b/foss4g-2019/artwork/pause.svg
@@ -0,0 +1,189 @@
+
+
+
+