Files @ 8fc5da221688
Branch filter:

Location: light9/doc/baypiggies2008/index.html - annotation

drewp@bigasterisk.com
checkpoint show data
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
c96768581667
c96768581667
c96768581667
c96768581667
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
c96768581667
c96768581667
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
c96768581667
2d9c85c98be6
2d9c85c98be6
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
2d9c85c98be6
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
2d9c85c98be6
2d9c85c98be6
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
c96768581667
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
c96768581667
c96768581667
c96768581667
c96768581667
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
2d9c85c98be6
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>light9 in 2008</title>
<!-- metadata -->
<meta name="generator" content="S5" />
<meta name="version" content="S5 1.1" />
<meta name="presdate" content="20050728" />
<meta name="author" content="Eric A. Meyer" />
<meta name="company" content="Complex Spiral Consulting" />
<!-- configuration parameters -->
<meta name="defaultView" content="slideshow" />
<meta name="controlVis" content="hidden" />
<!-- style sheet links -->
<link rel="stylesheet" href="ui/default/slides.css" type="text/css" media="projection" id="slideProj" />
<link rel="stylesheet" href="ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" />
<link rel="stylesheet" href="ui/default/print.css" type="text/css" media="print" id="slidePrint" />
<link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" />
<!-- S5 JS -->
<script src="ui/default/slides.js" type="text/javascript"></script>
<style type="text/css">
pre {
 white-space: pre;
}
pre.file {
  border: 1px solid #aaa;
  border-bottom: 0;
  font-size: 80%;
  background: #eef;
  padding: .3em;
}
</style>
</head>
<body>

<div class="layout">
<div id="controls"><!-- DO NOT EDIT --></div>
<div id="currentSlide"><!-- DO NOT EDIT --></div>
<div id="header"></div>
<div id="footer">
<h1></h1>
<h2>light9 in 2008</h2>
</div>

</div>


<div class="presentation">

<div class="slide">
<h1>light9 in 2008</h1>
<h2></h2>
<h3>Drew Perttula</h3>
<h4>http://bigasterisk.com/</h4>
</div>


<div class="slide">
  <h1>Existing system</h1>
From my June 2005 presentation:

<pre style="font-size: 60%">

              (play cmds)
    ascoltami -----------> mpd ------> audio out
        | (timing)
        v
    curvecalc    subcomposer    keyboardcomposer
        |            |                 |
        +---         |             ----+
            \-----   |    --------/
                  \--+---/
                     | (light levels)
                     v
                 dmxserver
                    | (dmx levels)
          ......... v ....................
          .      entec open dmx          .
external  .         | (dmx)              .
hardware  .         v                    .
          .      dmx dimmer              .
          .         | (juice)            .
          .         v                    .
          .      light                   .
          ................................
</pre>

</div>

<div class="slide">
  <h1>External libraries</h1>
  <ul>
    <li>Twisted - event loop and networking, xmlrpc</li>
    <li>tk, tix</li>
    <li>pympd - my twisted interface to mpd</li>
    <li>louie - signals</li>
    <li>mpd - music player daemon</li>
    <li>rdflib</li>
    <li>darcs</li>
  </ul>
</div>

<div class="slide">
  <h1>What's new: real sliders</h1>
  <img src="bcf2000-desk1.jpg" style="float:right; border: 2px solid #005;" width="40%"/>
  <ul>
    <li>$200 board with 8 motorized faders (plus knobs, lights, and buttons)</li>
    <li>Talks midi over usb</li>
    <li>Python/linux driver is easy:
    <pre>
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)))</pre></li>
  </ul>
</div>

<div class="slide">
  <h1>What's new: RDF for data storage</h1>
  <ul>
    <li>Old system: ad-hoc text files.</li>
    <li>Never do this again.</li>
  </ul>
</div>

<div class="slide">
  <h1>Old file formats</h1>
<pre class="file">
[music]
preSong = silence-4sec.wav
postSong = silence-15sec.wav
</pre>

<pre class="file">
down-l : 0.32005
down-r : 0.3071
down-sides : 0.37
lo-c-cross : 0.24
</pre>

<pre class="file">
scoop-r right(t)
lo-fill can(t)
ch1 chase(t,names=back_colors, ontime=.6, offset=0) * ch1(t)
</pre>

<pre class="file">
patch = {
    ('fill-xl','b31',) : 61,
    ('broke',  'back8','b32',) : 62,
    ('blue-xl','b33broke',) : 63,
</pre>
</div>

<div class="slide">
  <h1>Storage goals</h1>
  <ul>
    <li>Stop inventing and extending syntaxes</li>
    <li>Stop reloading the files all the time. Get incremental 
    updates or query data as it's needed.</li>
    <li>Fancier data structures</li>
    <li>Arbitrary layout of files on disk</li>
    <li>Keep using my most flexible editor (emacs)</li>
  </ul>
</div>

<div class="slide">
  <h1>New system: RDF</h1>
  <ul>
    <li>Most files are RDF data (saved as .n3 or ntriples)</li>
    <li>Syntax(es) are already done, and all values are unambiguously labeled</li>
    <li>Complex data types and relationships are almost as easy as basic ones</li>
    <li>Extensible and upgradable, of course</li>
    <li>Used DSLs and logic programming to abbreviate boring parts</li>
  </ul>
</div>

<div class="slide">
  <h1>New data, shown as n3</h1>
<pre class="file" style="font-size: 80%">
@prefix : &lt;http://light9.bigasterisk.com/&gt; .
@prefix sub: &lt;http://light9.bigasterisk.com/sub/&gt; .
@prefix t: &lt;http://light9.bigasterisk.com/show/dance2008/&#x2936;
           song10/subterm/&gt; .

&lt;http://light9.bigasterisk.com/show/dance2008/song10&gt;
     :subterm   t:blacklight,
                t:song10,
                t:song3black .
t:song10 a :Subterm;
         :expression "song10(t)";
         :sub sub:song10 .
t:blacklight a :Subterm;
             :expression "blacklight(t)&gt;0";
             :sub sub:blacklight .
       </pre>
</div>


<div class="slide">
  <h1>The same data, in xml</h1>
  <pre style="font-size: 45%; line-height: 1.3em;">
&lt;rdf:RDF xmlns="http://light9.bigasterisk.com/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"&gt;

    &lt;rdf:Description rdf:about="http://light9.bigasterisk.com/show/dance2008/song10"&gt;
        &lt;subterm rdf:resource="http://light9.bigasterisk.com/show/dance2008/song10/subterm/blacklight"/&gt;
        &lt;subterm rdf:resource="http://light9.bigasterisk.com/show/dance2008/song10/subterm/song10"/&gt;
        &lt;subterm rdf:resource="http://light9.bigasterisk.com/show/dance2008/song10/subterm/song3black"/&gt;
    &lt;/rdf:Description&gt;

    &lt;Subterm rdf:about="http://light9.bigasterisk.com/show/dance2008/song10/subterm/blacklight"&gt;
        &lt;expression&gt;blacklight(t)&amp;gt;0&lt;/expression&gt;
        &lt;sub rdf:resource="http://light9.bigasterisk.com/sub/blacklight"/&gt;
    &lt;/Subterm&gt;

    &lt;Subterm rdf:about="http://light9.bigasterisk.com/show/dance2008/song10/subterm/song10"&gt;
        &lt;expression&gt;song10(t)&lt;/expression&gt;
        &lt;sub rdf:resource="http://light9.bigasterisk.com/sub/song10"/&gt;
    &lt;/Subterm&gt;
&lt;/rdf:RDF&gt;
</pre>
</div>

<div class="slide">
  <h1>A simple line-based format</h1>
  <pre style="font-size: 45%;">
&lt;http://light9.bigasterisk.com/show/dance2008/song10&gt; &lt;http://light9.bigasterisk.com/subterm&gt;&#x2936;
  &lt;http://light9.bigasterisk.com/show/dance2008/song10/subterm/blacklight&gt; .

&lt;http://light9.bigasterisk.com/show/dance2008/song10&gt; &lt;http://light9.bigasterisk.com/subterm&gt;&#x2936;
  &lt;http://light9.bigasterisk.com/show/dance2008/song10/subterm/song10&gt; .

&lt;http://light9.bigasterisk.com/show/dance2008/song10&gt; &lt;http://light9.bigasterisk.com/subterm&gt;&#x2936;
  &lt;http://light9.bigasterisk.com/show/dance2008/song10/subterm/song3black&gt; .

&lt;http://light9.bigasterisk.com/show/dance2008/song10/subterm/blacklight&gt;&#x2936;
  &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://light9.bigasterisk.com/Subterm&gt; .

&lt;http://light9.bigasterisk.com/show/dance2008/song10/subterm/blacklight&gt;&#x2936;
  &lt;http://light9.bigasterisk.com/expression&gt; "blacklight(t)>0" .

&lt;http://light9.bigasterisk.com/show/dance2008/song10/subterm/blacklight&gt;&#x2936;
  &lt;http://light9.bigasterisk.com/sub&gt; &lt;http://light9.bigasterisk.com/sub/blacklight&gt; .

&lt;http://light9.bigasterisk.com/show/dance2008/song10/subterm/song10&gt;&#x2936;
  &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://light9.bigasterisk.com/Subterm&gt; .

&lt;http://light9.bigasterisk.com/show/dance2008/song10/subterm/song10&gt;&#x2936;
  &lt;http://light9.bigasterisk.com/expression&gt; "song10(t)" .

&lt;http://light9.bigasterisk.com/show/dance2008/song10/subterm/song10&gt;&#x2936;
  &lt;http://light9.bigasterisk.com/sub&gt; &lt;http://light9.bigasterisk.com/sub/song10&gt; .
</pre>

</div>

<div class="slide">
  <h1>Again, with less wrapping</h1>
  <pre style="font-size: 40%;">
&lt;http://l9.com/show/dance2008/song10&gt; &lt;http://l9.com/subterm&gt; &lt;http://l9.com/show/dance2008/song10/subterm/blacklight&gt; .
&lt;http://l9.com/show/dance2008/song10&gt; &lt;http://l9.com/subterm&gt; &lt;http://l9.com/show/dance2008/song10/subterm/song10&gt; .
&lt;http://l9.com/show/dance2008/song10&gt; &lt;http://l9.com/subterm&gt; &lt;http://l9.com/show/dance2008/song10/subterm/song3black&gt; .
&lt;http://l9.com/show/dance2008/song10/subterm/blacklight&gt; &lt;http://l9.com/expression&gt; "blacklight(t)>0" .
&lt;http://l9.com/show/dance2008/song10/subterm/blacklight&gt; &lt;http://l9.com/sub&gt; &lt;http://l9.com/sub/blacklight&gt; .
&lt;http://l9.com/show/dance2008/song10/subterm/blacklight&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://l9.com/Subterm&gt; .
&lt;http://l9.com/show/dance2008/song10/subterm/song10&gt; &lt;http://l9.com/expression&gt; "song10(t)" .
&lt;http://l9.com/show/dance2008/song10/subterm/song10&gt; &lt;http://l9.com/sub&gt; &lt;http://l9.com/sub/song10&gt; .
&lt;http://l9.com/show/dance2008/song10/subterm/song10&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://l9.com/Subterm&gt; .
</pre>
</div>

<div class="slide">
  <h1>Again, rendered with graphviz</h1>
  <img src="rdfgraph.png" />
</div>

<div class="slide">
  <h1>What's next: lightsim</h1>
  <ul>
    <li>We could really use a good way to preview scenes</li>
    <li>Hard to use text labels for all the different lighting scenes</li>
    <li>Can't work on lighting cues without looking at the stage</li>
  </ul>
</div>
<div class="slide">
  <h1>lightsim enablers</h1>
  <ul>
    <li>Light obeys superposition: <br/>F(ax+by) = aF(x) + bF(y)</li>
    <li>All my lights are computer-controlled</li>
  </ul>
</div>
<div class="slide">
  <h1>lightsim demos</h1>
  <ul>
    <li>Original version from 2002: Tk, PIL</li>
    <li>Current version: qt, OpenGL</li>
  </ul>
</div>

<div class="slide">
  <h1>More</h1>
  <li>Links related to this project:<br/>
http://delicious.com/drewpca/light9</li>
<!--<script type="text/javascript" src="http://feeds.delicious.com/v2/js/drewpca/light9?title=Related%20Delicious%20Bookmarks&icon=s&count=5&bullet=%E2%80%A2&sort=date"></script>-->
</div>

</div>

</body>
</html>