Mercurial > code > home > repos > light9
view doc/baypiggies2008/index.html @ 2324:4b331ac7784f
reminder of how to get mic monitor
author | drewp@bigasterisk.com |
---|---|
date | Thu, 01 Jun 2023 14:21:51 -0700 |
parents | c96768581667 |
children |
line wrap: on
line source
<!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 : <http://light9.bigasterisk.com/> . @prefix sub: <http://light9.bigasterisk.com/sub/> . @prefix t: <http://light9.bigasterisk.com/show/dance2008/⤶ song10/subterm/> . <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 . </pre> </div> <div class="slide"> <h1>The same data, in xml</h1> <pre style="font-size: 45%; line-height: 1.3em;"> <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)&gt;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> </pre> </div> <div class="slide"> <h1>A simple line-based format</h1> <pre style="font-size: 45%;"> <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> . </pre> </div> <div class="slide"> <h1>Again, with less wrapping</h1> <pre style="font-size: 40%;"> <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> . </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>