Computer-Assisted Lighting Design and Control
Total Page:16
File Type:pdf, Size:1020Kb
Computer-Assisted Lighting Design and Control Dissertation der Fakult¨at fur¨ Informatik der Eberhard-Karls-Universit¨at Tubingen¨ zur Erlangung des Grades eines Doktors der Naturwissenschaften (Dr. rer. nat.) vorgelegt von Dipl.-Inform. Michael Sperber aus Marburg/Lahn Tubingen¨ 2001 Tag der mundlichen¨ Qualifikation: 9. Mai 2001 Dekan: Prof. Dr. Andreas Zell 1. Berichterstatter: Prof. Dr. Herbert Klaeren 2. Berichterstatter: Prof. Dr. Wolfgang Straßer Abstract This dissertation shows that computer-based lighting control systems can support the lighting design process considerably better than traditional consoles. It de- scribes the Lula Project, a new software package for lighting design and control, that implements this level of support. Lula's focus is on the conceptual ideas be- hind a lighting design rather than the concrete lighting fixtures used to put it on stage. Among the innovative aspects of the system are its model for designing static lighting looks and its subsystem for programmable continuous animated lighting. Lula's application design is centered around the idea of componential lighting de- sign that allows the user to express a lighting design as a hierarchy of components. Lula is a result of the rigorous application of high-level software engineering tech- niques and implementation technology from the general realm of functional pro- gramming. The high-level structure of the application rests upon stratified design, algebraic modelling, and domain-specific languages. Among the implementation techniques instrumental to Lula are automatic memory management, higher-order programming, functional data structures, data-directed programming, parametric inheritance, and concurrent programming. Zusammenfassung Computer-basierte Systeme fur¨ Beleuchtungssteuerung sind in der Lage, den Licht- designer weitaus besser zu unterstutzen¨ als es derzeit marktubliche¨ Steuerkonsolen tun. Das Thema dieser Dissertation ist ein solches System, das Projekt Lula. Lula ist eine neue Software fur¨ Lichtregie und Beleuchtungssteuerung, welche die Model- lierung der konzeptuellen Elemente eines Lichtdesigns erm¨oglicht, unabh¨angig von der konkreten Realisierung auf der Buhne.¨ Unter den innovativen Aspekten des Systems ist das Modell fur¨ den Entwurf statischer Beleuchtungsszenen sowie das Subsystem fur¨ programmierbare, stetig animierte Beleuchtung. Das ubergeord-¨ nete Prinzip bei Lula ist komponentenbasierte Lichtregie, die es dem Benutzer er- laubt, ein Lichtdesign als eine Hierarchie von Komponenten auszudrucken.¨ Lula ist das Resultat konsequenter Anwendung von Entwurfs- und Implementierungs- Techniken aus dem Bereich der funktionalen Programmierung. Die High-Level- Struktur des Systems baut auf stratifiziertes Design, algebraische Modellierung und anwendungsspezifische Programmiersprachen. Unter den Implementationstech- niken, die entscheidend bei der Entwicklung von Lula waren, befinden sich automa- tische Speicherverwaltung, Higher-Order-Programmierung, funktionale Datenstruk- turen, datengesteuerte Programmierung, parametrische Vererbung und nebenl¨aufige Programmierung. Contents I Introduction 1 1 The Lula Project 5 1.1 Lula as a Lighting Control System . 5 1.2 Lula as a Software Project . 6 1.3 A Brief History of the Lula Project . 8 1.4 Contributions . 9 1.5 Overview . 10 II Lighting As We Know It 11 2 Stage Fixtures 15 2.1 Parameters . 15 2.2 Dimmers . 16 2.3 Lamps . 16 2.4 Gels . 18 2.5 Theatrical Fixtures . 18 2.6 Color Changers . 21 2.7 Beam Shape Control . 21 2.8 Moving Lights . 21 2.9 Strobes and Other Effects . 23 3 Protocols for Lighting Control 25 3.1 The Control Problem . 25 3.2 Analog Protocols . 26 3.3 Digital Channel Control . 27 3.4 DMX512 . 27 3.5 Feedback Protocols . 28 3.6 Playback Control and Synchronization . 29 4 Basics of Lighting Design 31 4.1 Purposes of Stage Lighting . 31 4.2 Lighting a Subject . 32 4.3 Color . 36 4.4 Secondary Targets for Lighting . 36 4.5 Lighting the Stage . 37 4.6 Assembling the Show . 41 4.7 Concerts and Moving Light . 42 4.8 Lighting for Other Occasions . 43 i ii CONTENTS 5 Lighting Consoles 45 5.1 Parameter Control . 45 5.2 Look . 48 5.3 Sequence Assembly . 48 5.4 Animated Light . 49 5.5 Playback and Manual Intervention . 50 5.6 User Interface Controls . 51 5.7 Console Functionality Options . 52 5.8 An Overview of Existing Consoles . 57 III A Tour of Lula 61 6 Basic Lula 65 6.1 Startup . 65 6.2 Constructing Simple Cues . 65 6.3 Modifying Cues . 67 6.4 Assembling the Script . 69 6.5 Playback . 70 6.6 Manual Control . 71 6.7 Changing Venue . 71 7 Advanced Lula 73 7.1 Advanced Cue Operations . 73 7.2 Non-Intensity Parameters . 75 7.3 Animated Lighting . 76 7.4 Advanced Playback . 77 IV Lula Architecture 81 8 Tools and Techniques 85 8.1 Scheme . 85 8.2 DrScheme . 86 8.3 Automatic Memory Management . 87 8.4 Higher-Order Programming . 87 8.5 Functional Programming . 88 8.6 Data-Directed Programming . 90 8.7 Parametric Inheritance . 91 8.8 Concurrent Programming . 93 9 Application Structure 95 9.1 A Bird's Eye View of Lula . 95 9.2 Stratified Design . 97 9.3 Reactive Networks . 97 9.4 The Cue Subsystem . 101 9.5 Representing Actions . 104 V The Look of Lula 107 10 Requirements for Look Construction Systems 111 10.1 Componential Lighting Design . 111 10.2 Cues . 113 10.3 Compositionality . 114 CONTENTS iii 10.4 Cue Combination . 115 10.5 Examples Review . 116 10.6 Cue Transformation . 117 11 An Algebra of Cues 119 11.1 Simple Cue Terms . 120 11.2 Carrier Sets for Cues . 121 11.3 Semantics of Cues . 121 11.4 Axioms and Theorems for Cues . 122 11.5 An Algebraic Specification for Cues . 124 11.6 Cue Flat Form . 124 11.7 Algebra, Flat Form and User-Interface Design . 128 11.8 A Domain-Theoretic Interpretation of Cues . 128 11.9 Multi-Parameter Fixtures . 130 11.10A Semantic View of Multi-Parameters Cues . 130 11.11Modelling Parameter Transformations . 130 11.12Modelling Multi-Parameter Cues . 133 11.13Indirect Parameters and Fixture Calibration . 137 11.14Implementation Notes . 137 VI Lula in Motion 141 12 Functional Reactive Programming 145 12.1 Reactive Values . 146 12.2 Semantics of Reactive Values . 146 12.3 Implementation Issues . 150 12.4 Stream-Based Reactive Values . 151 12.5 Implementation of Reactive Values . 152 13 Functional Reactive Lighting 169 13.1 Sanity Checks . 169 13.2 The Lulal Language . 170 13.3 Built-In Bindings . 173 13.4 Events . 175 13.5 Tasks . 176 13.6 Simple Examples . 178 13.7 Implementation Notes . 180 VII Closing Arguments 189 14 Assessment 193 14.1 Lula in the Real World . 193 14.2 Modelling . 195 14.3 Quantifying the Development Process . 195 14.4 Reviewing Tools . 196 14.5 Objections . 198 15 Future Work 201 15.1 Lula 4 . 201 15.2 Lula 5 . ..