# 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