diff --git a/show/dance2019/deviceClass.n3 b/show/dance2019/deviceClass.n3
new file mode 100644
--- /dev/null
+++ b/show/dance2019/deviceClass.n3
@@ -0,0 +1,89 @@
+@prefix : .
+@prefix rdfs: .
+
+:color a :DeviceAttr; rdfs:label "color"; :dataType :color .
+:rx a :DeviceAttr; rdfs:label "rx"; :dataType :angle .
+:ry a :DeviceAttr; rdfs:label "ry"; :dataType :angle .
+:uv a :DeviceAttr; rdfs:label "uv"; :dataType :scalar .
+:brightness a :DeviceAttr; rdfs:label "brightness"; :dataType :scalar .
+:zoom a :DeviceAttr; rdfs:label "zoom"; :dataType :scalar ;
+ rdfs:comment "maybe make this a separate 'wide to narrow' type" .
+:focus a :DeviceAttr; rdfs:label "focus"; :dataType :scalar .
+:iris a :DeviceAttr; rdfs:label "iris"; :dataType :scalar .
+:prism a :DeviceAttr; rdfs:label "prism"; :dataType :scalar .
+:strobe a :DeviceAttr; rdfs:label "strobe"; :dataType :scalar;
+ rdfs:comment "0=none, 1=fastest" .
+:goboSpeed a :DeviceAttr; rdfs:label "goboSpeed"; :dataType :scalar ;
+ rdfs:comment "0=stopped, 1=rotate the fastest".
+:quantumGoboChoice a :DeviceAttr; rdfs:label "gobo"; :dataType :choice;
+ :choice :spider, :windmill, :limbo, :brush, :whirlpool, :stars .
+:mini15GoboChoice a :DeviceAttr; rdfs:label "gobo"; :dataType :choice;
+ :choice :mini15Gobo1, :mini15Gobo2, :mini15Gobo3, :mini15Gobo4, :mini15Gobo5, :mini15Gobo6, :mini15Gobo7, :mini15Gobo8, :mini15Gobo9, :mini15Gobo10 .
+
+:goboShake a :DeviceAttr; rdfs:label "goboShake"; :dataType :scalar .
+
+:mini15Gobo1 :value 3 .
+:mini15Gobo2 :value 10 .
+:mini15Gobo3 :value 18 .
+:mini15Gobo4 :value 26 .
+:mini15Gobo5 :value 34 .
+:mini15Gobo6 :value 42 .
+:mini15Gobo7 :value 50 .
+:mini15Gobo8 :value 58 .
+:mini15Gobo9 :value 66 .
+:mini15Gobo10 :value 74 .
+
+:SimpleDimmer a :DeviceClass; rdfs:label "SimpleDimmer";
+ :deviceAttr :brightness;
+ :attr
+ [ :outputAttr :level; :dmxOffset 0 ] .
+
+:Bar612601 a :DeviceClass; rdfs:label "LED Bar (mode d)";
+ :deviceAttr :color;
+ :attr
+ [ :outputAttr :red; :dmxOffset 0 ],
+ [ :outputAttr :green; :dmxOffset 1 ],
+ [ :outputAttr :blue; :dmxOffset 2 ] .
+
+:ChauvetColorStrip a :DeviceClass; rdfs:label "ChauvetColorStrip";
+ :deviceAttr :color;
+ :attr
+ [ :outputAttr :mode; :dmxOffset 0 ],
+ [ :outputAttr :red; :dmxOffset 1 ],
+ [ :outputAttr :green; :dmxOffset 2 ],
+ [ :outputAttr :blue; :dmxOffset 3 ] .
+
+:Mini15 a :DeviceClass; rdfs:label "Mini15";
+ :deviceAttr :color, :rx, :ry, :mini15GoboChoice, :goboShake ;
+ :attr
+ [ :outputAttr :xRotation; :dmxOffset 0 ],
+ [ :outputAttr :xFine; :dmxOffset 1 ],
+ [ :outputAttr :yRotation; :dmxOffset 2 ],
+ [ :outputAttr :yFine; :dmxOffset 3 ],
+ [ :outputAttr :rotationSpeed; :dmxOffset 4 ],
+ [ :outputAttr :dimmer; :dmxOffset 5 ],
+ [ :outputAttr :red; :dmxOffset 6 ],
+ [ :outputAttr :green; :dmxOffset 7 ],
+ [ :outputAttr :blue; :dmxOffset 8 ],
+ [ :outputAttr :colorChange; :dmxOffset 9 ],
+ [ :outputAttr :colorSpeed; :dmxOffset 10 ],
+ [ :outputAttr :goboShake; :dmxOffset 11 ],
+ [ :outputAttr :goboChoose; :dmxOffset 12 ] .
+
+:Source4LedSeries2 a :DeviceClass; rdfs:label "Source4LedSeries2";
+ :docs ;
+ :deviceAttr :color;
+ :attr
+ [ :dmxOffset 0; :outputAttr :red ],
+ [ :dmxOffset 1; :outputAttr :green ],
+ [ :dmxOffset 2; :outputAttr :blue ],
+ [ :dmxOffset 4; :outputAttr :strobe ],
+ [ :dmxOffset 7; :outputAttr :fixed255 ],
+ [ :dmxOffset 8; :outputAttr :fixed128_0 ],
+ [ :dmxOffset 9; :outputAttr :fixed128_1 ],
+ [ :dmxOffset 10; :outputAttr :fixed128_2 ],
+ [ :dmxOffset 11; :outputAttr :fixed128_3 ],
+ [ :dmxOffset 12; :outputAttr :fixed128_4 ],
+ [ :dmxOffset 13; :outputAttr :fixed128_5 ],
+ [ :dmxOffset 14; :outputAttr :fixed128_6 ] .
+
diff --git a/show/dance2019/playlist.n3 b/show/dance2019/playlist.n3
new file mode 100644
--- /dev/null
+++ b/show/dance2019/playlist.n3
@@ -0,0 +1,70 @@
+@prefix : .
+@prefix show: .
+@prefix sh: .
+@prefix rdf: .
+@prefix rdfs: .
+
+show:dance2019 :musicRoot "show/dance2019/music/pad";
+:spectrogramUrlRoot "/show/dance2019/spectrogram" .
+
+show:dance2019 :playList (
+ sh:song1 sh:song2 sh:song3 sh:song4 sh:song5
+ sh:song6 sh:song7 sh:song8 sh:song9 sh:song10
+ sh:song11 sh:song12 sh:song13 sh:song14 sh:song15
+ sh:song16 sh:song17
+) .
+
+sh:song1 a :Song; rdfs:label "01"; :songFilename "01.wav" .
+sh:song2 a :Song; rdfs:label "02"; :songFilename "02_dancing_happy.wav" .
+sh:song3 a :Song; rdfs:label "03"; :songFilename "03-mix.wav" .
+sh:song4 a :Song; rdfs:label "04"; :songFilename "04-trickle.wav" .
+sh:song5 a :Song; rdfs:label "05"; :songFilename "05-mix.wav" .
+sh:song6 a :Song; rdfs:label "06"; :songFilename "06-mix.wav" .
+sh:song7 a :Song; rdfs:label "07"; :songFilename "07.wav" .
+sh:song8 a :Song; rdfs:label "08"; :songFilename "08-mix.wav" .
+sh:song9 a :Song; rdfs:label "09"; :songFilename "09.wav" .
+sh:song10 a :Song; rdfs:label "10"; :songFilename "10mix.wav" .
+sh:song11 a :Song; rdfs:label "11"; :songFilename "11-mix.wav" .
+sh:song12 a :Song; rdfs:label "12"; :songFilename "12_tie_a_yellow_ribbon.wav" .
+sh:song13 a :Song; rdfs:label "13"; :songFilename "13.wav" .
+sh:song14 a :Song; rdfs:label "14"; :songFilename "14.wav" .
+sh:song15 a :Song; rdfs:label "15"; :songFilename "15-mix.wav" .
+sh:song16 a :Song; rdfs:label "16"; :songFilename "16-mix.wav" .
+sh:song17 a :Song; rdfs:label "17"; :songFilename "17-mix.wav" .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/show/dance2019/theaterLightConfig.n3 b/show/dance2019/theaterLightConfig.n3
new file mode 100644
--- /dev/null
+++ b/show/dance2019/theaterLightConfig.n3
@@ -0,0 +1,120 @@
+@prefix : .
+@prefix rdfs: .
+@prefix dev: .
+@prefix dmxA: .
+@prefix dmxB: .
+
+dev:colorStrip a :ChauvetColorStrip; :dmxUniverse dmxA:; :dmxBase 50 .
+dev:moving1 a :Mini15; :dmxUniverse dmxA:; :dmxBase 110 .
+dev:moving1 :outputAttrRange dev:moving1rx . dev:moving1rx :outputAttr :rx; :start 0; :end 540 .
+dev:moving1 :outputAttrRange dev:moving1ry . dev:moving1ry :outputAttr :ry; :start 0; :end 240 .
+
+dev:aura1 a :MacAura; :dmxUniverse dmxB:; :dmxBase 406 .
+dev:aura1 :outputAttrRange dev:aura1rx . dev:aura1rx :outputAttr :rx; :start 0.145; :end 0.275 .
+dev:aura1 :outputAttrRange dev:aura1ry . dev:aura1ry :outputAttr :ry; :start 0.239; :end 0.153 .
+
+dev:strip1 a :Bar612601; :dmxUniverse dmxA:; :dmxBase 1 .
+
+dev:cycRed1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 83 .
+dev:cycRed2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 80 .
+dev:cycRed3 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 77 .
+dev:cycRed4 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 74 .
+dev:cycGreen1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 82 .
+dev:cycGreen2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 79 .
+dev:cycGreen3 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 76 .
+dev:cycGreen4 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 73 .
+dev:cycBlue1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 81 .
+dev:cycBlue2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 78 .
+dev:cycBlue3 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 75 .
+dev:cycBlue4 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 69 .
+dev:stripG1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 94 .
+dev:stripA2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 97 .
+dev:stripA1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 99 .
+dev:stripR1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 100 .
+dev:stripB1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 101 .
+dev:stripR2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 102 .
+dev:stripG2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 103 .
+dev:stripB2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 104 .
+#dev:spotRight a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 4 .
+#dev:spotLeft a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 8 .
+#dev:downEdge5 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 2 .
+#dev:down4 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 3 .
+#dev:down3 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 6 .
+#dev:down2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 7 .
+dev:downEdge1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 10 .
+dev:mid5 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 13 .
+dev:mid3 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 15 .
+dev:mid1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 17 .
+dev:downEdge5Big a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 18 .
+dev:mid4Weak a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 20 .
+dev:mid2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 22 .
+dev:mid4 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 24 .
+dev:sideLeft a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 26 .
+dev:leftPatio a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 29 .
+dev:up1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 28 .
+dev:up3Blue a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 30 .
+dev:upHigh3Blue a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 31 .
+dev:mid3Blue a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 32 .
+dev:up1Pink a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 27 .
+dev:washRedDown a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 36 .
+dev:washGreenDown a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 37 .
+dev:washBlueDown a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 47 .
+dev:washBlue3 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 57 .
+dev:washRed3 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 54 .
+dev:washGreen3 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 55 .
+dev:washBlueUp a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 56 .
+dev:washUp a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 57 .
+dev:washRed2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 58 .
+dev:washPink2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 59 .
+dev:washGreen2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 60 .
+dev:washBlue2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 61 .
+dev:washRed1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 62 .
+dev:washMagenta1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 63 .
+dev:washGreen1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 64 .
+dev:washBlue1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 65 .
+dev:blacklight1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 111 .
+dev:blacklight2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 112 .
+dev:pool4 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 35 .
+dev:scroller3 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 38 .
+dev:scroller2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 41 .
+dev:pool3 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 42 .
+dev:pool1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 45 .
+dev:scroller3Color a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 230 .
+dev:scroller2Color a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 231 .
+dev:scroller1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 46 .
+dev:goboWindow a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 48 .
+dev:strobeRight a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 53 .
+dev:strobeLeft a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 66 .
+dev:lowStage3 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 105 .
+dev:lowStage1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 106 .
+dev:lowStage2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 107 .
+dev:lowStage4 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 108 .
+dev:workCyc a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 146 .
+dev:sky1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 114 .
+dev:sky2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 113 .
+dev:houseUp1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 139 .
+dev:houseUp2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 140 .
+dev:houseUp3 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 141 .
+dev:houseUp4 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 142 .
+dev:houseUp5 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 143 .
+dev:houseUp6 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 144 .
+dev:houseBack1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 131 .
+dev:houseBack2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 132 .
+dev:houseBack3 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 133 .
+dev:houseBack4 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 134 .
+dev:houseBack5 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 135 .
+dev:houseBack6 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 136 .
+dev:houseBack7 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 137 .
+dev:houseBack8 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 138 .
+dev:houseFront1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 119 .
+dev:houseFront2 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 120 .
+dev:houseFront3 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 121 .
+dev:houseFront4 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 122 .
+dev:houseFront5 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 123 .
+dev:houseFront6 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 124 .
+dev:houseFront7 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 125 .
+dev:houseFront8 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 126 .
+dev:houseFront9 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 127 .
+dev:houseFront10 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 128 .
+dev:houseFront11 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 129 .
+dev:houseFront12 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 130 .