diff --git a/show/dance2014/song4.n3 b/show/dance2014/song4.n3
new file mode 100644
--- /dev/null
+++ b/show/dance2014/song4.n3
@@ -0,0 +1,67 @@
+@prefix ns1: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix xml: .
+@prefix xsd: .
+
+ ns1:curve ,
+ ,
+ ,
+ ,
+ ;
+ ns1:effect ,
+ ,
+ ,
+ ,
+ .
+
+ a ns1:Curve ;
+ rdfs:label "song4" .
+
+ a ns1:Curve ;
+ rdfs:label "full" .
+
+ a ns1:Curve ;
+ rdfs:label "blacklight" .
+
+ a ns1:Curve ;
+ rdfs:label "blue" .
+
+ a ns1:Curve ;
+ rdfs:label "slow color chase" .
+
+ a ns1:Effect ;
+ rdfs:label "song4" ;
+ ns1:code "env = ",
+ "out = * env" .
+
+ a ns1:Effect ;
+ rdfs:label "full" ;
+ ns1:code "env = ",
+ "out = * env" .
+
+ a ns1:Effect,
+ ;
+ rdfs:label "blacklight" ;
+ ns1:code "env = ",
+ "out = [env * p1, env * p2, env * p4]",
+ "p1 = env * * .3",
+ "p2 = Strip.solid('LR', (0,0,1))",
+ "p4 = Blacklight(1)" .
+
+ a ns1:Effect ;
+ rdfs:label "blue" ;
+ ns1:code "env = ",
+ "out = * env" .
+
+ a ns1:Effect,
+ ;
+ rdfs:label "slow color chase" ;
+ ns1:code "env = ",
+ "period = 5",
+ "r = * nsin(t / period)",
+ "y = * nsin((t+.3) / period)",
+ "b = * nsin((t+.6) / period)",
+ "out = [r,y,b]" .
+
+