# HG changeset patch
# User drewp@bigasterisk.com
# Date 1223966090 0
# Node ID c96768581667d4021b2390a5ff156be0cd57448e
# Parent 2d9c85c98be6d7923629c32e4eea7ed700d22d47
final version of baypiggies2008 talk
diff -r 2d9c85c98be6 -r c96768581667 doc/baypiggies2008/index.html
--- a/doc/baypiggies2008/index.html Fri Sep 05 07:06:34 2008 +0000
+++ b/doc/baypiggies2008/index.html Tue Oct 14 06:34:50 2008 +0000
@@ -25,6 +25,13 @@
pre {
white-space: pre;
}
+pre.file {
+ border: 1px solid #aaa;
+ border-bottom: 0;
+ font-size: 80%;
+ background: #eef;
+ padding: .3em;
+}
@@ -55,9 +62,10 @@
Existing system
From my June 2005 presentation:
-
- (play cmds)
- ascoltami --------------> mpd ----------> audio out
+
+
+ (play cmds)
+ ascoltami -----------> mpd ------> audio out
| (timing)
v
curvecalc subcomposer keyboardcomposer
@@ -71,8 +79,8 @@
| (dmx levels)
......... v ....................
. entec open dmx .
- . | (dmx) . external hardware
- . v .
+external . | (dmx) .
+hardware . v .
. dmx dimmer .
. | (juice) .
. v .
@@ -97,54 +105,211 @@
What's new: real sliders
-

+
- $200 board with 8 motorized faders (plus knobs, lights, and buttons)
- - Talks midi or usb-midi
- - Python/linux driver is easy:
-
self.dev = open("/dev/snd/midiC1D0")
- b0, which, value = [ord(b) for b in self.dev.read(3)]
- self.dev.write(chr(0xb0) + chr(which[0]) + chr(int(value)))
+
Talks midi over usb
+
Python/linux driver is easy:
+
+self.dev = open("/dev/snd/midiC1D0")
+b0, which, value = [ord(b) for b in
+ self.dev.read(3)]
+self.dev.write(chr(0xb0) +
+ chr(which[0]) +
+ chr(int(value)))
+
+
+
+
+
What's new: RDF for data storage
+
+ - Old system: ad-hoc text files.
+ - Never do this again.
+
+
+
+
+
Old file formats
+
+[music]
+preSong = silence-4sec.wav
+postSong = silence-15sec.wav
+
+
+
+down-l : 0.32005
+down-r : 0.3071
+down-sides : 0.37
+lo-c-cross : 0.24
+
+
+
+scoop-r right(t)
+lo-fill can(t)
+ch1 chase(t,names=back_colors, ontime=.6, offset=0) * ch1(t)
+
+
+
+patch = {
+ ('fill-xl','b31',) : 61,
+ ('broke', 'back8','b32',) : 62,
+ ('blue-xl','b33broke',) : 63,
+
+
+
+
+
Storage goals
+
+ - Stop inventing and extending syntaxes
+ - Stop reloading the files all the time. Get incremental
+ updates or query data as it's needed.
+ - Fancier data structures
+ - Arbitrary layout of files on disk
+ - Keep using my most flexible editor (emacs)
+
+
+
+
+
New system: RDF
+
+ - Most files are RDF data (saved as .n3 or ntriples)
+ - Syntax(es) are already done, and all values are unambiguously labeled
+ - Complex data types and relationships are almost as easy as basic ones
+ - Extensible and upgradable, of course
+ - Used DSLs and logic programming to abbreviate boring parts
-
What's new: RDF for most data storage
-
- - Old system: ad-hoc text files. Never do this.
- - Now: most files are RDF data (saved as .n3 or ntriples)
+ New data, shown as n3
+
+@prefix : <http://light9.bigasterisk.com/> .
+@prefix sub: <http://light9.bigasterisk.com/sub/> .
+@prefix t: <http://light9.bigasterisk.com/show/dance2008/⤶
+ song10/subterm/> .
- complex data structures (objects with types and attributes, attrs, lists, sets, references between files)
- use DSLs to abbreviate boring parts
-
+<http://light9.bigasterisk.com/show/dance2008/song10>
+ :subterm t:blacklight,
+ t:song10,
+ t:song3black .
+t:song10 a :Subterm;
+ :expression "song10(t)";
+ :sub sub:song10 .
+t:blacklight a :Subterm;
+ :expression "blacklight(t)>0";
+ :sub sub:blacklight .
+
-
What's new: lightsim
+
The same data, in xml
+
+<rdf:RDF xmlns="http://light9.bigasterisk.com/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+
+ <rdf:Description rdf:about="http://light9.bigasterisk.com/show/dance2008/song10">
+ <subterm rdf:resource="http://light9.bigasterisk.com/show/dance2008/song10/subterm/blacklight"/>
+ <subterm rdf:resource="http://light9.bigasterisk.com/show/dance2008/song10/subterm/song10"/>
+ <subterm rdf:resource="http://light9.bigasterisk.com/show/dance2008/song10/subterm/song3black"/>
+ </rdf:Description>
+
+ <Subterm rdf:about="http://light9.bigasterisk.com/show/dance2008/song10/subterm/blacklight">
+ <expression>blacklight(t)>0</expression>
+ <sub rdf:resource="http://light9.bigasterisk.com/sub/blacklight"/>
+ </Subterm>
+
+ <Subterm rdf:about="http://light9.bigasterisk.com/show/dance2008/song10/subterm/song10">
+ <expression>song10(t)</expression>
+ <sub rdf:resource="http://light9.bigasterisk.com/sub/song10"/>
+ </Subterm>
+</rdf:RDF>
+
+
+
+
+
A simple line-based format
+
+<http://light9.bigasterisk.com/show/dance2008/song10> <http://light9.bigasterisk.com/subterm>⤶
+ <http://light9.bigasterisk.com/show/dance2008/song10/subterm/blacklight> .
+
+<http://light9.bigasterisk.com/show/dance2008/song10> <http://light9.bigasterisk.com/subterm>⤶
+ <http://light9.bigasterisk.com/show/dance2008/song10/subterm/song10> .
+
+<http://light9.bigasterisk.com/show/dance2008/song10> <http://light9.bigasterisk.com/subterm>⤶
+ <http://light9.bigasterisk.com/show/dance2008/song10/subterm/song3black> .
+
+<http://light9.bigasterisk.com/show/dance2008/song10/subterm/blacklight>⤶
+ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://light9.bigasterisk.com/Subterm> .
+
+<http://light9.bigasterisk.com/show/dance2008/song10/subterm/blacklight>⤶
+ <http://light9.bigasterisk.com/expression> "blacklight(t)>0" .
+
+<http://light9.bigasterisk.com/show/dance2008/song10/subterm/blacklight>⤶
+ <http://light9.bigasterisk.com/sub> <http://light9.bigasterisk.com/sub/blacklight> .
+
+<http://light9.bigasterisk.com/show/dance2008/song10/subterm/song10>⤶
+ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://light9.bigasterisk.com/Subterm> .
+
+<http://light9.bigasterisk.com/show/dance2008/song10/subterm/song10>⤶
+ <http://light9.bigasterisk.com/expression> "song10(t)" .
+
+<http://light9.bigasterisk.com/show/dance2008/song10/subterm/song10>⤶
+ <http://light9.bigasterisk.com/sub> <http://light9.bigasterisk.com/sub/song10> .
+
+
+
+
+
+
Again, with less wrapping
+
+<http://l9.com/show/dance2008/song10> <http://l9.com/subterm> <http://l9.com/show/dance2008/song10/subterm/blacklight> .
+<http://l9.com/show/dance2008/song10> <http://l9.com/subterm> <http://l9.com/show/dance2008/song10/subterm/song10> .
+<http://l9.com/show/dance2008/song10> <http://l9.com/subterm> <http://l9.com/show/dance2008/song10/subterm/song3black> .
+<http://l9.com/show/dance2008/song10/subterm/blacklight> <http://l9.com/expression> "blacklight(t)>0" .
+<http://l9.com/show/dance2008/song10/subterm/blacklight> <http://l9.com/sub> <http://l9.com/sub/blacklight> .
+<http://l9.com/show/dance2008/song10/subterm/blacklight> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://l9.com/Subterm> .
+<http://l9.com/show/dance2008/song10/subterm/song10> <http://l9.com/expression> "song10(t)" .
+<http://l9.com/show/dance2008/song10/subterm/song10> <http://l9.com/sub> <http://l9.com/sub/song10> .
+<http://l9.com/show/dance2008/song10/subterm/song10> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://l9.com/Subterm> .
+
+
+
+
+
Again, rendered with graphviz
+

+
+
+
+
What's next: lightsim
- We could really use a good way to preview scenes
- - Lighting follows the superposition principle
+ - Hard to use text labels for all the different lighting scenes
+ - Can't work on lighting cues without looking at the stage
+
+
+
+
lightsim enablers
+
+ - Light obeys superposition:
F(ax+by) = aF(x) + bF(y)
+ - All my lights are computer-controlled
+
+
+
+
lightsim demos
+
- Original version from 2002: Tk, PIL
- Current version: qt, OpenGL
-
Related projects
-
vistrails
-kamaelia
+ More
+ Links related to this project:
+http://delicious.com/drewpca/light9
+
-
-
-
-http://www.opendmx.net/index.php/Open_DMX_USB
-
-
-
-
-
diff -r 2d9c85c98be6 -r c96768581667 doc/baypiggies2008/rdfgraph.png
Binary file doc/baypiggies2008/rdfgraph.png has changed