# HG changeset patch
# User drewp@bigasterisk.com
# Date 2010-06-08 06:48:25
# Node ID fd4f06a93c95bbbdc6da661877198b8e96c1e56c
# Parent c10e671adc2c8ab428576682e9e121b8b5db2c5a
start 2010 show
Ignore-this: e50fb61985226922b124ce1f50c73fee
diff --git a/show/dance2010/config.n3 b/show/dance2010/config.n3
new file mode 100644
--- /dev/null
+++ b/show/dance2010/config.n3
@@ -0,0 +1,194 @@
+@prefix : .
+@prefix ch: .
+@prefix chase: .
+@prefix dmx: .
+@prefix group: .
+@prefix mus: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix sh: .
+@prefix show: .
+@prefix sub: .
+
+mus:preSong :showPath "dance2008/silence-4sec.ogg" .
+mus:postSong :showPath "dance2008/silence-15sec.ogg" .
+
+show:dance2010 :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
+) .
+
+:Song is rdf:type of 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 rdfs:label "1 chorus"; :showPath "dance2010/01-chorusmix.wav" .
+sh:song2 rdfs:label "2 dolly"; :showPath "dance2010/02-dolly.wav" .
+sh:song3 rdfs:label "3 opposites"; :showPath "dance2010/03-oppositesmix.wav" .
+sh:song4 rdfs:label "4 top hat"; :showPath "dance2010/04-tophat.wav" .
+sh:song5 rdfs:label "5 temple"; :showPath "dance2010/05-temple.wav" .
+sh:song6 rdfs:label "6 "; :showPath "dance2010/06-contemporarymix.wav" .
+sh:song7 rdfs:label "7 jackson"; :showPath "dance2010/07-jacksonmix.wav" .
+sh:song8 rdfs:label "8 singing"; :showPath "dance2010/08-singingmix.wav" .
+sh:song9 rdfs:label "9 abc"; :showPath "dance2010/09-abc.wav" .
+sh:song10 rdfs:label "10 ritz"; :showPath "dance2010/10-ritz.wav" .
+sh:song11 rdfs:label "11 "; :showPath "dance2010/11-blackmix.wav" .
+sh:song12 rdfs:label "12 eleanor"; :showPath "dance2010/12-eleanor.wav" .
+sh:song13 rdfs:label "13 "; :showPath "dance2010/13-sleepingmix.wav" .
+sh:song14 rdfs:label "14 charity"; :showPath "dance2010/14-charitymix.wav" .
+sh:song15 rdfs:label "15 fosse"; :showPath "dance2010/15-fossemix.wav" .
+sh:song16 rdfs:label "16 hip hop"; :showPath "dance2010/16-hiphopmix.wav" .
+sh:song17 rdfs:label "17 broadway"; :showPath "dance2010/17-broadwaymix.wav" .
+
+sub:red :group group:strip; :order 0 .
+sub:orange :group group:strip; :order 1 .
+sub:green :group group:strip; :order 2 .
+sub:blue :group group:strip; :order 3.
+
+sub:sharlyn :group group:live; :order 1 .
+sub:cyc :group group:live; :order 2 .
+sub:house :group group:live; :order 3 .
+sub:scoop :group group:live; :order 4 .
+sub:front :group group:live; :order 5 .
+sub:curtain :group group:live; :order 6 .
+
+sub:scoop :color "#ffaa77" .
+
+sub:song1 :group group:song; :order 1 .
+sub:song2 :group group:song; :order 2 .
+sub:song3 :group group:song; :order 3 .
+sub:song4 :group group:song; :order 4 .
+sub:song5 :group group:song; :order 5 .
+sub:song6 :group group:song; :order 6 .
+sub:song7 :group group:song; :order 7 .
+sub:song8 :group group:song; :order 8 .
+sub:song9 :group group:song; :order 9 .
+sub:song10 :group group:song; :order 10 .
+sub:song11 :group group:song; :order 11 .
+sub:song12 :group group:song; :order 12 .
+sub:song13 :group group:song; :order 13 .
+sub:song14 :group group:song; :order 14 .
+sub:song15 :group group:song; :order 15 .
+sub:song16 :group group:song; :order 16 .
+sub:song17 :group group:song; :order 17 .
+
+group:brow is :group of
+sub:bblue, sub:bblueall, sub:bneutral, sub:bpurple, sub:bpurpleall, sub:bpurplec,
+ sub:bred, sub:bredall .
+
+
+chase:colors a :Chase; :channels (
+ch:oran1 ch:gree1 ch:blue1 ch:red1
+ch:oran2 ch:gree2 ch:blue2 ch:red2
+ch:oran3 ch:gree2 ch:blue2 ch:red2
+ch:oran4 ) .
+
+chase:colors1 a :Chase; :channels (ch:red1 ch:gree1 ch:oran1 ch:blue1) .
+chase:colors2 a :Chase; :channels (ch:red2 ch:gree2 ch:oran2 ch:blue2) .
+chase:colors3 a :Chase; :channels (ch:red3 ch:gree3 ch:oran3 ch:blue3) .
+chase:colors4 a :Chase; :channels (ch:red4 ch:gree4 ch:oran4 ch:blue4) .
+
+chase:back a :Chase; :channels (
+ch:b15-p
+ch:b13-b
+ch:b12-r
+ch:b21-p
+ch:b22-b
+ch:b23-b
+ch:b24-b
+ch:b25-r
+ch:b33-r
+ch:b34-b
+ch:b35-p
+) .
+
+chase:cycline a :Chase; :channels (ch:cyc-left ch:cyc-mid ch:cyc-right ) .
+chase:cycpong a :Chase; :channels (ch:cyc-left ch:cyc-mid ch:cyc-right ch:cyc-mid) .
+
+
+
+
+
+#ch:b26 :previewLayer [ :path "lightsim/skyline/front-left.png" ] .
+#ch:front11 :previewLayer [ :path "lightsim/skyline/front-right.png" ] .
+#ch:house1 :previewLayer [ :path "lightsim/skyline/bg.png" ] .
+#ch:gree1 :previewLayer [ :path "lightsim/skyline/cyc-lo-grn.png" ] .
+#ch:oran1 :previewLayer [ :path "lightsim/skyline/cyc-lo-or.png" ] .
+#ch:red1 :previewLayer [ :path "lightsim/skyline/cyc-lo-red.png" ] .
+#ch:blue1 :previewLayer [ :path "lightsim/skyline/cyc-lo-blu.png" ]; rdfs:comment "(image is blank)".
+
+dmx:c1 :dmxAddress 1 .
+dmx:c2 :dmxAddress 2 .
+dmx:c3 :dmxAddress 3 .
+dmx:c4 :dmxAddress 4 .
+dmx:c5 :dmxAddress 5 .
+dmx:c6 :dmxAddress 6 .
+dmx:c7 :dmxAddress 7 .
+dmx:c8 :dmxAddress 8 .
+dmx:c9 :dmxAddress 9 .
+dmx:c10 :dmxAddress 10 .
+dmx:c11 :dmxAddress 11 .
+dmx:c12 :dmxAddress 12 .
+dmx:c13 :dmxAddress 13 .
+dmx:c14 :dmxAddress 14 .
+dmx:c15 :dmxAddress 15 .
+dmx:c16 :dmxAddress 16 .
+dmx:c17 :dmxAddress 17 .
+dmx:c18 :dmxAddress 18 .
+dmx:c19 :dmxAddress 19 .
+dmx:c20 :dmxAddress 20 .
+dmx:c21 :dmxAddress 21 .
+dmx:c22 :dmxAddress 22 .
+dmx:c23 :dmxAddress 23 .
+dmx:c24 :dmxAddress 24 .
+dmx:c25 :dmxAddress 25 .
+dmx:c26 :dmxAddress 26 .
+dmx:c27 :dmxAddress 27 .
+dmx:c28 :dmxAddress 28 .
+dmx:c29 :dmxAddress 29 .
+dmx:c30 :dmxAddress 30 .
+dmx:c31 :dmxAddress 31 .
+dmx:c32 :dmxAddress 32 .
+dmx:c33 :dmxAddress 33 .
+dmx:c34 :dmxAddress 34 .
+dmx:c35 :dmxAddress 35 .
+dmx:c36 :dmxAddress 36 .
+dmx:c37 :dmxAddress 37 .
+dmx:c38 :dmxAddress 38 .
+dmx:c39 :dmxAddress 39 .
+dmx:c40 :dmxAddress 40 .
+dmx:c41 :dmxAddress 41 .
+dmx:c42 :dmxAddress 42 .
+dmx:c43 :dmxAddress 43 .
+dmx:c44 :dmxAddress 44 .
+dmx:c45 :dmxAddress 45 .
+dmx:c46 :dmxAddress 46 .
+dmx:c47 :dmxAddress 47 .
+dmx:c48 :dmxAddress 48 .
+dmx:c49 :dmxAddress 49 .
+dmx:c50 :dmxAddress 50 .
+dmx:c51 :dmxAddress 51 .
+dmx:c52 :dmxAddress 52 .
+dmx:c53 :dmxAddress 53 .
+dmx:c54 :dmxAddress 54 .
+dmx:c55 :dmxAddress 55 .
+dmx:c56 :dmxAddress 56 .
+dmx:c57 :dmxAddress 57 .
+dmx:c58 :dmxAddress 58 .
+dmx:c59 :dmxAddress 59 .
+dmx:c60 :dmxAddress 60 .
+dmx:c61 :dmxAddress 61 .
+dmx:c62 :dmxAddress 62 .
+dmx:c63 :dmxAddress 63 .
+dmx:c64 :dmxAddress 64 .
+dmx:c65 :dmxAddress 65 .
+dmx:c66 :dmxAddress 66 .
+dmx:c67 :dmxAddress 67 .
+dmx:c68 :dmxAddress 68 .
+dmx:c69 :dmxAddress 69 .
+dmx:c70 :dmxAddress 70 .
+dmx:c71 :dmxAddress 71 .
+dmx:c72 :dmxAddress 72 .
diff --git a/show/dance2010/makefile b/show/dance2010/makefile
new file mode 100644
--- /dev/null
+++ b/show/dance2010/makefile
@@ -0,0 +1,2 @@
+patch.n3: patch-source.n3 patch-rules.n3
+ python2.5 `which cwm` patch-source.n3 --filter=patch-rules.n3 --n3=/ > patch.n3
\ No newline at end of file
diff --git a/show/dance2010/patch-rules.n3 b/show/dance2010/patch-rules.n3
new file mode 100644
--- /dev/null
+++ b/show/dance2010/patch-rules.n3
@@ -0,0 +1,18 @@
+@prefix ch: .
+@prefix dmx: .
+@prefix rdfs: .
+@prefix l9: .
+@prefix log: .
+@prefix string: .
+
+@prefix prep: .
+
+{
+ [prep:name ?name; prep:output ?c] .
+
+ ch: log:uri ?channelNamespace .
+ (?channelNamespace ?name) string:concatenation ?uriString .
+ ?chanUri log:uri ?uriString .
+} => {
+ ?chanUri a l9:Channel; rdfs:label ?name; l9:output ?c .
+} .
diff --git a/show/dance2010/patch-source.n3 b/show/dance2010/patch-source.n3
new file mode 100644
--- /dev/null
+++ b/show/dance2010/patch-source.n3
@@ -0,0 +1,82 @@
+@prefix : .
+@prefix dmx: .
+
+# build with:
+# python2.5 =cwm patch-source.n3 --filter=patch-rules.n3 --n3=/ > patch.n3
+# python2.5 =cwm show/dance2009/patch-source.n3 --filter=show/dance2009/patch-rules.n3 --n3=/ > show/dance2009/patch.n3
+[ :name "oran1"; :output dmx:c21 ] .
+[ :name "oran2"; :output dmx:c25 ] .
+[ :name "oran3"; :output dmx:c29 ] .
+[ :name "oran4"; :output dmx:c33 ] .
+[ :name "gree1"; :output dmx:c22 ] .
+[ :name "gree2"; :output dmx:c26 ] .
+[ :name "gree3"; :output dmx:c30 ] .
+[ :name "gree4"; :output dmx:c34 ] .
+[ :name "blue1"; :output dmx:c23 ] .
+[ :name "blue2"; :output dmx:c27 ] .
+[ :name "blue3"; :output dmx:c31 ] .
+[ :name "blue4"; :output dmx:c35 ] .
+[ :name "red1"; :output dmx:c24 ] .
+[ :name "red2"; :output dmx:c28 ] .
+[ :name "red3"; :output dmx:c32 ] .
+[ :name "red4"; :output dmx:c36 ] .
+[ :name "upright"; :output dmx:c37 ] .
+[ :name "upcenter"; :output dmx:c38 ] .
+# 35 blue has a white in it too
+
+[ :name "b11"; :output dmx:c54 ] .
+[ :name "b12-r"; :output dmx:c53 ] .
+[ :name "b13-b"; :output dmx:c52 ] .
+[ :name "b14"; :output dmx:c51 ] .
+[ :name "b15-p"; :output dmx:c50 ] .
+[ :name "b16x"; :output dmx:c49 ] .
+[ :name "b21-p"; :output dmx:c55 ] .
+[ :name "b22-b"; :output dmx:c56 ] .
+[ :name "b23-b"; :output dmx:c57 ] .
+[ :name "b24-b"; :output dmx:c58 ] .
+[ :name "b25-r"; :output dmx:c59 ] .
+[ :name "b26x"; :output dmx:c60 ] .
+[ :name "b31"; :output dmx:c61 ] .
+[ :name "b32"; :output dmx:c62 ] .
+[ :name "b33-r"; :output dmx:c63 ] .
+[ :name "b34-b"; :output dmx:c64 ] .
+[ :name "b35-p"; :output dmx:c65 ] .
+[ :name "b36"; :output dmx:c66 ] .
+
+[ :name "post-l"; :output dmx:c45 ] .
+[ :name "post-r"; :output dmx:c46 ] .
+
+[ :name "s40"; :output dmx:c40 ] .
+[ :name "sign"; :output dmx:c41 ] .
+[ :name "front1x"; :output dmx:c1 ] .
+[ :name "front2"; :output dmx:c2 ] .
+[ :name "front3"; :output dmx:c3 ] .
+[ :name "front4"; :output dmx:c4 ] .
+[ :name "front5"; :output dmx:c5 ] .
+[ :name "front6"; :output dmx:c6 ] .
+[ :name "sharlyn"; :output dmx:c7 ] .
+[ :name "front8"; :output dmx:c8 ] .
+[ :name "front9"; :output dmx:c9 ] .
+[ :name "front10"; :output dmx:c10 ] .
+[ :name "front11"; :output dmx:c11 ] .
+[ :name "front12"; :output dmx:c12 ] .
+
+[ :name "down-l"; :output dmx:c13 ] .
+[ :name "strobe"; :output dmx:c14 ] .
+[ :name "blacklight"; :output dmx:c15 ] .
+[ :name "down-r"; :output dmx:c16 ] .
+[ :name "fr17"; :output dmx:c17 ] .
+[ :name "fr18"; :output dmx:c18 ] .
+[ :name "fr19"; :output dmx:c19 ] .
+[ :name "fr20"; :output dmx:c20 ] .
+
+[ :name "cyc-left"; :output dmx:c42 ] .
+[ :name "cyc-mid"; :output dmx:c43 ] .
+[ :name "cyc-right"; :output dmx:c44 ] .
+
+[ :name "house-side"; :output dmx:c68 ] .
+[ :name "house1"; :output dmx:c69 ] .
+[ :name "house4"; :output dmx:c70 ] .
+[ :name "house3"; :output dmx:c71 ] .
+[ :name "house2"; :output dmx:c72 ] .
+
diff --git a/show/dance2010/patch.n3 b/show/dance2010/patch.n3
new file mode 100644
--- /dev/null
+++ b/show/dance2010/patch.n3
@@ -0,0 +1,285 @@
+#Processed by Id: cwm.py,v 1.197 2007/12/13 15:38:39 syosi Exp
+ # using base file:///home/drewp/projects/light9/show/dance2009/patch-source.n3
+
+# Notation3 generation by
+# notation3.py,v 1.200 2007/12/11 21:18:08 syosi Exp
+
+# Base was: file:///home/drewp/projects/light9/show/dance2009/patch-source.n3
+ @prefix : .
+ @prefix ch: .
+ @prefix dmx: .
+ @prefix rdfs: .
+
+ ch:b11 a :Channel;
+ :output dmx:c54;
+ rdfs:label "b11" .
+
+ ch:b12-r a :Channel;
+ :output dmx:c53;
+ rdfs:label "b12-r" .
+
+ ch:b13-b a :Channel;
+ :output dmx:c52;
+ rdfs:label "b13-b" .
+
+ ch:b14 a :Channel;
+ :output dmx:c51;
+ rdfs:label "b14" .
+
+ ch:b15-p a :Channel;
+ :output dmx:c50;
+ rdfs:label "b15-p" .
+
+ ch:b16x a :Channel;
+ :output dmx:c49;
+ rdfs:label "b16x" .
+
+ ch:b21-p a :Channel;
+ :output dmx:c55;
+ rdfs:label "b21-p" .
+
+ ch:b22-b a :Channel;
+ :output dmx:c56;
+ rdfs:label "b22-b" .
+
+ ch:b23-b a :Channel;
+ :output dmx:c57;
+ rdfs:label "b23-b" .
+
+ ch:b24-b a :Channel;
+ :output dmx:c58;
+ rdfs:label "b24-b" .
+
+ ch:b25-r a :Channel;
+ :output dmx:c59;
+ rdfs:label "b25-r" .
+
+ ch:b26x a :Channel;
+ :output dmx:c60;
+ rdfs:label "b26x" .
+
+ ch:b31 a :Channel;
+ :output dmx:c61;
+ rdfs:label "b31" .
+
+ ch:b32 a :Channel;
+ :output dmx:c62;
+ rdfs:label "b32" .
+
+ ch:b33-r a :Channel;
+ :output dmx:c63;
+ rdfs:label "b33-r" .
+
+ ch:b34-b a :Channel;
+ :output dmx:c64;
+ rdfs:label "b34-b" .
+
+ ch:b35-p a :Channel;
+ :output dmx:c65;
+ rdfs:label "b35-p" .
+
+ ch:b36 a :Channel;
+ :output dmx:c66;
+ rdfs:label "b36" .
+
+ ch:blacklight a :Channel;
+ :output dmx:c15;
+ rdfs:label "blacklight" .
+
+ ch:blue1 a :Channel;
+ :output dmx:c23;
+ rdfs:label "blue1" .
+
+ ch:blue2 a :Channel;
+ :output dmx:c27;
+ rdfs:label "blue2" .
+
+ ch:blue3 a :Channel;
+ :output dmx:c31;
+ rdfs:label "blue3" .
+
+ ch:blue4 a :Channel;
+ :output dmx:c35;
+ rdfs:label "blue4" .
+
+ ch:cyc-left a :Channel;
+ :output dmx:c42;
+ rdfs:label "cyc-left" .
+
+ ch:cyc-mid a :Channel;
+ :output dmx:c43;
+ rdfs:label "cyc-mid" .
+
+ ch:cyc-right a :Channel;
+ :output dmx:c44;
+ rdfs:label "cyc-right" .
+
+ ch:down-l a :Channel;
+ :output dmx:c13;
+ rdfs:label "down-l" .
+
+ ch:down-r a :Channel;
+ :output dmx:c16;
+ rdfs:label "down-r" .
+
+ ch:fr17 a :Channel;
+ :output dmx:c17;
+ rdfs:label "fr17" .
+
+ ch:fr18 a :Channel;
+ :output dmx:c18;
+ rdfs:label "fr18" .
+
+ ch:fr19 a :Channel;
+ :output dmx:c19;
+ rdfs:label "fr19" .
+
+ ch:fr20 a :Channel;
+ :output dmx:c20;
+ rdfs:label "fr20" .
+
+ ch:front10 a :Channel;
+ :output dmx:c10;
+ rdfs:label "front10" .
+
+ ch:front11 a :Channel;
+ :output dmx:c11;
+ rdfs:label "front11" .
+
+ ch:front12 a :Channel;
+ :output dmx:c12;
+ rdfs:label "front12" .
+
+ ch:front1x a :Channel;
+ :output dmx:c1;
+ rdfs:label "front1x" .
+
+ ch:front2 a :Channel;
+ :output dmx:c2;
+ rdfs:label "front2" .
+
+ ch:front3 a :Channel;
+ :output dmx:c3;
+ rdfs:label "front3" .
+
+ ch:front4 a :Channel;
+ :output dmx:c4;
+ rdfs:label "front4" .
+
+ ch:front5 a :Channel;
+ :output dmx:c5;
+ rdfs:label "front5" .
+
+ ch:front6 a :Channel;
+ :output dmx:c6;
+ rdfs:label "front6" .
+
+ ch:front8 a :Channel;
+ :output dmx:c8;
+ rdfs:label "front8" .
+
+ ch:front9 a :Channel;
+ :output dmx:c9;
+ rdfs:label "front9" .
+
+ ch:gree1 a :Channel;
+ :output dmx:c22;
+ rdfs:label "gree1" .
+
+ ch:gree2 a :Channel;
+ :output dmx:c26;
+ rdfs:label "gree2" .
+
+ ch:gree3 a :Channel;
+ :output dmx:c30;
+ rdfs:label "gree3" .
+
+ ch:gree4 a :Channel;
+ :output dmx:c34;
+ rdfs:label "gree4" .
+
+ ch:house-side a :Channel;
+ :output dmx:c68;
+ rdfs:label "house-side" .
+
+ ch:house1 a :Channel;
+ :output dmx:c69;
+ rdfs:label "house1" .
+
+ ch:house2 a :Channel;
+ :output dmx:c72;
+ rdfs:label "house2" .
+
+ ch:house3 a :Channel;
+ :output dmx:c71;
+ rdfs:label "house3" .
+
+ ch:house4 a :Channel;
+ :output dmx:c70;
+ rdfs:label "house4" .
+
+ ch:oran1 a :Channel;
+ :output dmx:c21;
+ rdfs:label "oran1" .
+
+ ch:oran2 a :Channel;
+ :output dmx:c25;
+ rdfs:label "oran2" .
+
+ ch:oran3 a :Channel;
+ :output dmx:c29;
+ rdfs:label "oran3" .
+
+ ch:oran4 a :Channel;
+ :output dmx:c33;
+ rdfs:label "oran4" .
+
+ ch:post-l a :Channel;
+ :output dmx:c45;
+ rdfs:label "post-l" .
+
+ ch:post-r a :Channel;
+ :output dmx:c46;
+ rdfs:label "post-r" .
+
+ ch:red1 a :Channel;
+ :output dmx:c24;
+ rdfs:label "red1" .
+
+ ch:red2 a :Channel;
+ :output dmx:c28;
+ rdfs:label "red2" .
+
+ ch:red3 a :Channel;
+ :output dmx:c32;
+ rdfs:label "red3" .
+
+ ch:red4 a :Channel;
+ :output dmx:c36;
+ rdfs:label "red4" .
+
+ ch:s40 a :Channel;
+ :output dmx:c40;
+ rdfs:label "s40" .
+
+ ch:sharlyn a :Channel;
+ :output dmx:c7;
+ rdfs:label "sharlyn" .
+
+ ch:sign a :Channel;
+ :output dmx:c41;
+ rdfs:label "sign" .
+
+ ch:strobe a :Channel;
+ :output dmx:c14;
+ rdfs:label "strobe" .
+
+ ch:upcenter a :Channel;
+ :output dmx:c38;
+ rdfs:label "upcenter" .
+
+ ch:upright a :Channel;
+ :output dmx:c37;
+ rdfs:label "upright" .
+
+#ENDS
diff --git a/show/dance2010/readme b/show/dance2010/readme
new file mode 100644
--- /dev/null
+++ b/show/dance2010/readme
@@ -0,0 +1,30 @@
+for local testing on plus:
+
+sudo -u mpd -s
+export LD_LIBRARY_PATH=/home/drewp/score
+./mpd --no-daemon
+
+fix networking.py to look for player on plus
+
+PYTHONPATH=../pympd bin/ascoltami --show http://light9.bigasterisk.com/show/dance2010
+
+plus(pts/3):~/projects/light9% bin/dmxserver -n
+
+vidref
+grab time from asco
+always record picture against {songuri}/vid/{take}/{songtime}, so we never miss a recording (but at night when they're all gone, we don't need any recordings?)
+play prev videos
+let me tag a good rehearsal or toss junk rehearsals. if we juggle the playback time too much, you can be sure it's not a good pass
+qt window with one live pane and any number of synced playback panes.
+Do we need to detach from current song+time to view something else?
+curvecalc should be able to fetch a sample of a lit frame to stick in its timeline
+need to move curvecalc to qt?
+can i dynamically change the output filename of a filesink? that might be the way to steer the ouptut correctly. But, i might want to append one take's frames into one file. Maybe use a standard compressor like mjpeg, and separately map the in-movie timestamp to our playback timestamp in case they drift.
+new take for every single restart? i guess so, since they could pass over the same song time.
+get twisted qt wrapper for our networking
+
+show is 70min of music: at 8fps and 50k/pic, 1.6MB of image data per pass.
+
+
+todo:
+- check if mpd has a working precise-time system yet, so we could get off the patched one
diff --git a/show/dance2010/subterms/song1.n3 b/show/dance2010/subterms/song1.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song10.n3 b/show/dance2010/subterms/song10.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song11.n3 b/show/dance2010/subterms/song11.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song12.n3 b/show/dance2010/subterms/song12.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song13.n3 b/show/dance2010/subterms/song13.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song14.n3 b/show/dance2010/subterms/song14.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song15.n3 b/show/dance2010/subterms/song15.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song16.n3 b/show/dance2010/subterms/song16.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song17.n3 b/show/dance2010/subterms/song17.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song2.n3 b/show/dance2010/subterms/song2.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song3.n3 b/show/dance2010/subterms/song3.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song4.n3 b/show/dance2010/subterms/song4.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song5.n3 b/show/dance2010/subterms/song5.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song6.n3 b/show/dance2010/subterms/song6.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song7.n3 b/show/dance2010/subterms/song7.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song8.n3 b/show/dance2010/subterms/song8.n3
new file mode 100644
diff --git a/show/dance2010/subterms/song9.n3 b/show/dance2010/subterms/song9.n3
new file mode 100644