Spotlight on. Python  Python for realtime control       of stage lighting Nic Cave-Lynch – Tymar Lighting
Spotlight on. Python    The problem    Current architecture    Version 2 architecture    DMX Engine    RDDD (Rubber D...
The problem    Lighting bands, typically in small-ish venues    DMX: 40 updates/second, 200-500 channels    Moving ligh...
Busking in 4 dimensions
Enhance the music
Enhance the show
Current architectureInput wing:    serial   asynchat      DMX engine       asynchat   USB     DMX  faders                 ...
Version 2 architecture              USB/                                                                USB/Input wing:   ...
DMX Engine   Engine()     –   Holders for Valgens, Scenelets, Fixtures     –   dispatches zmq messages from wing/UI   Va...
RDDD    Architecture took ages    Rubber Duck Driven Development    "make something that doesnt work"
Observations    Unit tests inhibit experimentation    Deciding to Open Source can be an inhibitor    Spoilt for choice ...
For more live Python action              200 metres from dinner venue:               ●   Left out of Tulsi               ●...
Upcoming SlideShare
Loading in...5
×

Spotlight on Python

1,314

Published on

Kiwi PyCon 2011, Wellington, Spotlight on Python by Nick Cave-Lynch, Spotlight on Python.
Covers development and use of a Python-powered system designed for lighting bands in small venues. Covers (among other things): the problems of lighting bands; the development process; the results; lessons learned.

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,314
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Spotlight on Python

  1. 1. Spotlight on. Python Python for realtime control of stage lighting Nic Cave-Lynch – Tymar Lighting
  2. 2. Spotlight on. Python The problem Current architecture Version 2 architecture DMX Engine RDDD (Rubber Duck Driven Development) Observations
  3. 3. The problem Lighting bands, typically in small-ish venues DMX: 40 updates/second, 200-500 channels Moving lights (HTP/LTP) Music usually new to me
  4. 4. Busking in 4 dimensions
  5. 5. Enhance the music
  6. 6. Enhance the show
  7. 7. Current architectureInput wing: serial asynchat DMX engine asynchat USB DMX faders gathers HTP/LTP -> sends generator buttons wing input channel value DMX USB (fcntl) moving light Mimic trackball capture manager (wxPython) trackball
  8. 8. Version 2 architecture USB/ USB/Input wing: serial/ ZeroMQ ZeroMQ DMX serial/ faders MIDI Input wing DMX Wifi DMX generator buttons controller struct engine struct generator controller trackballs ZeroMQ ZeroMQ protocol protocol buffers buffers Config UI / mimic
  9. 9. DMX Engine Engine() – Holders for Valgens, Scenelets, Fixtures – dispatches zmq messages from wing/UI Valgens know which Scenelets they drive Scenelet sends multiple of Valgen value to Fixture channels Fixture has channel for each aspect of the light – output function eg calculate pan/tilt values from (x,y,z) Speed important: – reduce lookups – integer dict keys – Valgen->Scenelet->Fixture single function call – struct module
  10. 10. RDDD Architecture took ages Rubber Duck Driven Development "make something that doesnt work"
  11. 11. Observations Unit tests inhibit experimentation Deciding to Open Source can be an inhibitor Spoilt for choice in libraries/frameworks/etc.  Analysis paralysis Surprising results in some performance areas  struct module  string/integer dict keys I hate OpenOffice.org Impress 3.2: its barely useable
  12. 12. For more live Python action 200 metres from dinner venue: ● Left out of Tulsi ● 20 metres to Guznee St ● Right up Ghuznee St ● One block up ● Straight over traffic lights ● Bodega is on the left
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×